三言两语说shader(八)墙体透明

时间:2022-06-01 03:54:02

很抱歉这篇文章要放个空弹。


计划写“墙体透明”的原因,也是工程实际需要,摄像机固定侧视主角,但场景是真3D的,所以有时主角会被墙挡住,这时要作一些处理。

之前用过一种直接让人物变色显示的方案,但性能损耗严重,具体原因我还没分析。

个人觉得让墙体变透明的方案观感效果可能更好。


还是一样,什么都自己想办法是不明智的。上网搜了下,文章很多,随便贴两篇:

Unity 墙遮挡人物时变为半透明

Unity3D研究院之处理摄像机跟随避免相机穿墙拉近或透明的方法(四十四)

原理大致就是射线检测,调节Transparent材质的透明度。纯脚本控制,连shader都不用写。


考虑到时间不是漫无边际,要做的事又好多,我决定往前跳一步,不亲自实现这个东西了。



然后说下下一篇“钻石效果”的设想。

因为钻石是个很璀璨的玩意,所以最开始计划学shader时我就想到了它,然后搜了下发现stalendp的blog里已经有一篇不错的文章专门讲这个:

【OpenGL】Shader实例分析(十)- 钻石效果

里头效果图都贴得不错,我就不重复盗图了。

如作者自己所说,和真实的钻石观感还是存在一定差距的,具体什么原因我现在不敢妄自发表看法。

我只是觉得之前做了一些东西,但基本都没涉及到shader很核心的光的反射折射这一块,借这个课题也能在最后好好弥补一下。


接下来估计要花一段较长的时间研究。