Regardless of which engine you use, there are some key concepts to understand.
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.
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.
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.
EDIT:
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
Very fast hit-testing (i.e. which entity you picked).
Scene-Graph classes with easy controls for conditional rendering.
Time is integrated into the engine as part of the Scene-Graph. This means that you can even define what things looked like at a previous point in time and go back and forth on it.
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.
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.
Ogre 和 garagegames.com 拥有“旧”3D 引擎,因此您应该能够找到完整游戏或演示版,以便查看性能。 我不熟悉编写 CAD 应用程序,因此当您说您有 3D 对象时,我不确定那是静态对象还是在应用程序运行时可以更改的对象。
SlimDX SDK might be option, if your willing to start a bit from the bottom, its basically a way of giving you access to DirectX from .NET. They also have a collection of samples for you to start from. Ogre - a 3d engine under LGPL or purcache a license garagegames.com - also has a few engines, depending on your language of choice ( Also "low" price. no 500k $ engines here )
Both Ogre and garagegames.com have "old" 3d engines, so you should be able to find either full games or demos so you can check out the performance. Im not familiar with writing cad applications, so when you say you have 3D objects im not sure if thats static or objects that can change while the application is running.
I have worked with OpenSceneGraph and in my opinion if you are not very good at organizing your graph you could end up with poor performance given the specifics of your models (high detail, high object count, scattered scenes). You will need to be able to partition your scene spatialy (like oct-trees, kd-trees, etc).
If cost is not an issue you could go for vendors that also provide consulting services and sell engines that don't require quite the same 3D graphics expertise as the OSG for instance.
Another issue to think of is how do you import your models into the engine. If you work with documented file formats you could do it yourself, otherwise you'll need to rely on external libraries for reading and/or importing the model into your engine of choice.
If your models are extremely large you'll need something that is capable of paging as your model won't fit into the available memory (relying on the OS for paging in this case is not the best idea IMO).
Unity 2.5 now has an IDE that runs on windows. There is also a web viewer so that (using a plugin) you can view immersive environments right on a web page. Indie license is just $200.
BTW GarageGames now licenses a newer tech called Torque3D
You should look at WPF, Windows Presentation Framework, (see winfx, see avalon) and look deep into the most recent developments. You might find this link of some interest. Also, what is Thriple?
发布评论
评论(6)
无论您使用哪种引擎,都需要理解一些关键概念。
由于您要处理如此多的对象,因此主要的对象是细节级别 (LoD)。 确保您的对象具有与其关联的真实 LoD。 例如,在查看整个场景时,您不会费心渲染螺丝的高细节模型。 此外,当距离它较近但仍足够远时,螺丝的低细节版本足以进行渲染。
此外,您还可以使用 Virtual Earth 等技巧并平铺数据(与 LoD 相关)。
最后,剔除将非常重要,但可能涉及您已经提到的任何引擎。
如果您正在处理 GIS 内容,请查看 AGI 的 Insight3D。 仍处于早期开发阶段,但有很多优秀技术的支持,旨在处理大量对象、剔除、LoD 等。他们甚至有办法将视频嵌入为纹理。
编辑:
如果您像您所说的那样使用 C#,我真的会看看 Insight3D。 它是一个 3D GIS 引擎。 不是游戏引擎。 它是基于场景图的,这意味着您不必像其他引擎那样担心逐帧渲染。
所需的所有构造
对我来说,3D 引擎和游戏引擎之间的区别可能会变得相当模糊。 据我所知,关键的区别在于游戏引擎更关心的是让事情看起来更好而不是准确。 例如,我们使用虚幻引擎来渲染我们的办公室,但我们必须将所有东西制作成与现实生活不同的比例。 它看起来很棒,但不符合现实生活的尺寸。 当您处理细节到螺丝时,这可能会有所不同。
一点免责声明:我不为 AGI 工作,但我亲自见过创建该引擎的工程师。 它们集成了最新的 GPU 和渲染技术,因此它是迄今为止我使用过的最快、做得最好的引擎之一。 它利用其主要应用程序使用的知识和技术 (STK ),许多人使用它进行高分辨率天文计算。
Regardless of which engine you use, there are some key concepts to understand.
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.
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.
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.
EDIT:
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
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.
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.
SlimDX SDK 可能是一个选择,如果您愿意从底层开始,它基本上是一种为您提供访问权限的方式从 .NET 到 DirectX。 他们还提供了一系列示例供您开始使用。
Ogre - LGPL 或购买许可证
garagegames.com - 还有一些引擎,具体取决于您选择的语言(价格也“低廉”。这里没有 50 万美元的引擎)
Ogre 和 garagegames.com 拥有“旧”3D 引擎,因此您应该能够找到完整游戏或演示版,以便查看性能。 我不熟悉编写 CAD 应用程序,因此当您说您有 3D 对象时,我不确定那是静态对象还是在应用程序运行时可以更改的对象。
SlimDX SDK might be option, if your willing to start a bit from the bottom, its basically a way of giving you access to DirectX from .NET. They also have a collection of samples for you to start from.
Ogre - a 3d engine under LGPL or purcache a license
garagegames.com - also has a few engines, depending on your language of choice ( Also "low" price. no 500k $ engines here )
Both Ogre and garagegames.com have "old" 3d engines, so you should be able to find either full games or demos so you can check out the performance. Im not familiar with writing cad applications, so when you say you have 3D objects im not sure if thats static or objects that can change while the application is running.
我曾使用过 OpenSceneGraph,在我看来,如果您不太擅长组织图形,那么考虑到模型的具体情况(高细节、高对象数量、分散的场景),您最终可能会获得较差的性能。 您需要能够对场景进行空间分区(如八叉树、kd 树等)。
如果成本不是问题,您可以选择同时提供咨询服务和销售引擎的供应商,这些供应商不需要与 OSG 完全相同的 3D 图形专业知识。
另一个需要考虑的问题是如何将模型导入引擎中。 如果您使用记录的文件格式,您可以自己完成,否则您将需要依赖外部库来读取模型和/或将模型导入到您选择的引擎中。
如果您的模型非常大,您将需要能够进行分页的东西,因为您的模型无法适应可用内存(在这种情况下依赖操作系统进行分页并不是最好的主意)。
您可以在这里找到 3D 引擎列表,其中一些是商业引擎: http://en.wikipedia.org /wiki/3D_graphics_API 列表
I have worked with OpenSceneGraph and in my opinion if you are not very good at organizing your graph you could end up with poor performance given the specifics of your models (high detail, high object count, scattered scenes). You will need to be able to partition your scene spatialy (like oct-trees, kd-trees, etc).
If cost is not an issue you could go for vendors that also provide consulting services and sell engines that don't require quite the same 3D graphics expertise as the OSG for instance.
Another issue to think of is how do you import your models into the engine. If you work with documented file formats you could do it yourself, otherwise you'll need to rely on external libraries for reading and/or importing the model into your engine of choice.
If your models are extremely large you'll need something that is capable of paging as your model won't fit into the available memory (relying on the OS for paging in this case is not the best idea IMO).
Here you can find a list of 3D engines, some of them commercial: http://en.wikipedia.org/wiki/List_of_3D_graphics_APIs
Unity 2.5 现在有一个在 Windows 上运行的 IDE。 还有一个网络查看器,以便(使用插件)您可以直接在网页上查看沉浸式环境。 独立许可证只需 200 美元。
顺便说一句,GarageGames 现在授权了一种名为 Torque3D 的新技术。
另外值得检查的是 C4 Engine 在 devmaster.net
Unity 2.5 now has an IDE that runs on windows. There is also a web viewer so that (using a plugin) you can view immersive environments right on a web page. Indie license is just $200.
BTW GarageGames now licenses a newer tech called Torque3D
Also worth checking is the C4 Engine which gets high praise over at devmaster.net
http://www.blender.org/ 附带游戏引擎
http://www.blender.org/ comes with a game engine
您应该查看 WPF、Windows 演示框架(请参阅 winfx、avalon)并深入了解最新的发展。 您可能会对此链接感兴趣。 另外,Thriple 是什么?
You should look at WPF, Windows Presentation Framework, (see winfx, see avalon) and look deep into the most recent developments. You might find this link of some interest. Also, what is Thriple?