Android libgdx привязывает 6 разных текстур к кубу

Я разрабатываю игру для 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 разных текстур. Как я могу это сделать?


person Dhaval    schedule 23.07.2012    source источник


Ответы (1)


Я бы предпочел создать ваш куб в коде, а не загружать его из файла obj. Это позволит вам полностью настроить генерацию текстурных координат, которые вам, скорее всего, понадобятся для создания эффективного решения.

Вместо того, чтобы использовать 6 текстур, вы просто используете одну текстуру, но указываете разные наборы координат для каждой грани. Каждая координата текстуры будет указывать на место в вашем текстурном атласе. Таким образом, вы даже можете иметь несколько кубических текстур в одном большом атласе текстур. Это будет намного эффективнее, так как сведет к минимуму переключения текстур.

Для куба с каждой гранью, имеющей собственный набор текстурных координат, вам потребуется 4 вершины на грань с 6 индексами на грань. Всего 24 вершины и 36 индексов.

person Bach    schedule 24.07.2012
comment
Там есть много руководств, могу ли я предложить вам заглянуть на blog.xoppa.com - person David Tóth; 11.01.2014