我正在开发3D游戏,现在我必须将每个对象放在代码中。那么有没有办法让编辑器在Java OpenGL中放置对象?
最好是让整个世界(它有点巨大)成为一个大网格,还是以另一种方式做得更好?
答案 0 :(得分:3)
那么有没有办法让编辑器在Java OpenGL中放置对象?
OpenGL中没有对象。困惑?
OpenGL只是绘制东西,它由操作系统给出某种“画布”,你可以告诉它根据你的需要绘制点,线和三角形。
与场景或管理对象相关的任何内容都是您的负担,或者是其他工具包的负担。
我正在开发3D游戏,现在我必须将每个对象放在代码中。
考虑一下:不是硬编码数据,而是从文件中读取数据并使用文件内容构建场景,然后使用OpenGL绘制场景。这与阅读,例如文本文件和向用户打印文本没什么不同。同样的原则,只有不同类型的数据。
有很多3D建模师。一个优秀的,开源的是Blender。将模型和/或场景导出为您可以阅读的某种文件格式(通过实现现有文件或创建自己的文件格式并编写导出器)并使用您的代码进行渲染。
答案 1 :(得分:2)
当然可以在java和openGL中创建一个关卡编辑器,但这通常是一个非常大的项目。
将对象加载到游戏中的最简单方法可能是创建一个XML文件(或其他类型的数据文件),其中包含位置,方向,网格,纹理以及与游戏世界中的对象相关的任何其他数据并手动编辑它虽然如果你有很多对象要放置这可能会很乏味。然后可以在运行时读取它,您的场景将能够渲染这些对象。稍后,如果您选择创建一个文件格式,则可以由级别编辑器使用。
至于你问题的第二部分,这取决于你。然而,将整个世界变成一个网格很少是一个好主意。如果您的世界由许多网格组成,则剔除变得更容易,因为您可以从渲染调用中删除整个对象,而不是剔除单个顶点。