gl.Normal(nx, ny, nz)
gl.Normal()
auf die angegebenen
Gleitkommakoordinaten gesetzt. Der Anfangswert der aktuellen Normale ist
der Einheitenvektor (0, 0, 1). Alternativ kann gl.Normal()
auch mit
einem einzigen Tabellenelement aufgerufen werden, das die Normale
Koordinaten x, y, z enthält.
Normale, die mit gl.Normal()
angegeben werden, müssen keine Einheitenlänge
haben. Wenn #GL_NORMALIZE
aktiviert ist, werden Normale beliebiger Länge,
die mit gl.Normal()
angegeben wurden, nach der Transformation normalisiert.
Wenn #GL_RESCALE_NORMAL
aktiviert ist, werden Normale durch einen
Skalierungsfaktor skaliert, der aus der Modelansicht-Matrix abgeleitet wird.
#GL_RESCALE_NORMAL
setzt voraus, dass die ursprünglich angegebenen Normalen
von einheitlicher Länge waren und dass die Modellansichtmatrix nur einheitliche
Skalen für korrekte Ergebnisse enthält. Um die Normalisierung zu aktivieren
und zu deaktivieren, rufen Sie gl.Enable() und
gl.Disable() auf, mit entweder #GL_NORMALIZE
oder
#GL_RESCALE_NORMAL
. Die Normalisierung ist zunächst deaktiviert.
Die aktuelle Normale kann jederzeit aktualisiert werden. Insbesondere kann
gl.Normal()
zwischen einem Aufruf von gl.Begin() und
von gl.End() aufgerufen werden.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_CURRENT_NORMAL
gl.IsEnabled() mit dem Argument #GL_NORMALIZE
gl.IsEnabled() mit dem Argument #GL_RESCALE_NORMAL