使用Java和OpenGL绘制3D树的方法有哪些

What ways are there of drawing 3D trees using Java and OpenGL?

本文关键字:方法 3D Java OpenGL 绘制 使用      更新时间:2023-10-16

我知道如何使用JOGL或LWJGL绘制基本对象以连接到OpenGL。我想要的是可以为树生成某种几何体的东西,类似于SpeedTree的著名之处。很明显,我不希望有和SpeedTree一样的质量。

我希望这些树看起来不重复。速度不是问题,我不希望一次在屏幕上需要超过100棵树。

Java中有免费的树状图库吗?或者示例代码或演示?还有其他语言的东西我可以移植或学习吗?

http://arbaro.sourceforge.net/

http://www.propro.ru/go/Wshop/povtree/povtree.html

非java:http://www.aust-manufaktur.de/austt.html

有成千上万的方法。一个更好的问题将以一种更为有限的方式定义"最佳"。我们说的是"最好的"绘画速度(适用于成千上万或数百万棵树)吗?最好看的还是最好的?等等

2D还是3D
在2D中,一种常见的方法是使用L系统
我还尝试了一种OO方法,为主干、分支、叶子定义对象,所有这些都扩展了一个抽象类并实现了Genotype接口(以改变树的类型)
不确定它是否有效(创建了很多对象,特别是当我为树设置动画时),但做起来很有趣。

以下是一些可能有用的资源:

  • 关于这个主题的gamedev线程-包含一些有用的建议
  • ngPlant-一个开源的程序植物生成工具。它不是用Java编写的,但你可以在它的算法中找到想法

如果您正在使用eclipse/SWT,请尝试Draw 2D。

如果你真的想得到好看、快速的树,有一个商业C++库SpeedTree。许多大型游戏都使用它(例如,侠盗猎车手、上古卷轴)。

OpenSceneGraph和SpeedTree的组合对我很有用。

我知道有两个库可以在java中使用OpenGl。

LWJGL(Light Weight Java Gaming Library,轻量级Java游戏库),imo是一个更好的库,因为它的简单性和它与使用opengl和c/c++的相似性。

JOGL如果你想将摆动组件与opengl混合使用,这可能是更好的选择,我从未使用过它,但几年前,它被认为是非常有缺陷的,我不知道从那时起它是否成熟了。

至于画树,有很多方法可以做到,就像另一张海报所说的那样,你可能想更具体一点。

编辑:我想我有点误解了这个问题,哦,好吧:/你可以加载一个树的三维模型并显示它。

http://www.codeplex.com/LTrees有一些源代码。不过它是c++。