PISCOnoob

导航

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中的是画面是没有效果的。

posted on 2022-11-02 09:24  PISCOnoob  阅读(27)  评论(0编辑  收藏  举报