独白
在工作中遇到需要对除某个特定物体外的其他的所有模型做颜色的更改操作,觉得一个一个去更改模型的材质实在是不讨喜,于是产生了是否能通过创建不同的摄像机,让摄像机分开渲染出这两部分的画面,然后处理其中一个的方法,想法是好的,现实是残酷的,在一般情况下,这没有太大问题,可是在遇到有多重遮挡的情况下,就会出现穿帮,没法保证正常的遮挡关系,于是一番查找,找到了Esfog大神UnityShader 遮挡描边这一篇,给了很大启发和学习的动力,虽然最后在工作中没有使用,还是在这里记录下学到的新东西.
新知识
1.关于一目十行的效率
眼瞎的我把上面主摄像机获取的图像是排除了描边物体外的物体的深度图看没了,然后我的最终效果是墙后角色探出的头有描边.卡了我3天,从此记住,一目十行,是眼瞎的基础
2.关于深度图
还是因为自己在渲染流水管线上是个小白,只是初步接触,所以一开始我以为在深度图中,天空盒子也会参与进来,在磕磕绊绊的试探中,发现天空盒子是不会参与到深度图的计算中的,在深度图中有且仅有当前摄像机能渲染的物体(天空盒之外)的深度信息,其余没有的地方,都是0.
3.为了显示深度图
在试探中,为了能显示出深度图,简直是费尽周折,一开始画面没有效果,用来显示深度图的面片上也一直是黑色的,总是给我一种没有获取到深度图的错觉,然后又是一番漫长的折腾,才发现,在我的测试场景中,深度图的数值异常的小,趋近于0,所以如果在后续,想显示出深度图,需要对这个值进行放大处理.
4.深度图的规则
网友评论