制作目标:
在一个点观看,一定范围的半径求内可以看到的可视范围,被建筑物遮挡的为橙色,可视天空为蓝色
制作原理
有两种方式可以制作,一是射线检测,二是利用深度图渲染
两者利弊:
射线检测:
优点:精准,可控制范围精确,并且显示无误差。
缺点:射线要足够密集,而且后期要做抗锯齿处理。
深度图渲染:
优点:UE4有自带的Scene Component cube 相机,利用Rander Target 3d 得到深度图S渲染图简便易用,处理材质效果好。
缺点:因为是Cube采样再将深度图投影在球上,所以在边缘时候无法特别精准。采样的Cube在内接圆的半径时候效果最好,所有在球里的建筑都能看到。
在深度超过一定范围时候,就不能运用渐变深度,而是用if节点将颜色分开。因为深度图在越远越不精准。

(此图为UE4使用的深度曲线,笔者找了很久才找到,这是链接共查阅https://developer.nvidia.com/content/depth-precision-visualized
附带一个Unity 的深度曲线应用:
https://mp.weixin..com/s?__biz=MzkxNjAyNTQ3OQ==&mid=&idx=1&sn=6984ae7ecd008c527d70246c3fe05165&chksm=c154b2b7f6233ba1d0fdce22b159b05e8c2010fd380b916e7d186e0780afd&mpshare=1&scene=1&srcid=0730zSqNRrMo8PIXQnWTztQ7&sharer_sharetime=84&sharer_shareid=dd768d06a16c2956a2e42f1be27c771b&version=3.1.10.3010&platform=win#rd)




以上是大概的思路和粗略制作,具体细节不易展开。
在此基础上还可以升级:
1.双面显示,要翻转randerTarget cube 的vector。
2.透明度遮罩,使半透明物体不重叠,遮罩相机看不见的一面。
大概材质节点如下:


如上图,randerTarget传进来以后用IF 节点将球的外接正方体去掉,并且改变值为1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/67909.html