您当前的位置:首页 VR开发 Unity 正文

飞行模拟大地形效果和性能的解决方案

查看: 2934| 评论: 0 2017-3-27 02:55 PM| 发布者: administrator |原作者: unity官方

飞行模拟对地形的要求比较苛刻,既要有地面的细节,例如机场,或者距离地面非常近时的高细节的表现,又要有飞行高度比较高时大范围的地形现实。 Unity3D由于浮点精度的限制,在1Unit代表1米的情况下,一片地形最大只能支持200公里的长度。
Unity3D似乎也没有纹理的LOD的说法,地形LOD由系统自动实现。
要实现如标题所说的方案,有以下几点建议:
1、关注地形的拆分。出于内存以及加载性能的考虑,不应该将过大的地形一次性地加载到场景中。需要考虑地是分拆地形,将小型地形块动态加载拼接场景。那么如何建立分块地形呢?建议查看Asset Store上的Terrain Composer插件。
2、地形拆分后,需要考虑将地形进行动态加载,即对地形块及其资源进行动态管理(加载和卸载),进而达到在内存使用的最小的情况下,最大限度地满足大地形漫游的需求。同时,地形动态加载的好处是,你可以在Unity中将地形的尺寸做到无限大。
3、地形块如何动态管理?你需要考虑至少三个方面:资源的预处理、预加载;资源何时进行加载和卸载;如何使用缓存池来加载和卸载过程更加流畅。
以上是大规模场景漫游的基本思路,Unity官方目前已经有了一套成熟的“大规模地形/资源的制作和动态加载方案”,并配套完整的项目工程。

飞行模拟大地形效果和性能的解决方案

这样理论上你可以做出无限大且高精度的地图,但确实,正如你所说,当距离过远时,其物理甚至渲染的精度都会出现问题,这时需要根据项目需要来适当将世界中心进行偏移。
移动静态的Collider在目前的PhysX中确实较为耗时,所以,我们在即将到来的Unity5中将PhysX从2.8升级到了3.3。PhysX3.3中,移动静态Collider的开销将大大降低。


52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 0 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-22 07:56 PM

返回顶部