2013-08-26 2 views
0

Моя проблема заключается в том, что в Libgdx, я создал треугольник в 3D, благодаря классу Mesh в этом простом куске кода:3d треугольник в libgdx

mesh = new Mesh(true, 3, 3, 
       new VertexAttribute(VertexAttributes.Usage.Position, 3, "vPosition")); 

mesh.setVertices(new float[] { vert1.x, vert1.y, vert1.z, vert2.x, vert2.y, vert2.z, vert3.x, vert3.y, vert3.z }); 
mesh.setIndices(new short[] { 0, 1, 2 }); 

Что важно для меня, чтобы быть в состоянии изменить vert1, vert2, vert3, которые сохраняют координаты вершин треугольника, так как я хочу создать треугольник во время игры.

Когда отображается треугольник, кажется, что он появляется в нужном месте, в соответствии с тем, что я даю ему в вершинах Vector3.

Теперь вот что: я использовал для камеры.rotateAround(), чтобы создать способ посмотреть вокруг сцены, и я также создал небольшую рамку, чтобы увидеть, работает ли мой скрипт с камерой. Это ! Я могу видеть, что моя коробка вращается, если я перемещаю камеру. Но когда я вращаюсь вокруг сцены, созданный мной треугольник не вращается и остается неподвижным на экране, точно так же, как это была 2D-сетка!

Итак, вот мой вопрос: Как сделать 3D-треугольник в Libgdx и как сделать рендеринг треугольника в соответствии с движением камеры?

+0

API документ не ясно для меня, но, может быть, первый параметр Mesh, булевой переменной isStatic, должно быть ложным. –

+0

Настройка на false не помогает, уже пробовал. Но спасибо за попытку, приятель – turbodoom

+1

Класс Mesh - довольно обтекающая оболочка вокруг необработанного OpenGL, поэтому ничего не должно быть «2d». Возможно, еще больше кода. Как вы нарисовываете рабочий ящик? Применяется ли ваша камера к треугольнику так же, как и рендер окна? Вы пересчитываете веры для Mesh? –

ответ

0

Найдено решение здесь: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=10583&p=47800#p47800

Это ImmediateModeRenderer20 дает временный способ для создания 3D-сетки, в том числе треугольников.

Это действительно кажется, что класс libgdx Mesh только для 2D ...

+1

. Неправильно вы также можете создавать 3D-элементы. Это зависит от того, как вы даете координаты вершин. –

+0

ImmediateModeRender20 просто упрощает жизнь, передавая матрицу cam.combined в код. внутренне он также отправляет матрицу проекции в шейдер для визуализации вершин –

Смежные вопросы