2016-04-07 21 views
-3

Benim kod şudur:GL HATA: - 1282 Geçersiz işlem

:

glColor4f(1.0f, 1.0f, 1.0f, 1.0f); 
    glEnable(GL_TEXTURE_2D); 

    glBegin(GL_TRIANGLES); 

    int bunnyDisplayList = glGenLists(1); 
    glNewList(bunnyDisplayList, GL_COMPILE); 

    List<Model> models = NPC.getModels(); 

    glBegin(GL_TRIANGLES); 

    for (Model m : models) { 
     for (Model.Face face : m.getFaces()) { 
      Vector3f n1 = addVectors(m.getNormals().get(face.getNormalIndices()[0] - 1), m.getPosition()); 
      glNormal3f(n1.x, n1.y, n1.z); 
      Vector3f v1 = addVectors(m.getVertices().get(face.getVertexIndices()[0] - 1), m.getPosition()); 
      glVertex3f(v1.x, v1.y, v1.z); 
      Vector3f n2 = addVectors(m.getNormals().get(face.getNormalIndices()[1] - 1), m.getPosition()); 
      glNormal3f(n2.x, n2.y, n2.z); 
      Vector3f v2 = addVectors(m.getVertices().get(face.getVertexIndices()[1] - 1), m.getPosition()); 
      glVertex3f(v2.x, v2.y, v2.z); 
      Vector3f n3 = addVectors(m.getNormals().get(face.getNormalIndices()[2] - 1), m.getPosition()); 
      glNormal3f(n3.x, n3.y, n3.z); 
      Vector3f v3 = addVectors(m.getVertices().get(face.getVertexIndices()[2] - 1), m.getPosition()); 
      glVertex3f(v3.x, v3.y, v3.z); 
     } 
    } 
    glEnd(); 
    glEndList(); 

modelleri (ama şeffaf bir şekilde) çizilmelerinden, ama şu hatayı olsun bu işlevi çağırmak her zaman

GL ERROR: 1282 - Invalid operation 
+0

Hangi işlevi? glNormal3f? Yığın izi nedir? – Charlie

cevap

0

glBegin(GL_TRIANGLES); iki kez çağırıyorsunuz. İkinci ifadeyi kaldır.

+0

no, ikincisini kaldıramazsınız - ilkini kaldırmanız gerekir, aksi halde görüntüleme listesi geçersizdir. – MuertoExcobito

0

Bir arama yapmadan önce, iki kez glBegin aramanız var. Dokümantasyondan, bu bir GL_INVALID_OPERATION (1282) üretecektir. Modeli bir liste içinde çizmek istiyorsanız, ilkini kaldırmanız gerektiğini tahmin ediyorum.

+0

"* İlkini kaldırmanız gerektiğini tahmin ediyorum *" İlkini kaldırmanız gerekiyor. Bir glBegin/End parantezinde "glNewList" yapamazsınız. –

İlgili konular