gl.NormalPointer(normalArray[, type])
gl.NormalPointer()
gibt ein Feld von Normalen an, die beim Rendern verwendet
werden sollen. normalArray
kann entweder eine eindimensionale Tabelle sein,
die aus einer beliebigen Anzahl aufeinanderfolgender Normalen besteht, oder
eine zweidimensionale Tabelle, die aus einer beliebigen Anzahl von
Untertabellen besteht, die jeweils eine Normale enthält. Jede Normale muss
x-, y- und z-Koordinaten enthalten, die als Gleitkommawerte angegeben sind.
Wenn normalArray
eine eindimensionale Tabelle ist, müssen Sie das optionale
Argument type
auf #GL_TRUE
setzen. Wenn normalArray
eine zweidimensionale
Tabelle ist, kann das optionale Argument type
weglassen oder auf #GL_FALSE
gesetzt werden.
Wenn Sie Nil
in normalArray
übergeben, wird der Inhalt der Normalen-Feld-Puffer
gelöscht, aber er wird nicht aus OpenGL entfernt. Dies muss manuell
erfolgen, z.B. durch Deaktivierung des Normalen-Feldes oder durch
Definition eines neuen Feldes.
Um das normale Feld zu aktivieren und zu deaktivieren, rufen Sie den Befehl
gl.EnableClientState() und
gl.DisableClientState() mit dem Argument
#GL_NORMAL_ARRAY
auf. Wenn aktiviert, wird das Normalen-Feld verwendet, wenn
gl.DrawArrays(), gl.DrawElements(),
oder gl.ArrayElement() aufgerufen wird.
Das Normalen-Feld ist zunächst deaktiviert und wird nicht aufgerufen, wenn gl.DrawArrays(), gl.DrawElements(), oder gl.ArrayElement() aufgerufen wird.
Die Ausführung von gl.NormalPointer()
ist zwischen der Ausführung von
gl.Begin() und gl.End() nicht erlaubt.
Dabei kann ein Fehler auftreten oder auch nicht. Wenn kein Fehler erzeugt
wird, ist der Vorgang undefiniert.
gl.NormalPointer()
wird typischerweise auf der Klient-Seite implementiert.
Normalen-Feld-Parameter sind Klient-Seitige Zustände und werden daher nicht durch gl.PushAttrib() und gl.PopAttrib() gespeichert oder wiederhergestellt . Verwenden Sie stattdessen gl.PushClientAttrib() und gl.PopClientAttrib().
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
Nil
(siehe oben)#GL_TRUE
wenn die Tabelle in normalArray
eine
eindimensionale Tabelle ist, sonst #GL_FALSE
(Voreingestellt ist #GL_FALSE
)#GL_NORMAL_ARRAY
gl.Get() mit dem Argument #GL_NORMAL_ARRAY_TYPE
gl.Get() mit dem Argument #GL_NORMAL_ARRAY_STRIDE
gl.GetPointer() mit dem Argument #GL_NORMAL_ARRAY_POINTER