[Vertex, Gl] Не корректный рендер модели (pmx)

Версия Minecraft
1.7+
317
10
Всем доброго времени суток!
Я пытаюсь отрендерить pmx модель. Вроде работает, но криво. Сам баг видно на этих скринах:
Screenshot
Screenshot
Все меняется, когда меняю значение в этой строке. GL11.glBegin(2);
Вот так должно быть: Screenshot

С гл я не особо знаком, очень надеюсь на Вашу помощь. (даже если и платно)
p.s Так-же, если Вы знаете, как сделать анимацию этих моделей с помощью .vmd анимаций - отпишите, пожалуйста, и оставьте какой-то способ связаться с Вами.

Java:
try {
            if(data==null)data = Reader.read(new File("Izayoi_Sakuya_Ver2.10.pmx"));
            XVertex[] vs = data.getVertices();
            Face[] fs = data.getFaces();
            XMaterial[] ms = data.getMaterials();
          
            GL11.glPushMatrix();
            glEnable(GL_TEXTURE_2D);
            GL11.glTranslatef(this.width/2, this.height-1, 1);
            float scale = 12;
            GL11.glScalef(scale, scale, 1);
            GL11.glRotatef(180, 1, 0, 0);
            GL11.glRotatef(System.currentTimeMillis()/10%360, 0, 1, 0);
            GL11.glColor4f(1, 1, 1, 1);
            glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(770, 771);
          
            for (int i = 0, v = 0; i < ms.length; i++) {
                XMaterial m = ms[i];
                GL11.glPushMatrix();
                int id = 0;
                if(!map.containsKey(data.getTextures()[m.getTexture()])) {
                    String form = data.getTextures()[m.getTexture()].endsWith(".png") ? "PNG" : "BMP";
                    Texture t2 = TextureLoader.getTexture(form, new FileInputStream("Izayoi_Sakuya_Ver2.10/"+data.getTextures()[m.getTexture()]));
                    id = t2.getTextureID();
                    map.put(data.getTextures()[m.getTexture()], id);
                } else {
                    id = map.get(data.getTextures()[m.getTexture()]);
                }
                glBindTexture(GL_TEXTURE_2D, id);
              
                for (int j = 0; j < m.getBoundFace() / 3; j++, v++) {
                    GL11.glBegin(2);
                    Face f = fs[v];
                    GL11.glTexCoord2f(vs[(int) f.getV1()].getU(), vs[(int) f.getV1()].getV());
                    GL11.glVertex3d(vs[(int) f.getV1()].getX(), vs[(int) f.getV1()].getY(),vs[(int) f.getV1()].getZ());
                    GL11.glTexCoord2f(vs[(int) f.getV2()].getU(), vs[(int) f.getV2()].getV());
                    GL11.glVertex3d(vs[(int) f.getV2()].getX(), vs[(int) f.getV2()].getY(),vs[(int) f.getV2()].getZ());
                    GL11.glTexCoord2f(vs[(int) f.getV3()].getU(), vs[(int) f.getV3()].getV());
                    GL11.glVertex3d(vs[(int) f.getV3()].getX(), vs[(int) f.getV3()].getY(),vs[(int) f.getV3()].getZ());
                    GL11.glEnd();
                }
                GL11.glPopMatrix();
            }
            GL11.glPopMatrix();
        } catch(Exception ex) {
            ex.printStackTrace();
        }
 
Последнее редактирование:

mod

156
2
12
походу мы говорили на разных языках, а именно про 3д анимацию
 
Сверху