Unity Processing Basic
写在前面:
本文章为个人学习笔记,方便以后自己复习,也希望能帮助到他人。
由于本人水平有限难免出现错误,还请评论区指出,多多指教。
部分图元和素材来源于网络,如有侵权请联系本人删除。
参考资料与链接会在文章末尾贴出。
=======================================================================
之前我们编写shader来渲染模型,而shader还可以用来操作图像(image),包括我们渲染完游戏场景准备推送的屏幕上的画面(也是image),操作/修改这些render output的操作我们称之为后处理(postprocessing)。
本文会简单介绍invert image color的后处理shader。
先写个简单的采样纹理:
然后我们需要编写C#脚本给摄像机使用。我们会用到一个叫OnRenderImage的方法,这个方法会被unity自动调用。简单来说,我们修改source,然后将结果写到destination上,因此我们需要用到blit方法。
但现在我们还不能做任何事情,我们还需要给blit传递第三个参数--material,并将C#挂到摄像机上,将刚才shader的material放到脚本上。
最后我们回到shader中:
原图:
后处理:
注意后处理的是摄像机拍到的画面,也就是game窗口中的画面,Scene中的是画面是没有效果的。