Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 19:01

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: MD3-Models und Normalen
BeitragVerfasst: Do Feb 23, 2006 16:22 
Offline
DGL Member

Registriert: Do Feb 23, 2006 15:48
Beiträge: 12
Hallo,
in meinem Programm wird eine *.md3-Datei geladen und angezeigt. (ohne Animationen)
Nun wollte ich noch Lightning einbauen, aber das erweist sich als schwieriger als ich dachte.
Wenn ich die Normalen so auslese, zeigen sie alle in ein und dieselbe Richtung.

Ich suche den Fehler schon seit Tagen und werde einfach nicht fündig :(

Vielleicht sieht einer von euch was falsch ist.

Code:
  1.  
  2. {
  3. double alpha, beta;
  4.     float a, b, c;
  5.     int i, j;
  6.  
  7.     for (i=0; i<256; i++)
  8.     for (j=0; j<256; j++)
  9.     { 
  10.         alpha = i * 2.0 * PI / 255.0;
  11.         beta = j * 2.0 * PI / 255.0;
  12.         a = (float) (cos(beta) * sin(alpha));
  13.         b = (float) (sin(beta) * sin(alpha));
  14.         c = (float) cos(alpha);
  15.  
  16.         anorms[i][j][0] = a;
  17.         anorms[i][j][1] = b;
  18.         anorms[i][j][2] = c;
  19.     }
  20. }


Berechnung der Normalen:
Code:
  1. for (i=0; i < currentMesh.numOfVerts * meshHeader.numMeshFrames; i++)
  2.     {
  3.  
  4.         currentMesh.pVerts[i].x   =  m_pVertices[i].vertex[0] / 64.0f;
  5.         currentMesh.pVerts[i].y   =  m_pVertices[i].vertex[1] / 64.0f;
  6.         currentMesh.pVerts[i].z   =  m_pVertices[i].vertex[2] / 64.0f;
  7.  
  8.         au = m_pVertices[i].normal[0];
  9.         av = m_pVertices[i].normal[1];
  10.        
  11.  
  12.         currentMesh.pNormals[i].x = anorms[au][av][0];
  13.         currentMesh.pNormals[i].y = anorms[au][av][1];
  14.         currentMesh.pNormals[i].z = anorms[au][av][2];
  15.  
  16.     }


Das Rendern:
Code:
  1. // Fang' an die Dreiecke des Models zu zeichnen...
  2.         glBegin(GL_TRIANGLES);
  3.  
  4.             // Geh' durch alle Polygone des Models und zeichne diese.
  5.             for(int j = 0; j < pObject->numOfFaces; j++)
  6.             {
  7.                 // Geh durch jede Vertex des Dreiecks und zeichne diese.
  8.                 for(int whichVertex = 0; whichVertex < 3; whichVertex++)
  9.                 {
  10.                     int index = pObject->pFaces[j].vertIndex[whichVertex];
  11.                                
  12.                     // Überprüfe ob Texturkoordinaten vorhanden sind.
  13.                     if(pObject->pTexVerts)
  14.                     {
  15.                         // Ordne die Texturkoordinaten der Vertex zu.
  16.                         glTexCoord2f(pObject->pTexVerts[ index ].x,
  17.                         pObject->pTexVerts[ index ].y);
  18.                     }
  19.                    
  20.                     CVector3 vPoint1 = pObject->pVerts[index];
  21.                     CVector3 vNormal = pObject->pNormals[index];
  22.                
  23.  
  24.                     glNormal3f(vNormal.x, vNormal.y, vNormal.z);
  25.                     glVertex3f(vPoint1.x, vPoint1.y, vPoint1.z);
  26.             }
  27.  
  28.         // Beende das Polygonzeichnen.
  29.         glEnd();



MfG Nico


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]