【问题标题】:3D: how to render/create terrain3D:如何渲染/创建地形
【发布时间】:2012-05-10 10:44:19
【问题描述】:

我正在开发一款 3D 游戏,现在我必须将每个对象放入代码中。那么有没有办法让编辑器在 Java OpenGL 中放置对象?

最好把整个世界(有点大)做成一个大网格,还是另一种方式更好?

【问题讨论】:

  • 您使用的是什么 3D 引擎/OpenGL 工具包?

标签: java opengl 3d terrain


【解决方案1】:

那么有没有办法让编辑器在 Java OpenGL 中放置对象?

OpenGL 中没有对象。困惑?

OpenGL 只是绘制东西,它被操作系统赋予了某种“画布”,你可以告诉它根据你的需要绘制点、线和三角形。

与场景或管理对象相关的任何事情都是您的负担,或者是附加工具包的负担。

我正在开发一款 3D 游戏,现在我必须将每个对象放入代码中。

想一想:与其硬编码数据,不如从文件中读取数据并使用文件内容构建场景,然后使用 OpenGL 进行绘制。这与阅读文本文件和向用户打印文本没什么不同。原理相同,只是数据类型不同。

有很多 3D 建模师。一个优秀的开源软件是Blender。将模型和/或场景导出为您可以读取的某种文件格式(通过实现现有格式,或发明自己的格式并编写导出器)并使用您的代码进行渲染。

【讨论】:

    【解决方案2】:

    当然可以用 java 和 openGL 制作关卡编辑器,但这通常是一个相当大的项目。

    也许将对象加载到游戏中的最简单方法是制作一个 XML 文件(或其他类型的数据文件),其中包含与游戏世界中的对象相关的位置、方向、网格、纹理和任何其他数据并手动编辑它,但如果您有很多对象要放置,这可能会很乏味。然后可以在运行时读取它,并且您的场景将能够渲染这些对象。稍后,如果您选择制作一个关卡编辑器,则可以使用此文件格式。

    至于你问题的第二部分,这取决于。然而,将整个世界变成一个网格很少是一个好主意。如果您的世界由许多网格组成,那么剔除会变得更容易,因为您可以从渲染调用中删除整个对象,而不是剔除单个顶点。

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2014-04-03
      • 2021-10-18
      相关资源
      最近更新 更多