我正在为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个不同的纹理绑定到这个立方体。我怎么能这样做?
答案 0 :(得分:2)
我会考虑在代码中创建您的多维数据集,而不是从obj文件加载它。这将允许您完全自定义纹理坐标的生成,您最有可能需要创建有效的解决方案。
不是使用6个纹理,而是使用一个纹理,但为每个面指定一组不同的坐标。然后,每个纹理坐标将指向纹理图集上的位置。这样,您甚至可以在一个大纹理图集中拥有多个立方体纹理。这种方式效率会更高,因为它可以最大限度地减少纹理切换。
对于每个面具有自己的纹理坐标集的立方体,每个面需要4个顶点,每个面需要6个索引。所以共有24个顶点和36个索引。