【问题标题】:What ways are there of drawing 3D trees using Java and OpenGL?使用 Java 和 OpenGL 绘制 3D 树的方法有哪些?
【发布时间】:2010-09-15 11:37:15
【问题描述】:

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

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

在 Java 中有免费的树图库吗?还是示例代码或演示? 有什么其他语言可以移植或学习的吗?

【问题讨论】:

    标签: java c++ c opengl procedural-generation


    【解决方案1】:

    【讨论】:

    • 我没有看到 arbaro 的 javadoc,但您始终可以获取源代码并自行生成。祝你好运。
    【解决方案2】:

    有成千上万种方法。一个更好的问题将以更有限的方式定义“最佳”。我们是否在谈论“最好”的绘图速度(适合数千或数百万棵树)?最好的和最好看的一样?等等

    【讨论】:

      【解决方案3】:

      2D 还是 3D?
      在 2D 中,一种常见的方法是使用 L 系统。
      我还尝试了一种面向对象的方法,为树干、树枝、树叶定义对象,所有这些对象都扩展了一个抽象类并实现了一个基因型接口(以改变树的种类)。
      不确定它是否有效(创建了很多对象,特别是如果我为树设置动画)但很有趣。

      【讨论】:

        【解决方案4】:

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

        • gamedev thread on the subject - 包含一些有用的建议/建议
        • ngPlant - 一个开源程序植物生成工具。它不是用 Java 编写的,但您或许可以在它的算法中找到灵感。

        【讨论】:

          【解决方案5】:

          如果您使用的是 eclipse/SWT,请尝试绘制 2D。

          【讨论】:

            【解决方案6】:

            如果您真的想获得漂亮、快速的树,那么可以使用商业 C++ 库 SpeedTree。许多大型游戏都使用它(例如 GTA、上古卷轴)。

            【讨论】:

            • SpeedTree 很棒,但我正在计划一些免费和开源的软件(可能是 GPL 许可),因此我需要找到免费的解决方案或自己制作。
            【解决方案7】:

            OpenSceneGraph 和 SpeedTree 的组合对我有用。

            【讨论】:

              【解决方案8】:

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

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

              JOGL 如果你想将swing组件与opengl混合使用,这可能是更好的选择,我从未使用过它,但几年前它被认为是相当错误的,我不知道它从那时起是否成熟.

              至于绘制树,有很多方法可以像其他海报所说的那样,你可能想要更具体。

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

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多