以梦为马,不负韶华

搜索
查看: 3904|回复: 3
收起左侧

Unity摄像机特效

[复制链接]
发表于 2015-11-12 21:48:36 显示全部楼层 |阅读模式
Unity摄像机特效
结合Shader,RenderTexture搞出了一套摄像机特效file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png,废话不多说上图
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg

这个特效是将摄像机渲染的图像转换为黑白的还是挺实用的,现在讲一下偶的思路,摄像机

不是有个TargetTexture吗,里面可以放一个RendererTexture不过这个RendererTxture不能是右键Create出来的是由代码new出来的,右键出来的无法做到自适应所以需要new出来的,后面我会贴出代码,继续讲思路首先我必须在主摄像机下嵌一个摄像机(Reset一下到和主摄像机重合),将该摄像机渲染的RenderTexture通过Shader处理传到主摄像机的最终
渲染通道里,对了次摄像机的深度必须设为比主摄像机小这样不会覆盖了主摄像机的画面
看到图中主摄像机的脚本了吗CameraEffect现在贴出其代码:
using UnityEngine;
using System.Collections;


public class CameraEffect : MonoBehaviour {
public Material mat;
public Camera cam;
private RenderTexture texture;
void Start()
{
texture = newRenderTexture(Screen.width,Screen.height,24);
cam.targetTexture = texture;
}

void OnRenderImage(RenderTexturesource,RenderTexture destination)
{
if(mat)
{
Graphics.Blit(texture,destination,mat,0);
}
}


void OnDisabled()
{
texture.Release();
}
}
代码很简单关键就是函数OnRenderImage,将次摄像机渲染的RendererTexture通过mat材质球渲染后赋予主摄像机的destination输出渲染纹理,PublicCamera就是次摄像机,mat
需要自己创建将Shader选为BlackAndWhiteShader(这是我起的名字)下面贴出这个Shader代码:
Shader "Custom/BlackAndWhiteShader" {
Properties {
_MainTex ("Base (RGB)", 2D) ="white" {}
}
SubShader {
Tags{"Queue" = "Transparent""RenderType"="Transparent"}
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
float4 _MainTex_ST;
v2f vert (appdata_base v)
{
v2f o;
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
return o;
}
half4 frag (v2f i) : COLOR
{
half4 SourceColor = tex2D(_MainTex,i.uv);
half ColorT = (SourceColor.x + SourceColor.y +SourceColor.z)/3;
half4 DestinationColor =half4(ColorT,ColorT,ColorT,SourceColor.w);
return ColorT;
}
ENDCG
}
}
FallBack "Diffuse"
}


发表于 2015-11-12 21:48:36 显示全部楼层
建议楼主把图片上传后插入到贴子中就可以看到图片了
回复 支持 反对

使用道具 举报

发表于 2015-11-12 21:48:36 显示全部楼层
不错!改天试试
回复 支持 反对

使用道具 举报

发表于 2015-11-12 21:48:36 显示全部楼层
摄像机还可以做特效,怎么做啊!
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-13 19:59

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表