Unity Image Effect
1.工作原理
Image Effect是运用于一个Camera,将Camera视见体最终看到的二维图像内容作为一个2DTexture传递给一个Shader,
然后在Shader的Fragment渲染阶段对这个Texture做逐像素处理。
2.应用框架
2.1一个用于Camera的C#脚本, 脚本定义一个Material 变量用于和Shader关联在一起,然后要实现OnRenderImage接口,
一般OnRenderImage中只做一件事,就是将Shader处理后的内容直接Blit到最终要渲染到Screen的另一个Texture、如下面代码
的第6或者第10行。
1 void OnRenderImage(RenderTexture srcTexture, RenderTexture dstTexture) 2 { 3 if(curShader != null) 4 { 5 material.SetFloat("_DepthPower", depthPower); 6 Graphics.Blit(srcTexture,dstTexture,material); 7 } 8 else 9 { 10 Graphics.Blit(srcTexture, dstTexture); 11 } 12 }
2.2一个关联C#脚本和Shader的Material对象。
2.3Shader
主要的功能代码都是在fixed4 frag(v2f_img i) : COLOR