glArrayElement: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
K (Beschreibung: WäHrend)
 
(16 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
 
 
= glArrayElement =
 
= glArrayElement =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glArrayElement''' - rendert ein Vertex mithilfe des angegebenen Vertexfeldelements (vertex array element).
 
'''glArrayElement''' - rendert ein Vertex mithilfe des angegebenen Vertexfeldelements (vertex array element).
<br>
+
 
 +
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glArrayElement'''(''i'': TGLint);
 
  procedure '''glArrayElement'''(''i'': TGLint);
  
<br>
+
 
 +
 
 
== Parameter ==
 
== Parameter ==
  
 
{| border="1" rules="all"
 
{| border="1" rules="all"
! ''i'' || Spezifiziert einen Index bezüglich der aktivierten Vertexdatenfelder (Vertex Data Arrays).
+
! ''i''  
 +
| Spezifiziert einen Index bezüglich der aktivierten Vertexdatenfelder (Vertex Data Arrays).
 
|}
 
|}
  
<br>
+
 
 +
 
 +
 
 
== Beschreibung ==  
 
== Beschreibung ==  
<b><i>
+
Der '''glArrayElement''' Befehl wird zwischen [[glBegin]]/[[glEnd]] Paaren aufgerufen, um Positionen und Eigenschaften von Polygonen, Linien und Polygon [[Primitive|Primitiven]] zu übergeben.  
glArrayElement commands are used within glBegin/glEnd pairs to specify vertex and attribute data for point, line, and polygon primitives. If GL_VERTEX_ARRAY is enabled when glArrayElement is called, a single vertex is drawn, using vertex and attribute data taken from location i of the enabled arrays. If GL_VERTEX_ARRAY is not enabled, no drawing occurs but the attributes corresponding to the enabled arrays are modified.
+
Ist '''GL_VERTEX_ARRAY''' aktiviert während '''glArrayElement''' aufgerufen wird, dann wird ein einzelner [[Vertex]] mit den Vertexdaten und Attributen, die an der ''i''ten Stelle des Vertex Arrays gespeichert sind, gezeichet. Ist '''GL_VERTEX_ARRAY''' nicht aktiviert, wird nichts aus dem Feld gezeichnet. Allerding werden die Attribute, die zu dem aktivierten Array gehören, modifiziert.
  
Use glArrayElement to construct primitives by indexing vertex data, rather than by streaming through arrays of data in first-to-last order. Because each call specifies only a single vertex, it is possible to explicitly specify per-primitive attributes such as a single normal per individual triangle.
+
Benutzen Sie '''glArrayElements''', um Primitive durch Indexierung von Vertexdaten anstatt durch einfaches Durchlaufen von Datenfeldern (von vorn bis hinten) zu generieren. Da jeder Aufruf nur ein einzelnes Vertex generiert, ist es möglich expliziet für jedes Primitiv Attribute zu vergeben, wie z.B. eine Normale pro Dreieck.
</i></b>
 
  
Veränderungen am Inhalt eines Feldes die innerhalb eines [[glBegin]]-[[glEnd]] Blocks gemacht werden, können Aufrufe von '''glArrayElement''' in nicht sequenzieller Weise beeinflussen, die im selben Block gemacht werden. Das bedeutet, dass ein Aufruf von '''glArrayElement''' der vor einer Änderung gerufen wird bereits die neuen Daten nutzt, wärend der nachfolgende Aufruf noch auf die originalen Daten zugreift.
+
Falls die Eckpunke so im Array angeordnet sind, wie man sie auch rendern möchte, so lohnt sicher der Einsatzt von '''glArrayElement''' nicht. Statt dessen sollte der Befehl [[glDrawArrays]] verwendet werden. '''glArrayElement''' sollte man dann nutzen, wenn man gleich alle Daten/Eigenschaften eines Eckpunktes übergeben möchte, und obriger Fall nicht vor liegt.
  
<br>
+
Veränderungen am Inhalt eines Feldes, die innerhalb eines [[glBegin]]-[[glEnd]] Blocks gemacht werden, können Aufrufe von '''glArrayElement''' in nicht sequenzieller Weise beeinflussen, die im selben Block gemacht werden. Das bedeutet, dass ein Aufruf von '''glArrayElement''' der vor einer Änderung gerufen wird bereits die neuen Daten nutzt, während der nachfolgende Aufruf noch auf die originalen Daten zugreift.
  
 
== Hinweise ==
 
== Hinweise ==
'''glArrayElement''' ist erst ab OpenGL Version 1.1 or später verfügbar.
+
'''glArrayElement''' ist erst ab OpenGL Version 1.1 oder später verfügbar.
  
 
'''glArrayElement''' wird von [[Displaylisten]] aufgenommen. Wenn '''glArrayElement''' in eine Displayliste geschrieben wird, werden auch die notwendigen Feldwerte (angegeben durch den Feldzeiger und die Aktivierungen) in die Displayliste eingetragen. Da die Feldzeiger und Aktivierungen auf der Clientseite liegen, beeinflussen ihre Werte die Displayliste wenn diese erstellt wird, nicht aber wenn diese ausgeführt wird.
 
'''glArrayElement''' wird von [[Displaylisten]] aufgenommen. Wenn '''glArrayElement''' in eine Displayliste geschrieben wird, werden auch die notwendigen Feldwerte (angegeben durch den Feldzeiger und die Aktivierungen) in die Displayliste eingetragen. Da die Feldzeiger und Aktivierungen auf der Clientseite liegen, beeinflussen ihre Werte die Displayliste wenn diese erstellt wird, nicht aber wenn diese ausgeführt wird.
  
<br>
+
 
 +
 
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glColorPointer]], [[glDrawArrays]], [[glEdgeFlagPointer]], [[glGetPointerv]], [[glIndexPointer]], [[glInterleavedArrays]], [[glNormalPointer]], [[glTexCoordPointer]], [[glVertexPointer]]
 
[[glColorPointer]], [[glDrawArrays]], [[glEdgeFlagPointer]], [[glGetPointerv]], [[glIndexPointer]], [[glInterleavedArrays]], [[glNormalPointer]], [[glTexCoordPointer]], [[glVertexPointer]]
 +
 +
[[Kategorie:GL|ArrayElement]]
 +
[[Kategorie:GL1.1|ArrayElement]]

Aktuelle Version vom 18. März 2012, 16:43 Uhr

glArrayElement

Name

glArrayElement - rendert ein Vertex mithilfe des angegebenen Vertexfeldelements (vertex array element).


Delphi-Spezifikation

procedure glArrayElement(i: TGLint);


Parameter

i Spezifiziert einen Index bezüglich der aktivierten Vertexdatenfelder (Vertex Data Arrays).



Beschreibung

Der glArrayElement Befehl wird zwischen glBegin/glEnd Paaren aufgerufen, um Positionen und Eigenschaften von Polygonen, Linien und Polygon Primitiven zu übergeben. Ist GL_VERTEX_ARRAY aktiviert während glArrayElement aufgerufen wird, dann wird ein einzelner Vertex mit den Vertexdaten und Attributen, die an der iten Stelle des Vertex Arrays gespeichert sind, gezeichet. Ist GL_VERTEX_ARRAY nicht aktiviert, wird nichts aus dem Feld gezeichnet. Allerding werden die Attribute, die zu dem aktivierten Array gehören, modifiziert.

Benutzen Sie glArrayElements, um Primitive durch Indexierung von Vertexdaten anstatt durch einfaches Durchlaufen von Datenfeldern (von vorn bis hinten) zu generieren. Da jeder Aufruf nur ein einzelnes Vertex generiert, ist es möglich expliziet für jedes Primitiv Attribute zu vergeben, wie z.B. eine Normale pro Dreieck.

Falls die Eckpunke so im Array angeordnet sind, wie man sie auch rendern möchte, so lohnt sicher der Einsatzt von glArrayElement nicht. Statt dessen sollte der Befehl glDrawArrays verwendet werden. glArrayElement sollte man dann nutzen, wenn man gleich alle Daten/Eigenschaften eines Eckpunktes übergeben möchte, und obriger Fall nicht vor liegt.

Veränderungen am Inhalt eines Feldes, die innerhalb eines glBegin-glEnd Blocks gemacht werden, können Aufrufe von glArrayElement in nicht sequenzieller Weise beeinflussen, die im selben Block gemacht werden. Das bedeutet, dass ein Aufruf von glArrayElement der vor einer Änderung gerufen wird bereits die neuen Daten nutzt, während der nachfolgende Aufruf noch auf die originalen Daten zugreift.

Hinweise

glArrayElement ist erst ab OpenGL Version 1.1 oder später verfügbar.

glArrayElement wird von Displaylisten aufgenommen. Wenn glArrayElement in eine Displayliste geschrieben wird, werden auch die notwendigen Feldwerte (angegeben durch den Feldzeiger und die Aktivierungen) in die Displayliste eingetragen. Da die Feldzeiger und Aktivierungen auf der Clientseite liegen, beeinflussen ihre Werte die Displayliste wenn diese erstellt wird, nicht aber wenn diese ausgeführt wird.


Siehe auch

glColorPointer, glDrawArrays, glEdgeFlagPointer, glGetPointerv, glIndexPointer, glInterleavedArrays, glNormalPointer, glTexCoordPointer, glVertexPointer