【问题标题】:Start with a scene graph engine or with opengl direct?从场景图引擎开始还是直接使用opengl?
【发布时间】:2009-08-15 13:21:25
【问题描述】:

我是一名专业的开发人员,主要使用 Java,但在业余时间我喜欢玩不同的语言和库。问题是我想开始学习如何开发支持 3D 的应用程序或游戏。那里有很多引擎,但我担心直接使用这些引擎我将无法学习 3d 开发的基础知识,因为它们是如此之高。

我应该使用场景图引擎、SDL 之类的库开始编程还是直接使用 opengl?

我在 linux 上进行所有开发,但我希望我开发的东西是跨平台的。

【问题讨论】:

    标签: linux opengl 3d sdl scenegraph


    【解决方案1】:

    我会开始使用普通的 OpenGL。做一些基本的场景,然后从那里开始构建你自己的“3D引擎”。这可能会很糟糕,因为您将学习并且必须自己操作很多低级的东西。但是,我认为这就是您想要学习的内容。

    不要创建太复杂的东西,我只会做基础知识,在掌握了这些(我指的是矩阵操作、相机、平截头体、遮挡等)后,看看一些 3D 引擎,看看它们是如何实现的它。我会在那个时候开始使用它们。

    您需要一个简单的工具包来设置 OpenGL 画布。我推荐 GLUT,它既古老又非常简单。它将帮助您设置一个简单的屏幕。比这更低的级别将是不可移植的,并且创建起来会有点痛苦(Xorg 调用?叹息......)。许多工具包库都有 3D 画布(QT、SDL 等)。但是 GLUT 的好处是它只创建你的窗口,设置一些功能,仅此而已。

    Ogre 是一个非常不错的 3D 引擎,您在了解了 OpenGL 的基础知识之后可能会想看看它。它编程良好且易于使用。

    【讨论】:

    • 尽管我反对使用存在于 Ogre 中的 Singleton,以及执行任何操作所需的所有配置文件和插件。 :-\ 但我非常同意从普通的 OpenGL 开始。
    • @Ricket 是的,我同意你的看法。但是,它是一个 3D 引擎,仅此而已。这就是为什么我喜欢它来学习。这只是一个建议,还有其他引擎也可以很好地完成这项工作。
    【解决方案2】:

    我从 OpenGL 开始。网上有很多教程,除了教授 OpenGL本身,还可以让您学习 3d(游戏)开发中的许多重要内容,例如适当的场景照明和动画基础知识。

    【讨论】:

      【解决方案3】:

      就直接 OpenGL 访问而言,3D 开发的基础是一个快速变化的目标。准备好每隔几个月就必须了解新功能。经过多年的停滞,去年发布了三个 OpenGL 标准,每个标准都有重要的变化。这可能很有趣,但需要付出很多努力才能遵循。

      如果您只是想看看过去很长一段时间是如何工作的,请选择 OpenGL 2.0 规范。它会留在这里,至少再多几年。 OpenGL 3.0 在单独的上下文中引入了所有更改,并且 NVIDIA 承诺不会放弃旧功能。你不会有竞争力,但你有一个稳定的空闲时间平台。

      如果您将 OpenGL 视为达到目的的一种手段,您可能更喜欢为您完成所有繁琐工作的更高级别的库。 3D 图形的“其他”基础,即向量、矩阵、四元数(等等)也出现在这一层。您只是不必知道如何将它们有效地传递给 GPU。如果您追求更高级别的 3D 图形,您可以专注于在所有 API(OpenGL、OpenGL ES、Direct3D)和技术(扫描线光栅化、光线跟踪)中保持相同的东西。

      所以最后,由您决定您想利用业余时间做什么。两条路都很有趣,如果没有固定的目标,就没有内在的“更好”的方式。

      【讨论】:

      • 感谢您的回复。我想它与大多数现代软件技术相同。跟上进度需要很多时间,但尝试很有趣。
      【解决方案4】:

      我可以建议你 OpenSceneGraph 和 c++

      或者可能 Delta3D。它是一个基于 OpenSceneGraph 的库

      还有食人魔但是我没用过..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 2023-03-23
        • 2018-02-10
        相关资源
        最近更新 更多