很抱歉这篇文章要放个空弹。
计划写“墙体透明”的原因,也是工程实际需要,摄像机固定侧视主角,但场景是真3D的,所以有时主角会被墙挡住,这时要作一些处理。
之前用过一种直接让人物变色显示的方案,但性能损耗严重,具体原因我还没分析。
个人觉得让墙体变透明的方案观感效果可能更好。
还是一样,什么都自己想办法是不明智的。上网搜了下,文章很多,随便贴两篇:
Unity3D研究院之处理摄像机跟随避免相机穿墙拉近或透明的方法(四十四)
原理大致就是射线检测,调节Transparent材质的透明度。纯脚本控制,连shader都不用写。
考虑到时间不是漫无边际,要做的事又好多,我决定往前跳一步,不亲自实现这个东西了。
然后说下下一篇“钻石效果”的设想。
因为钻石是个很璀璨的玩意,所以最开始计划学shader时我就想到了它,然后搜了下发现stalendp的blog里已经有一篇不错的文章专门讲这个:
里头效果图都贴得不错,我就不重复盗图了。
如作者自己所说,和真实的钻石观感还是存在一定差距的,具体什么原因我现在不敢妄自发表看法。
我只是觉得之前做了一些东西,但基本都没涉及到shader很核心的光的反射折射这一块,借这个课题也能在最后好好弥补一下。
接下来估计要花一段较长的时间研究。