我正在为Android开发游戏,在其中我必须绘制不同纹理的立方体在每个面。
我使用libgdx游戏开发框架来开发这个游戏。
我绘制立方体的代码如下:
public void draw(GL10 gl)
{
Mesh cube_mesh = ModelLoaderOld.loadObj(Gdx.files.internal("data/cube.obj").read());
cube_mesh.render(GL10.GL_TRIANGLES);}现在我想把6种不同的纹理绑定到这个立方体上。我该怎么做呢?
发布于 2012-07-24 19:22:03
我会考虑在代码中创建多维数据集,而不是从obj文件中加载它。这将允许您完全自定义纹理坐标的生成,您很可能需要它来创建有效的解决方案。
而不是使用6个纹理,您只需使用一个纹理,但为每个面指定不同的坐标集。然后每个纹理坐标将指向您的纹理图集上的一个位置。这样一来,你甚至可以在一个大的纹理图集中拥有多个立方体纹理。这种方式会更有效率,因为它可以最大限度地减少纹理切换。
对于每个面都有自己的纹理坐标集的立方体,每个面需要4个顶点,每个面需要6个索引。总共有24个顶点和36个索引。
https://stackoverflow.com/questions/11612353
复制相似问题