0

I am developing game for Android in which I have to draw cube with different texture at each face.

I am using libgdx game development framework to develop this game.

My code to draw cube is as follow :

public void draw(GL10 gl) 
{
    Mesh cube_mesh  =   ModelLoaderOld.loadObj(Gdx.files.internal("data/cube.obj").read());
    cube_mesh.render(GL10.GL_TRIANGLES);}

Now I want to bind 6 different texture to this cube. How can I do this?

4

1 回答 1

2

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

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

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

于 2012-07-24T11:22:03.007 回答