Libgdx如何在3D场景中创建天空/环境

4
我正在使用Libgx 3D API开发一款3D游戏。现在我想要添加一些环境(不是Libgdx的Environment,而是一个真正的环境),比如天空或一些背景。我听说过所谓的skybox,大致上理解了它的工作原理。
这个“skybox”是围绕着你的游戏世界的一个盒子。所以你在这个盒子里面。你为这个盒子的内部的6个面添加纹理。然后将相机设置到这个盒子的中心,但要正确地设置视角,并开始渲染,这样你就始终与这些面保持相同的距离,但可以旋转并查看其他面。然后你将相机设置到你在世界中的真实位置,并渲染所有的模型、对象等等。我理解得对吗?
我找不到关于如何在libgdx中创建“skybox”的教程。那么我的问题是:如何在libgdx中创建“skybox”,如何将我的纹理添加到其中,以及如何将其渲染为背景/环境?还是有其他更简单的可能性吗?

1
只需查找纯OpenGL示例,有很多这样的示例。它肯定可以在Libgdx中工作。 - William Reed
好的,我会尝试一下。我只是认为使用Libgdx也有很大的可能性。如果不行的话,我就得使用OpenGL了。 - Robert P
1
也许这会有所帮助:http://blog.xoppa.com/loading-a-scene-with-libgdx/ - Xoppa
@Xoppa 非常感谢!我已经跟随您的教程一段时间了,但我还没有阅读过这篇。我认为它能帮助我。另外,我将就Libgdx中的3D编写一个新问题。由于您比我更有经验,您能否帮忙看看?谢谢。 - Robert P
1个回答

4
  1. 您可以在世界中使用内部贴有纹理的“大球体”。如果使用blender,则只需创建球体对象并展开此网格。然后翻转法线以查看球体内部的纹理。
  2. 另一种方法是创建像您上面描述的cubemap。我已经制作了一个可与cubemap一起使用的类。只需按照此链接:LibGDX 0.9.9 - Apply cubemap in environment进行操作即可。

谢谢你的回答。我会尝试一下,然后告诉你是否有效。 - Robert P
嗨,谢谢你的回答,你如何在libgdx中显示反向球体?我将其呈现为模型实例,并使用带有环境和环境光的渲染器,但是球体并没有出现。但是在Blender中它可以正常工作,当相机在球体内部时,纹理会很好地显示。我还将纹理添加到“data”文件夹中以确保一切正常。有什么想法吗? - Paul
说实话,我使用了从Xoppa教程中下载的sphere。如何精确地创建它,只有Xoppa知道! - Nolesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接