赞
踩
在unity用shaderGraph做出类似动物之森的柱状场景,甚至球状场景。
这个是模仿油管上NotSlot的视频https://www.youtube.com/watch?v=SOK3Ias5Nk0做的。
B站上也有人搬运。
最后的效果如下:
基本的原理就是离摄像机位置越远,相应的节点越往下。
所以只要建立起Dy=f(d)的关系就行。
用公式表达就是Dy=(worldPosition-CameraPosition).z^2*(-Amount);
Amount是个值在0.005~0.01之间的值用来控制弯曲度。因为是向下所以加一个Nagate节点变成负数。
之后再加回世界坐标里(注意是要加到y里),把修改后的世界坐标进行投影变换就完成了。
但是就有两个问题:
1)由于视锥剔除是在CPU上进行的。而弯曲效果是在GPU里实现的。导致远端的物体本来应能看见,但被视锥剔除了。
视频里解决方案是:
第二个问题就是由于即时渲染,导致修改场景很麻烦。
解决方案是加一个boolean的关键字(Keyword)Enable,定义为重编译,范围是全局。然后用个脚本控制只在运行的时候才开起柱状场景的渲染。
球状场景就同理把x分量的距离考虑进去就行了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。