我们正在开发一个基于GIS的应用程序,它模拟虚拟现实环境中的真实单词对象(即管道,道路等).目前我们使用ArcScene中从ESRI的ArcGIS包3D渲染,并在今后,我们打算用我们自己的3D环境来取代它.
问题: 在上述应用程序中进行实时3D渲染的最佳方法是什么?我在这个领域没有任何经验,我真的很困惑.我应该使用一个可用的3D渲染引擎(下面列出一些)吗?如果答案是肯定的,那么应考虑哪些参数(不论其成本如何)?有没有人在这个领域有任何经验或建议?
环境和必需品:
Rendring Engines: 经过一番搜索,我找到了以下3D渲染解决方案:
CadFaster |引擎:"CadFaster |引擎是一种独特且可扩展性最高的3D渲染解决方案,适用于技术应用.它比通常的CAD应用程序快十倍.该引擎包括用于3D数据集和几何的专利实时同步机制.允许自动集成到主应用程序.CadFaster | Engine还包含专利的实时多边形缩减,可提高3D性能." 引自DevMaster
Quest3D:"使用Quest3D创建软件,Web和模拟器.Quest3D是架构可视化,产品可视化,数字娱乐,计算机辅助培训和高端VR应用的完美解决方案." 引自Quest3D的介绍
OpenSceneGraph:"OpenSceneGraph是一个开源的高性能3D图形工具包,应用程序开发人员在视觉模拟,游戏,虚拟现实,科学可视化和建模等领域使用.完全用标准C++和OpenGL编写...... OpenSceneGraph是现已成为世界领先的场景图技术,广泛应用于视觉,空间,科学,石油天然气,游戏和虚拟现实等行业.主要语言:C/C++语言包装:C#,...... 从OSG主页引用.
无论您使用哪种引擎,都需要了解一些关键概念.
由于您正在处理如此多的对象,因此主要的是细节级别(LoD).确保您的对象具有与之关联的逼真LoD.例如,在查看整个场景时,您不必费心渲染螺丝的高细节模型.此外,当距离它更近但距离足够远时,螺丝的低细节版本足以渲染.
此外,您可以执行虚拟地球等技巧并平铺数据(与LoD相关).最后,剔除将非常重要,但可能涉及您已经提到过的任何引擎.
如果您正在处理GIS内容,请查看AGI的Insight3D.仍处于早期开发阶段,但有很多优秀的技术支持,并设计用于处理大量对象,剔除,LoD等.他们甚至有办法将视频嵌入纹理.
编辑:
如果您按照规定处理C#,我真的会看一下Insight3D.它是一个3D GIS引擎.不是游戏引擎.它是基于场景图的,这意味着您不必担心逐帧渲染,就像您可能不得不使用其他引擎一样.
他们拥有您需要的所有结构
对我来说,3D引擎和游戏引擎之间的区别可能会非常模糊.从我所看到的,关键的区别在于游戏引擎更担心的是让事情变得好看而不是准确.例如,我们使用虚幻引擎来渲染我们的办公室,但我们必须将所有内容制作成与现实生活不同的尺度.它看起来很棒,但不是真实的尺寸.在处理细节时,这可能会有所不同.
一点免责声明:我不为AGI工作,但我个人遇到了创建这个引擎的工程师.他们正在整合最新的GPU和渲染技术,因此它是迄今为止我用过的最快,最好的引擎之一.它利用其主要应用程序(STK)使用的知识和技术,这些应用程序被许多人用于高分辨率天文计算.