第一次写东西,分享一下自己在做超大场景遇到渲染相关的问题,如果有不对的地方欢迎指正。
一直以来虚拟仿真,在教育培训领域中应用广泛,但是在航天航空、交通、军事、铁路等往往需要模规模空前且无限的虚拟世界 。暂且不谈其他专门做虚拟仿真的引擎如UNIGINE。国内做虚拟仿真的厂家大多以Unity为主。
在Unity中理论上你可以做出无限大且高精度的地图,但是实际中,当距离过远时其物理甚至渲染的精度都会出现很多问题。除了unity在设计本身使用32位浮点精度以为(64位双精度浮点其最大坐标值实际上比32位浮点精度的536,870,912倍还要大),还有因为Unity本身内置渲染管线不够健壮。所以导致在物体和摄像机离世界原点坐标比较远的地方会出现渲染抖动闪烁的问题还会出现在使用的Unity默认的动画系统,物体会不停抖动的问题。并且在Bake的时候无法消除噪点(这个噪点通过调整参数也无法消除的)。关于动画问题的解决方法可以参考下面这篇文章:
https://unitylist.com/p/z8o/Camera-Relative-Renderingunitylist.com