背景
使用屏幕后处理,制作轮廓效果.
(这里尝试使用shader Graph展示,)
效果
第一步
在场景相机渲染前(写在OnPreRender()里),使用一个额外的相机先进行一次渲染,把需要轮廓显示的物体渲染出来,其余不渲染,为了方便表示和加快渲染速度。需要轮廓显示的物体渲染为白色。得到类似于上图的渲染纹理。
额外的相机功能就到此为止.
第二步
在场景相机渲染完成后进行后处理(写在OnRenderImage()里,场景相机渲染纹理 假设是蒙拉丽莎),拿到第一步 得到的渲染纹理,白色区域渲染为渲染为红色(这里轮廓采用红色),其余区域使用场景相机渲染纹理。
到这一步我们发现,红色不透明的,那么我们使用lerp方法与场景相机渲染纹理进行一次插值计算,而插值则控制红色区域的不透明度显示。
第三步
轮廓?
我们这只是叠加了一个颜色显示区域,并没有轮廓。
做到这里,已经很清楚了,我们只需要控制额外相机的渲染纹理(那张黑白图),就可以控制轮廓显示区域。
这里我们 扩大一圈白色区域再减去之前的白色区域,不就得到轮廓显示区域了。
如果扩大时候也可以进行模糊计算,可以得到更好的效果。
关于模糊计算,后面更新新的文章。