Ich hab mir den Code mal angeschaut, und Interessant dürfte diese Funktion sein
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
void CQuake3BSP::RenderFace(int faceIndex)
{
tBSPFace *pFace = &m_pFaces[faceIndex];
if(g_bTextures)
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, m_textures[pFace->textureID]);
}
glDrawArrays(GL_TRIANGLE_FAN, pFace->startVertIndex, pFace->numOfVerts);
}
|
Zuvor wurde das gesamte Vertex Array gesetzt. Ähnlich wie bei D3D der VertexBuffer. Wie die Daten nun im Array vorliegen weis ich nicht. Jedoch scheint es schon wichtig zu sein, den Start Index des Faces zu benutzen und die Anzahl der Vertice (numOfVerts) zu Rendern.
Vieleicht liegt es auch an D3DPT_TRIANGLEFAN. Dies ist bei OGL vieleicht anders. Obwohl ich mir das nicht vorstellen kann. Als einzige Fehlerquelle kann ich hier eigentlich nur noch das laden des Levels benennen.
Vieleicht haste auch einen ganz blöden Fehler eingebaut. Die Farbinformationen müstest du eigentlich mit einlesen. Benutze sie, dann sieht man auch mehr vom Level. Welche Hintergrundfarbe benutzt du?