Die Berechnung der vertex-normalen von einem quad
Sagen wir, ich habe das folgende array :
float QuadVertices[4 * 2];
float QuadNormals[4 * 2];
Welche ich füllen Sie auf diese Weise :
//Fill vertices for a 2d quad
Renderer->FillVertices(QuadVertices,GL_QUADS,x,y,width,height);
Nun an diesem Punkt ist alles ok, ich kann machen eine quad -, textur -, stretch-und alle, die.
Aber jetzt will ich berechnen Sie die normalen der quad :
for (int i = 0; i < 8;i++)
{
QuadNormals[i] = ??
}
ABER ich kann nicht herausfinden, wie auf der Erde soll ich zur Berechnung der normalen eines einfachen 2d-vertice array enthält entweder 4vertices von GL_QUADS oder 6vertices von GL_TRIANGLES....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie diese -
Wo v1..v4 sind die Eckpunkte des quad dann zur Berechnung der normal-auf v1 sollten Sie berechnen Sie die Vektoren entlang der beiden Kanten auf, und dann berechnen Sie das Kreuzprodukt dieser Eckpunkte.
So, ist das normal bei v1 ist
Wiederholen Sie dies für jeden Eckpunkt, obwohl Sie alle gleich sein, wenn das quad ist "flat"
Wenn Sie andere quads angeschlossen werden, möchten Sie vielleicht, um die Berechnung der normalen für jeden quad, und weisen Sie dann den Durchschnitt von allen angeschlossenen quads werden die normalen vertex
glEnable(GL_NORMALIZE)
🙂