gluTessNormal: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Wird offline bearbeitet)
 
K (Bot: konvertiere/korrigiere <BR>)
 
(8 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Offline}}
+
= gluTessNormal =
 +
 
 +
 
 +
 
 +
== Name ==
 +
'''gluTessNormal''' - definiert die Normale für ein Polygon.
 +
 
 +
 
 +
 
 +
== Delphi-Spezifikation ==
 +
procedure '''gluTessNormal'''(''tess'': PGLUtesselator; ''x, y, z'': TGLdouble);
 +
 
 +
 
 +
 
 +
== Parameter ==
 +
<table border=1 rules=all>
 +
<tr>
 +
<td>''tess''</td>
 +
<td>Bestimmt das Tesselierungsobjekt (erstellt mit [[gluNewTess]]).</td>
 +
</tr>
 +
<tr>
 +
<td>''x, y, z''</td>
 +
<td>Bestimmt die x, y, z Komponente einer Normale.</td>
 +
</tr>
 +
</table>
 +
 
 +
 
 +
 
 +
 
 +
== Beschreibung ==
 +
Mit '''gluTessNormal''' beschreiben Sie die [[Normalen|Normale]] für ein Polygon das Sie definieren.
 +
Alle angegebenen Daten werden vor der Tessellation auf eine Fläche projiziert, die senkrecht auf einer der drei Koordinatenachsen steht. Alle Dreiecke, die ausgegeben werden, werden gegen den Uhrzeigersinn um die Normale herum ausgerichtet. (Eine Ausrichtung im Uhrzeigersinn kann erreicht werden, indem das Vorzeichen der gelieferten Normale geändert wird.)
 +
Wenn, zum Beispiel, bekannt ist, dass alle Polygone in der X-Y-Ebene liegen, ruft man '''gluTessNormal(tess, 0.0, 0.0, 1.0)''' vor dem Rendern der Polygone auf.
 +
 
 +
Wenn die übergebene Normale (0,0,0) ist (der Vorgabewert), wird die Normale folgendermaßen bestimmt:<br>
 +
Die Richtung der [[Normalen]], im Bezug auf ihr Vorzeichen, wird gefunden in dem man eine Ebene aus den Vertexen bildet. Dabei wird beachted wie die [[Vertex|Vertices]] miteinander verbunden sind (Reihenfolge). Es wird dabei davon ausgegangen, dass die Vertices annähernd in einer Ebene liegen. Wenn dem nicht so ist, könnte eine Projektion senkrecht auf eine der drei Koordinatenachsen die Geomatrie sehr stark verändern. Das Vorzeichen der Normale wird so gewählt, dass die Summe aller eingegebenen Umrisse mit Vorzeichen nicht negativ ist (wobei ein Umriss gegen den Uhrzeigersinn einen positiven Bereich hat.) Die übergebene Normale bleibt solange gültig, bis '''gluTessNormal''' erneut aufgerufen wurde.
 +
 
 +
 
 +
 
 +
 
 +
== Siehe auch ==
 +
[[gluTessBeginPolygon]], [[gluTessEndPolygon]]
 +
 
 +
Hintergrundwissen: [[Tesselierung]]
 +
 
 +
[[Kategorie:GLU|TessNormal]]

Aktuelle Version vom 22. April 2006, 19:26 Uhr

gluTessNormal

Name

gluTessNormal - definiert die Normale für ein Polygon.


Delphi-Spezifikation

procedure gluTessNormal(tess: PGLUtesselator; x, y, z: TGLdouble);


Parameter

tess Bestimmt das Tesselierungsobjekt (erstellt mit gluNewTess).
x, y, z Bestimmt die x, y, z Komponente einer Normale.



Beschreibung

Mit gluTessNormal beschreiben Sie die Normale für ein Polygon das Sie definieren. Alle angegebenen Daten werden vor der Tessellation auf eine Fläche projiziert, die senkrecht auf einer der drei Koordinatenachsen steht. Alle Dreiecke, die ausgegeben werden, werden gegen den Uhrzeigersinn um die Normale herum ausgerichtet. (Eine Ausrichtung im Uhrzeigersinn kann erreicht werden, indem das Vorzeichen der gelieferten Normale geändert wird.) Wenn, zum Beispiel, bekannt ist, dass alle Polygone in der X-Y-Ebene liegen, ruft man gluTessNormal(tess, 0.0, 0.0, 1.0) vor dem Rendern der Polygone auf.

Wenn die übergebene Normale (0,0,0) ist (der Vorgabewert), wird die Normale folgendermaßen bestimmt:
Die Richtung der Normalen, im Bezug auf ihr Vorzeichen, wird gefunden in dem man eine Ebene aus den Vertexen bildet. Dabei wird beachted wie die Vertices miteinander verbunden sind (Reihenfolge). Es wird dabei davon ausgegangen, dass die Vertices annähernd in einer Ebene liegen. Wenn dem nicht so ist, könnte eine Projektion senkrecht auf eine der drei Koordinatenachsen die Geomatrie sehr stark verändern. Das Vorzeichen der Normale wird so gewählt, dass die Summe aller eingegebenen Umrisse mit Vorzeichen nicht negativ ist (wobei ein Umriss gegen den Uhrzeigersinn einen positiven Bereich hat.) Die übergebene Normale bleibt solange gültig, bis gluTessNormal erneut aufgerufen wurde.



Siehe auch

gluTessBeginPolygon, gluTessEndPolygon

Hintergrundwissen: Tesselierung