2012-07-23 50 views
0

我正在开发Android游戏,我必须在每张脸上绘制具有不同纹理的立方体。android libgdx bind 6 diffrent texture to cube

我使用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个不同的纹理绑定到这个立方体。我怎样才能做到这一点?

回答

2

我会考虑在代码中创建多维数据集,而不是从obj文件加载它。这将允许您完全自定义纹理坐标的生成,这将很可能需要您创建有效的解决方案。

而不是使用6纹理,你只需使用一个纹理,但为每个面指定一组不同的坐标。然后每个纹理坐标将指向纹理图集上的一个位置。这样,您甚至可以在一个大纹理图集中使用多个立方体纹理。这样做会更有效率,因为它会最小化纹理切换。

对于每个人脸具有自己的一组纹理坐标的立方体,每个人脸需要4个顶点,每个人脸上有6个索引。所以共有24个顶点和36个索引。

+0

嗨感谢您的回复,但有你的任何示例代码? – Dhaval 2012-07-25 04:36:08

+0

那里有很多教程,我可以建议你看看http://blog.xoppa.com/ – 2014-01-11 16:55:13