2010-09-20 73 views
0

我的公司已决定,我们需要一个“通用”演示基础设施,用于我们的技术演示,因为我可以使用JOGL或OpenGL编写此代码并创建自己的框架,我不想重新创建车轮。但是那里有很多3D gfx引擎,还有很多OpenGL包装器!通用3D演示软件的建议框架

基本上,我们希望使用3D图形渲染一些地形并在其上放置简单的模型。 他们的要求是它看起来很棒,并且是跨平台的。

基本上,我可以自由决定范围和范式,但我想: - 能够加载3D模型并以全屏或窗口模式渲染它们。 - 能够控制摄像机在整个场景中“飞行”。 - 能够在所有内容上显示/隐藏广告牌消息,即固定在屏幕上并始终面向相机的2D文本和图像。 - 能够改变场景部分的简单事物,例如使对象显现/消失,改变高亮颜色(如红色涂料)等。 - 我可以选择编写或使用现有的脚本语言来注入事件处理和预编程的动画。

示例用例: - 我们公司的某人准备了一些带有建筑物的地形三维模型,基本上生成了一个描述场景及其对象的类似XML的文件。然后他继续使用我的程序在地形上飞行,并记录下几个相关位置“感兴趣”。 - 然后,他将某些位置绑定到键盘按键和/或现有的GUI按钮。 - 他添加了一些浮动文字。 - 他使用我的程序演示了一个演示,加载他的3D模型文件和脚本文件,并且可以从观众的一个选中的相机姿态开始“飞行”到下一个,当他到达并离开时,浮动文本淡入淡出相机的位置......当他点击一个按钮时,地形上的某些建筑物突出显示为红色......等等。

  • 我有一些OpenGL和JOGL以及XNA Game Studio体验。
  • 我宁愿使用Java,因此它可以尽可能地与平台无关。

我该怎么办?

回答

1

我建议你看看OpenSceneGraph或Ogre。两者都是跨平台(C++),功能丰富的图形引擎。此外,它们是商业上友好的许可证,并且是非常成熟和主动维护的引擎。

我知道开箱即用,OpenSceneGraph支持使用一行或两行代码加载几种模型格式,并且有几个OSG库在管理和渲染地形方面已经做得很好。

否则,您将花95%的时间编写利基引擎,而不是开发可视化功能。

+0

这是一个很好的答案。我最终看到了Xith和jMonkeyEngine,都是围绕OpenGL的基于Java场景图的引擎。我想我会用Xith。 – Warlax 2010-09-22 21:10:56

0

这不是Java,但除此之外,您所描述的听起来非常接近开源Virtual Terrain Project。你可能会更好地使用那些增加的额外设施,而不是从更基本的场景图层开始。

+0

是的,这是矫枉过正。我有一个增加了元数据的3D点云。虽然有趣的发现! – Warlax 2010-09-22 21:10:05

0

我建议你使用Ardor3D或JMonkeyEngine 3. Ardor3D对JOGL有很好的支持,它支持Collada格式,terrains,heightmaps,它被NASA和GIS应用使用,它不是一个利基引擎。Ardor3D甚至可以在Android上运行,它是最为跨平台的3D引擎之一。

我劝你看看这个演示显示Ardor3D一个程序地形: http://www.youtube.com/watch?v=bkXFkxrYtLY