Capt'N Coax
2003-10-23, 19:58:50
Oi!
Ich habe hier ein kleines Problemchen, dürfte eigentlich schnell zu beheben sein, kanns aber auf die schnelle nicht testen, bzw. will nicht extra n Testprogramm schreiben.
Folgendes:
glEnableClientState (GL_VERTEX_ARRAY);
glEnableClientState (GL_TEXTURE_COORD_ARRAY);
glEnableClientState (GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, m_p_vArray1);
glTexCoordPointer(2,GL_FLOAT,0,m_p_vArray2);
glNormalPointer(GL_FLOAT, 0, m_p_vArray3);
...
glDrawArrays(GL_TRIANGLES,0,1187);
Er zeichnet das Objekt, Vertices sind in Ordnung.
Tex-Koords funzen anscheinend auch.
Nur die Normalz will er nicht. Ich bin mir aber auch nicht sicher WIE die Dinger im Array stehen müssen. Ich habe NUR Vertex normals, also 3 Float- Angaben pro Vertex. Muss ich daher den Stride auf 3 setzen? Hab ich schon probiert, so läuft das Prog zwar fehlerlos, allerdings wird das Objekt immer noch bright gezeichnet.
und ja, die Normalz sind korrekt berechnet.
Oder muss ich erst ein LICHT einbauen, um den Normaleffekt nachzuvollziehen? Licht ist nämlich nicht drinne (yet), dachte aber bis jetz , das ein neutral Light standard wäre (wie in gängiger 3D Soft).
Ausserdem ist mir folgende Zeile aus der GL-Doku nicht ganz klar:
Zidaaad:
The normal array is initially disabled and isn't accessed when glArrayElement, glDrawElements, or glDrawArrays is called. :kratz2:
Wie denn dann zum Geier?
In Unwissen, der Coax
Ich habe hier ein kleines Problemchen, dürfte eigentlich schnell zu beheben sein, kanns aber auf die schnelle nicht testen, bzw. will nicht extra n Testprogramm schreiben.
Folgendes:
glEnableClientState (GL_VERTEX_ARRAY);
glEnableClientState (GL_TEXTURE_COORD_ARRAY);
glEnableClientState (GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, m_p_vArray1);
glTexCoordPointer(2,GL_FLOAT,0,m_p_vArray2);
glNormalPointer(GL_FLOAT, 0, m_p_vArray3);
...
glDrawArrays(GL_TRIANGLES,0,1187);
Er zeichnet das Objekt, Vertices sind in Ordnung.
Tex-Koords funzen anscheinend auch.
Nur die Normalz will er nicht. Ich bin mir aber auch nicht sicher WIE die Dinger im Array stehen müssen. Ich habe NUR Vertex normals, also 3 Float- Angaben pro Vertex. Muss ich daher den Stride auf 3 setzen? Hab ich schon probiert, so läuft das Prog zwar fehlerlos, allerdings wird das Objekt immer noch bright gezeichnet.
und ja, die Normalz sind korrekt berechnet.
Oder muss ich erst ein LICHT einbauen, um den Normaleffekt nachzuvollziehen? Licht ist nämlich nicht drinne (yet), dachte aber bis jetz , das ein neutral Light standard wäre (wie in gängiger 3D Soft).
Ausserdem ist mir folgende Zeile aus der GL-Doku nicht ganz klar:
Zidaaad:
The normal array is initially disabled and isn't accessed when glArrayElement, glDrawElements, or glDrawArrays is called. :kratz2:
Wie denn dann zum Geier?
In Unwissen, der Coax