在工程应用程序中进行实时 3D 渲染的最佳方法是什么? [英] What is the best way to have realtime 3D rendering in an engineering application?

查看:20
本文介绍了在工程应用程序中进行实时 3D 渲染的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在开发基于 GIS 的应用程序,该应用程序可在虚拟现实环境中模拟真实文字对象(即管道、道路等).目前我们使用 ESRI ArcGIS 用于 3D 渲染的包,将来我们打算用我们自己的 3D 环境替换它.

We are developing a GIS based application which simulates the real word objects (i.e. Pipes, Roads, etc) in a virtual reality environment. Currently we use ArcScene from ESRI ArcGIS package for 3D rendering, and in future we intend to replace it with our own 3D environment.

问题:在上述应用程序中进行实时 3D 渲染的最佳方法是什么?我在这个领域没有任何经验,我真的很困惑.我应该使用可用的 3D 渲染引擎之一(下面列出了一些)吗?如果答案是肯定的,那么应该考虑哪些参数(无论其成本如何)?有没有人在这方面有任何经验或建议?

Question: What is the best way to have realtime 3D rendering in above mentioned application? I do not have any experience in this field and i'm really confused. Should I use one of the available 3D rendering engine (some listed below)? if the answer is yes, then which parameters should be considered (regardless of its cost)? Does any one have any experience or suggestion in this field?

情况和必要条件:

  1. 我们使用 C# .NET 环境来开发应用程序
  2. 有大量的 3D 对象要显示
  3. 3D 对象分组在不同的 CAD 文件中
  4. 与最终 3D 场景的交互至关重要(例如,选择一个 3D 对象)
  5. 需要加载、卸载、打开、关闭和设置图层和/或对象的透明度.
  6. 具有高细节(从道路到非常精细的物体,如一颗螺丝)的广泛模型(超过 800 公顷的区域)的高性能实时渲染
  7. 无需提前解决着色问题(此时)
  8. 纹理必须适用

渲染引擎:经过一番搜索,我找到了以下 3D 渲染解决方案:

Rendring Engines: After some search I found the following 3D rendering solutions:

  1. CadFaster|Engine:CadFaster|Engine 是适用于技术应用程序的独特且最具可扩展性的 3D 渲染解决方案.它比通常的 CAD 应用程序快十倍以上.该引擎包括获得专利的实时同步机制,用于 3D 数据集和几何图形,允许自动集成到主应用程序.CadFaster|Engine 还包含获得专利的实时多边形减少,可提高 3D 性能."引用自 DevMaster

  1. CadFaster|Engine: "The CadFaster|Engine is a unique and the most scalable 3D rendering solution for technical applications. It is over ten times faster than usual CAD applications. The engine includes patented real-time synchronization mechanisms for 3D data sets and geometry which allows automatic integration to the master application. CadFaster|Engine also contains patented real-time polygon reduction which improves the 3D performance." cited from DevMaster

Quest3D:使用 Quest3D 创建软件、网络Quest3D 是建筑可视化、产品可视化、数字娱乐、计算机辅助培训和高端 VR 应用."引自 Quest3D 介绍

Quest3D: "Use Quest3D to create software, web and simulators. Quest3D is the perfect solution for architecture visualization, product visualization, digital entertainment, computer aided training and high-end VR applications." cited from Quest3D introduction

OpenSceneGraph:OpenSceneGraph 是一个开源的高性能 3D 图形工具包,由应用程序开发人员在视觉模拟、游戏、虚拟现实、科学可视化和建模等领域使用.完全用标准 C++ 和 OpenGL 编写...... OpenSceneGraph 现在已成为世界领先的场景图技术, 广泛应用于vis-sim、空间、科学、石油天然气、游戏和虚拟现实行业.主要语言:C/C++ 语言包装器:C#,......"引用自 OSG 主页.

OpenSceneGraph: "The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. Written entirely in Standard C++ and OpenGL ... . The OpenSceneGraph is now well established as the world leading scene graph technology, used widely in the vis-sim, space, scientific, oil-gas, games and virtual reality industries. The main language: C/C++ Language wrappers: C#, ... ." cited from OSG home page.

还有一个几乎完整的可用引擎列表,位于 DevMaster3DLinks

Also there is a list of nearly complete available engines at DevMaster and 3DLinks

推荐答案

无论您使用哪种引擎,都需要了解一些关键概念.

Regardless of which engine you use, there are some key concepts to understand.

由于您要处理如此多的对象,因此主要的对象是细节级别 (LoD).确保您的对象具有与其关联的真实 LoD.例如,在查看整个场景时,您不会费心渲染螺丝的高细节模型.此外,当靠近它但仍然足够远时,螺丝的低细节版本足以进行渲染.

Since you are dealing with so many objects, the main one is that of Level of Detail (LoD). Make sure your objects have realistic LoD associated with them. For example, you won't bother to render the high-detail model of the screw when viewing the whole scene. Also, when closer to it yet still far enough away, a low-detail version of the screw is good enough for rendering.

此外,您可以使用虚拟地球之类的技巧并平铺您的数据(与 LoD 相关).最后,剔除将非常重要,但可能涉及到您已经提到的任何引擎.

Also, you can do tricks like Virtual Earth and tile your data (which is related to LoD). Finally, culling is going to be very important, but probably dealt with any of those engines you have already mentioned.

如果您正在处理 GIS 内容,请查看 AGI 的 Insight3D.仍处于早期开发阶段,但得到了许多优秀技术的支持,旨在处理大量对象、剔除、LoD 等.他们甚至有将视频嵌入为纹理的方法.

If you are dealing with GIS stuff, check out AGI's Insight3D. Still in early development, but backed by a lot of good technology, and designed to handle large quantities of objects, culling, LoD, etc. They even have ways to embed video as a texture.

如果你像你所说的那样处理 C#,我真的会看看 Insight3D.它是一个 3D GIS 引擎.不是游戏引擎.它基于场景图,这意味着您不必像使用其他引擎一样担心逐帧渲染.

If you are dealing in C# as you stated, I really would take a look at Insight3D. It is a 3D GIS engine. Not a game engine. It is scene-graph based, which means you don't have to worry about frame-by-frame rendering as you might have to with other engines.

他们拥有您需要的所有构造

They have all the constructs you need for

  1. 非常快速的命中测试(即您选择了哪个实体).
  2. 场景图类,可轻松控制条件渲染.
  3. 时间作为场景图的一部分集成到引擎中.这意味着您甚至可以定义前一个时间点的事物是什么样子,并在此基础上反复调整.

对我来说,3D 引擎和游戏引擎之间的区别可能变得非常模糊.从我所见,关键的区别在于游戏引擎更担心让事情看起来好而不是准确.例如,我们使用 Unreal 引擎来渲染我们的办公室,但我们必须将所有东西制作成与现实生活不同的比例.它看起来很棒,但不是现实生活中的维度.在处理细节时,这可能会有所不同.

For me, the difference between a 3D engine and a game engine can get pretty blurred. From what I've seen, the key difference is that game engines are more worried about making things look good than accurate. For example, we used the Unreal engine to render our office, but we had to make everything to different scales than real-life. It looked great, but not to real-life dimensions. This might make a difference when dealing with details down to screws as you are doing.

一点免责声明:我不为 AGI 工作,但我亲自会见了创建此引擎的工程师.他们集成了最新的 GPU 和渲染技术,因此它是迄今为止我使用过的最快、性能最好的引擎之一.它利用其主要应用程序使用的知识和技术 (STK) 被许多人用于高分辨率天文计算.

A little disclaimer: I do not work for AGI, but I have personally met the engineers that are creating this engine. They are integrating the latest GPU and rendering techniques, so it is by far one of the best fastest, well-done engines I've used. It leverages knowledge and technology used by their main application (STK) which is used by many people for high-resolution astronomical calculations.

这篇关于在工程应用程序中进行实时 3D 渲染的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆