Portieren von bgn/end-Befehlen
IRIS GL verwendet das Begin/End-Paradigma, verfügt jedoch für jede Grafikprimitive über eine andere Funktion. Beispielsweise verwenden Sie wahrscheinlich bgnpolygon und endpolygon, um Polygone zu zeichnen, und bgnline und endline, um Linien zu zeichnen. In OpenGL verwenden Sie für beide die glBegin / glEnd-Struktur. In OpenGL zeichnen Sie die meisten geometrischen Objekte, indem Sie eine Reihe von Funktionen umschließen, die Scheitelpunkt, Normal, Texturen und Farben zwischen Paaren von glBegin- und glEnd-Aufrufen angeben. Beispiel:
void glBegin( GLenum mode) ;
/* vertex list, colors, normals, textures, materials */
void glEnd( void );
Die glBegin-Funktion verwendet einen einzelnen Parameter, der den Zeichnungsmodus und somit den Primitiven angibt. Hier sehen Sie ein OpenGL-Codebeispiel, das ein Polygon und dann eine Linie zeichnet:
glBegin( GL_POLYGON ) ;
glVertex2f(20.0, 10.0);
glVertex2f(10.0, 30.0);
glVertex2f(20.0, 50.0);
glVertex2f(40.0, 50.0);
glVertex2f(50.0, 30.0);
glVertex2f(40.0, 10.0);
glEnd();
glBegin( GL_LINES ) ;
glVertex2i(100,100);
glVertex2i(500,500);
glEnd();
Mit OpenGL zeichnen Sie verschiedene geometrische Objekte, indem Sie verschiedene Parameter für glBegin angeben. In der folgenden Tabelle sind die OpenGL glBegin-Parameter aufgeführt, die entsprechenden IRIS GL-Funktionen entsprechen.
| IRIS GL-Funktion | Wert des glBegin-Modus | Bedeutung |
|---|---|---|
| bgnpoint | GL _ POINTS | Einzelne Punkte. |
| bgnline | GL _ LINE _ STRIP | Eine Reihe verbundener Liniensegmente. |
| bgnclosedline | GL _ _ LINE-SCHLEIFE | Eine Reihe verbundener Liniensegmente mit einem Segment, das zwischen dem ersten und dem letzten Scheitelstrich hinzugefügt wird. |
| GL _ LINES | Vertices-Paare, die als einzelne Liniensegmente interpretiert werden. | |
| bgnpolygon | GL _ POLYGON | Begrenzung eines einfachen konvexen Polygons. |
| _GL-DREIECKE | Triples von Scheitelstellen, die als Dreiecke interpretiert werden. | |
| bgntmesh | GL _ TRIANGLE _ STRIP | Verknüpfte Dreiecksstreifen. |
| GL _ TRIANGLE _ FAN | Verknüpfte Lüfter von Dreiecken. | |
| GL _ QUADS | Vierfache von Scheitelungen, die als Quadrieren interpretiert werden. | |
| bgnqstrip | GL _ QUAD _ STRIP | Verknüpfte Strips von Quadrierten. |
Eine ausführliche Erläuterung der Unterschiede zwischen Dreiecksgittern, -strips und -Lüftern finden Sie unter Portieren von Dreiecken.
Es gibt keine Beschränkung für die Anzahl von Scheitelzeichen, die Sie zwischen einem glBegin / glEnd-Paar angeben können.
Zusätzlich zur Angabe von Scheiteltices innerhalb eines glBegin / glEnd-Paars können Sie eine aktuelle normale, aktuelle Texturkoordinate und eine aktuelle Farbe angeben. In der folgenden Tabelle sind die befehle aufgeführt, die in einem glBegin / glEnd-Paar gültig sind.
| IRIS GL-Funktion | OpenGL-Funktion | Bedeutung |
|---|---|---|
| v2, v3, v4 | glVertex | Legt Scheitelpunktkoordinaten fest. |
| RGBcolor, cpack | glColor | Legt die aktuelle Farbe fest. |
| color | glIndex | Legt den aktuellen Farbindex fest. |
| n3f | glNormal | Legt normale Vektorkoordinaten fest. |
| glEvalCoord | Wertet aktivierte ein- und zweidimensionale Zuordnungen aus. | |
| callobj | glCallList, glCallLists | Führt Anzeigelisten aus. |
| t2 | glTexCoord | Legt Texturkoordinaten fest. |
| glEdgeFlag | Steuert das Zeichnen von Kanten. | |
| lmbind | glMaterial | Legt Materialeigenschaften fest. |
Hinweis
Wenn Sie eine andere OpenGL-Funktion als die in der obigen Tabelle in einem glBegin / glEnd-Paar aufgeführten Verwenden, erhalten Sie unvorhersehbare Ergebnisse oder möglicherweise einen Fehler.