IRIS GL- und OpenGL-Unterschiede

In diesem Anhang sind die Unterschiede zwischen OpenGL und IRIS GL aufgeführt. Es wird ein Begriff für jeden Unterschied angegeben, gefolgt von einer Beschreibung.

Begriff BESCHREIBUNG
Akkumulationsumbruch Der OpenGL-Akkumulationspuffervorgang ist nicht definiert, wenn Komponentenwerte 1,0 überschreiten oder unter 1,0 fallen.
Antialiasinglinien OpenGL stippt Antialiased-Zeilen. IRIS GL nicht.
Bogen OpenGL unterstützt Arcs in seiner Hilfsprogrammbibliothek.
Attributlisten Die Attribute, die von den IRIS GL-Pushattributen gepusht werden, unterscheiden sich von den Attributsätzen, die von OpenGL glPushAttrib gepusht werden. Da alle OpenGL-Zustände zurückgelesen werden können, können Sie jedoch jede gewünschte Push-/Popsemantik mit OpenGL implementieren.
Automatische Texturskalierung Die OpenGL-Texturschnittstelle unterstützt keine automatische Skalierung von Bildern auf Zweidimensionen. Glu unterstützt jedoch die Bildskalierung.
Bbox OpenGL unterstützt keine bedingte Ausführung von Anzeigelisten.
callfunc OpenGL unterstützt keinen Rückruf aus Anzeigelisten. Beachten Sie, dass IRIS GL diese Funktionalität auch nicht unterstützt, wenn sich Client und Server auf unterschiedlichen Plattformen befinden.
circle OpenGL unterstützt Kreise mit dem GLU. In OpenGL können sowohl Kreise als auch Bogen (Datenträger und Teildatenträger) Löcher aufweisen. Darüber hinaus können Sie die Unterteilung der Primitiven in OpenGL ändern, deren Oberflächennormen für die Beleuchtung verfügbar sind.
Clear-Optionen OpenGL löscht Puffer tatsächlich. Sie gilt unabhängig von ihren Modi nicht für aktuell angegebene Pixelvorgänge wie Blending und Logicop. Um die Verwendung solcher Features zu deaktivieren, müssen Sie ein Polygon in Fenstergröße rendern.
geschlossene Zeilen OpenGL rendert alle Linien mit Aliasen mit einer Breite, sodass sich abtricksende Linien ohne Pixel teilen. Dies bedeutet, dass das letzte Pixel einer unabhängigen Linie nicht gezeichnet wird.
Color/Normal-Flag OpenGL-Beleuchtung ist explizit aktiviert oder deaktiviert. Wenn diese Option aktiviert ist, ist sie unabhängig von der Reihenfolge wirksam, in der Farben und Normalwerte angegeben werden. Sie können die Beleuchtung zwischen den Befehlen OpenGL glBegin und glEnd nicht aktivieren oder deaktivieren. Um die Beleuchtung zwischen glBegin und glEnd zu deaktivieren, geben Sie keine Umgebungs-, Diffuse- und Glanzmaterialreflektoranz an, und legen Sie dann die Materialabgabe auf die gewünschte Farbe fest.
Verkettete Polygone Die OpenGL-Kern-API verarbeitet keine konkave Polygone, aber die GLU unterstützt das Zerlegen von konkavisierten, nicht sich selbst überschneidenden Konturen in Dreiecke. Diese Dreiecke können entweder sofort gezeichnet oder zurückgegeben werden.
Aktuelle berechnete Farbe OpenGL hat keine Entsprechung zu einer aktuellen berechneten Farbe. Wenn Sie OpenGL als Beleuchtungsmodul verwenden, können Sie Feedback verwenden, um Farben abzurufen, die durch Beleuchtungsberechnungen generiert werden.
Aktuelle Grafikposition OpenGL verwaltet keine aktuelle Grafikposition. IRIS GL-Befehle, die von der aktuellen Grafikposition abhängen, z. B. relative Linien und Polygone, sind nicht in OpenGL enthalten.
Kurven OpenGL unterstützt keine IRIS GL-Kurven. Die Verwendung von NURBS-Kurven wird empfohlen.
defs/binds OpenGL hat nicht das Konzept von Material-, Licht- oder Texturobjekten. nur von Material-, Licht- und Textureigenschaften. Sie können jedoch Anzeigelisten verwenden, um eigene Objekte zu erstellen.
depthcue OpenGL bietet keine direkte Unterstützung für Tiefenhinweise, aber seine Unterstützung für Dies ist eine allgemeinere Funktion, mit der Sie die IRIS GL-Depthcue-Funktion problemlos emulieren können.
Bearbeiten von Anzeigelisten OpenGL-Anzeigelisten können nicht bearbeitet und gelöscht werden. Da Sie Anzeigelistennamen angeben können, können Sie jedoch einzelne Anzeigelisten in einer Hierarchie neu definieren. OpenGL-Anzeigelisten sind für das Zwischenspeichern von Daten und nicht für die Datenbankverwaltung konzipiert. Sie werden garantiert auf dem Server in Client-/Serverumgebungen gespeichert, sodass sie während der Ausführung nicht durch die Netzwerkbandbreite beschränkt werden. OpenGL-Anzeigelisten können zwischen den Befehlen glBegin und glEnd aufgerufen werden, sodass die Hierarchie der Anzeigelisten so gut wie möglich gestaltet werden kann, sodass sie tatsächlich bearbeitet werden kann.
Fehlerüberprüfung OpenGL prüft sorgfältiger auf Fehler als IRIS GL. Beispielsweise werden alle OpenGL-Funktionen, die zwischen glBegin und glEnd nicht akzeptiert werden, als Fehler erkannt und haben keine andere Auswirkung.
Fehlerrückgabewerte Wenn ein OpenGL-Befehl, der einen Wert zurückgibt, einen Fehler erkennt, gibt er immer 0 (null) zurück. OpenGL-Befehle, die Daten über übergebene Zeiger zurückgeben, nehmen keine Änderungen am Arrayinhalt vor, wenn ein Fehler erkannt wird.
Nebeneffekte von Fehlern Wenn ein OpenGL-Befehl zu einem Fehler führt, besteht der einzige Nebeneffekt darin, das Fehlerflag auf den entsprechenden Wert zu aktualisieren. Es werden keine anderen Zustandsänderungen vorgenommen. (Eine Ausnahme ist out. _ OF _ MEMORY-Fehler, der schwerwiegend ist.)
feedback Feedback ist in OpenGL standardisiert, sodass es sich nicht von Computer zu Computer ändert.
Schriftarten und Zeichenfolgen OpenGL erfordert, dass Zeichenglyphen als einzelne Anzeigelisten bearbeitet werden. Sie stellt eine Aufruffunktion für die Anzeigeliste bereit, die eine Liste von Anzeigelistennamen akzeptiert, die jeweils als 1, 2 oder 4 Bytes dargestellt werden. Die glCallLists-Funktion fügt jedem Anzeigelistennamen vor dem Aufruf einen separat angegebenen Offset hinzu, sodass Listen mit Anzeigelistennamen als Zeichenfolgen behandelt werden können. Dieser Mechanismus bietet alle Funktionen von IRIS GL-Schriftarten und vieles mehr. Beispielsweise können Zeichen, die aus Dreiecken bestehen, leicht bearbeitet werden.
frontbuffer IRIS GL verfügt über komplexe Regeln für das Rendern in den Frontpuffer im Einzelpuffermodus. OpenGL behandelt das Rendern im Frontpuffer auf einfache Weise.
Polygone Sie können die OpenGL-Schablonenkapazität verwenden, um leere Polygone zu rendern. OpenGL unterstützt keine anderen Mittel zum Erstellen von polygonigen Polygonen.
Indexzwingung Nach Möglichkeit behandelt OpenGL Farb- und Schablonenindizes als Bitfelder und nicht als Zahlen. Daher werden Indizes nicht mit Klammern, sondern mit dem unterstützten Bereich des Framepuffers maskiert.
ganzzahlige Farben Ganzzahlige Farbkomponenten mit Vorzeichen (Rot, Grün, Blau oder Alpha) werden Gleitkommazahlen linear zugeordnet, sodass die negativste ganze Zahl 1,0 und die positivste ganze Zahl 1,0 zugeordnet wird. Diese Zuordnung tritt auf, wenn Sie die Farbe angeben, bevor OpenGL die aktuelle Farbe ersetzt. Ganzzahlige Farbkomponenten ohne Vorzeichen werden Gleitkommazahlen linear zugeordnet, sodass 0 0 0,0 und die größte ganze Zahl 1,0 zugeordnet wird. Diese Zuordnung tritt auf, wenn Sie die Farbe angeben, bevor OpenGL die aktuelle Farbe ersetzt.
ganzzahlige Normalwerte Ganzzahlige normale Komponenten werden genau wie Komponenten mit Vorzeichen zugeordnet. Die negativste ganze Zahl wird 1,0 und die positivste ganze Zahl 1,0 zugeordnet. Pixelfragmente. Von glDrawPixels oder glCopyPixels gezeichnete Pixel werden immer gerastert und in Fragmente konvertiert. Die resultierenden Fragmente sind texturiert, verzeilt, tiefengepuffert, kombiniert usw. so, als ob sie aus geometrischen Punkten generiert würden. Fragmentdaten, die nicht von den Quellpixeln bereitgestellt werden, werden von der aktuellen Rasterposition aus erweitert. RGBA-Pixel nehmen z. B. die Rasterposition Z und Texturkoordinaten an. Tiefenpixel nehmen die Rasterpositionsfarbe und Texturkoordinaten an.
Invarianz OpenGL garantiert eine bestimmte Konsistenz, die IRIS GL nicht bietet. OpenGL garantiert beispielsweise, dass identische Codesequenzen, die an dasselbe System gesendet werden und sich nur in der angegebenen Blendingfunktion unterscheiden, die gleichen Pixelfragmente generieren. (Die Fragmente unterscheiden sich jedoch, wenn das Mischen aktiviert und dann deaktiviert ist.)
Beleuchtungsgleichung Die OpenGL-Beleuchtungsgleichung unterscheidet sich geringfügig von der IRIS GL-Gleichung. OpenGL unterstützt separate Dämpfung für jede Lichtquelle anstelle einer einzelnen Dämpfung für alle Datenquellen wie IRIS GL. OpenGL passt die Gleichung so an, dass Umgebungs-, Diffuse- und Glanzlichteinflüsse abgeschwächt werden. Außerdem können Sie mit OpenGL separate Farben für die Umgebungs-, Diffuse- und Glanzstärken von Datenquellen sowie für die Umgebungs-, Diffuse- und Glanzreflektion von Materialien angeben. Alle OpenGL-Farben für Licht und Material enthalten Alpha. Wenn der Glanz exponent auf 0 (null) festgelegt wird, wird die Glanzlichter in OpenGL nicht beeinträchtigt.
mapw OpenGL-Hilfsprogramme unterstützen die Zuordnung zwischen Objekt- und Fensterkoordinaten.
Matrixmodus Wenn die IRIS GL-Funktionen "ortho", "ortho2", "perspective" und "window" für eine bestimmte Matrix ausgeführt werden, funktionieren alle OpenGL-Matrixoperationen für die aktuelle Matrix. Alle OpenGL-Matrixvorgänge mit Ausnahme von glLoadIdentity und glLoadMatrix multiplizieren die aktuelle Matrix, anstatt sie zu ersetzen (wie ortho, ortho2, perspective und window in IRIS GL).
mipmaps, automatische Generierung Die OpenGL-Texturschnittstelle unterstützt keine automatische Generierung von Mipmapbildern. Glu unterstützt jedoch die automatische Generierung von Mipmapbildern für 1D- und 2D-Texturen.
move/draw/pmove/pdraw/pclos OpenGL unterstützt nur Grafiken im Begin/End-Stil, da keine aktuelle Grafikposition beibehalten wird. Die skalare Parameterspezifikation der alten Move/Draw-Befehle wird jedoch von OpenGL für alle scheitelpunktbezogenen Befehle akzeptiert.
mprojection-Modus IRIS GL transformiert die Geometrie nicht durch die Modellansichtsmatrix im Projektionsmatrixmodus. OpenGL transformiert immer sowohl die Modellansicht als auch die Projektionsmatrix, unabhängig vom Matrixmodus.
Zeichnen mit mehreren Puffern OpenGL rendert in jedem Farbpuffer einzeln, anstatt einen einzelnen, neuen Farbwert basierend auf dem Inhalt eines Farbpuffers zu berechnen und ihn wie IRIS GL in alle aktivierten Farbpuffer zu schreiben.
NURBS OpenGL unterstützt NURBS mit einer Kombination aus Kernfunktionen (Evaluatoren) und GLU-Unterstützung. Alle IRIS GL NURBS-Funktionen werden unterstützt.
Alter Polygonmodus OpenGL-Polygone mit Alias werden immer als Punktstichproben verwendet. Der Polygonkompatibilitätsmodus von IRIS GL, in dem Pixel außerhalb des Polygonumkreisbereichs in der Rasterung enthalten sind, wird nicht unterstützt. Wenn Ihr Code diesen Polygonmodus verwendet, gilt er wahrscheinlich für Rechtecke. Alte Polygonmodusrechtecke werden ein Pixel breiter und höher angezeigt.
gepackte Farbformate OpenGL akzeptiert Farben als 8-Bit-Komponenten, aber diese Komponenten werden als Bytearray und nicht als In größere Wörter gepackte Bytes behandelt. Indem die Arrayindizierung anstatt der Verschiebung unterstützt wird, fördert OpenGL die endianinvariante Programmierung. Ebenso wie IRIS GL gepackte Farben sowohl für geometrisches als auch für Pixelrendering akzeptiert, akzeptiert OpenGL Arrays von Farbkomponenten für geometrisches und Pixelrendering.
Patches OpenGL unterstützt keine IRIS GL-Patches.
Schreibmaske für die Pro-Bit-Farbe OpenGL-Schreibmasken für Farbkomponenten aktivieren oder deaktivieren Änderungen an der gesamten Komponente (Rot, Grün, Blau oder Alpha), nicht an einzelnen Komponentenbits. Beachten Sie, dass Schreibmasken pro Bit jedoch sowohl für Farbindizes als auch für Schablonenindizes unterstützt werden.
Schreibmaske mit Bittiefe OpenGL-Schreibmasken für Tiefenkomponenten aktivieren oder deaktivieren Änderungen an der gesamten Komponente, nicht an einzelnen Bits der Tiefenkomponente.
Wählen Die OpenGL-Hilfsprogrammbibliothek unterstützt das Generieren einer Auswahlmatrix.
Pixelkoordinaten Sowohl in OpenGL als auch in IRIS GL befindet sich der Ursprung des Koordinatensystems eines Fensters in der unteren linken Ecke. OpenGL platziert den Ursprung in der unteren linken Ecke dieses Pixels, während IRIS GL ihn in der Mitte des unteren linken Pixels platziert.
Pixelzoom Negative Zoomfaktoren von OpenGL spiegeln die aktuelle Grafikposition wider. IRIS GL definiert nicht den Betrieb negativer Zoomfaktoren und stellt stattdessen _ _ DIE _ Reflektions-Pixmode RIGHT TO LEFT und TOP TO _ BOTTOM bereit. Diese Reflektionsmodi spiegeln statt über die aktuelle Rasterposition statt. OpenGL definiert keine Reflektionsmodi.
pixmode OpenGL-Pixelübertragungen funktionieren für einzelne Farbkomponenten und nicht für gepackte Gruppen von vier 8-Bit-Komponenten, wie iris gl. OpenGL bietet zwar wesentlich mehr Pixelfunktionen als IRIS GL, unterstützt jedoch keine gepackten Farbkonstrukte und ermöglicht es nicht, Farbkomponenten während Pixelkopiervorgängen neu zuzuweisen (Rot zu Grün, Rot zu Blau usw.).
polf/poly OpenGL bietet keine direkte Unterstützung für Scheitelpunktlisten außer Anzeigelisten. Funktionen wie polf und poly können jedoch problemlos mithilfe der OpenGL-API implementiert werden.
Polygonvertex mit Polygonvertex Flach schattierte IRIS GL-Polygone übernehmen die Farbe des letzten angegebenen Scheitelpunkts, während OpenGL-Polygone die Farbe des ersten angegebenen Scheitelpunkts übernehmen.
Polygonstipple Mit IRIS GL ist das Polygonstipplemuster relativ zum Bildschirm. Mit OpenGL ist dies relativ zu einem Fenster.
Polygonvertexanzahl Es gibt keine Beschränkung für die Anzahl der Scheitelpunkte zwischen glBegin und glEnd mit OpenGL, auch nicht für glBegin(POLYGON ). Mit IRIS GL sind Polygone auf maximal 255 Scheitelpunkte beschränkt.
readdisplay Das Lesen von Pixeln außerhalb von Fenstergrenzen ist ordnungsgemäß eine Fenstersystemfunktion und keine Renderingfunktion. Verwenden Sie Windows Funktionen, um den IRIS GL-Befehl readdisplay zu ersetzen.
relative move/draw/pmove/pdraw/pclos OpenGL verwaltet keine aktuelle Grafikposition und unterstützt daher keine relativen Scheitelpunktvorgänge.
RGBA logicop() OpenGL unterstützt keine logischen Vorgänge für RGBA-Puffer.
sbox() sbox ist ein IRIS GL-Rechteckprimitive, das nur klar definiert ist, wenn es ohne Drehung transformiert wird. Sie ist so konzipiert, dass sie schneller gerendert werden kann als Standardrechtecke. OpenGL unterstützt ein solches Primitiv zwar nicht, kann aber so optimiert werden, dass Rechtecke sehr schnell gerendert werden, wenn sich die Matrizen und andere Modi in Zuständen befinden, die Berechnungen vereinfachen.
Skalarargumente Alle OpenGL-Befehle, die zwischen glBegin und glEnd akzeptiert werden, verfügen über Einstiegspunkte, die skalare Argumente akzeptieren. Beispiel: glColor4f (rot, grün, blau, alpha ).
Schere Die OpenGL glScissor-Funktion verfolgt den Viewport nicht nach. Der IRIS GL Viewport-Befehl aktualisiert die Scrmask automatisch.
scrbox() OpenGL unterstützt keine Berechnung von Begrenzungsboxen.
scrsubdivide() OpenGL unterstützt keine Bildschirmunterteilung.
Einzelmatrixmodus OpenGL verwaltet immer zwei Matrizen: ModelView und Projection. Eine OpenGL-Implementierung kann diese aus Leistungsgründen in einer einzigen Matrix konsolidieren, muss dem Programmierer jedoch immer das Zwei-Matrix-Modell präsentieren.
Subpixelmodus Das gesamte OpenGL-Rendering ist im Subpixel-Modus positionedsubpixel immer aktiviert.
swaptmesh() OpenGL unterstützt die Swaptmesh-Funktion nicht. Es bietet jedoch zwei Arten von Dreiecksgittern: eine, die dem Standardverhalten "Striping" der IRIS GL entspricht, und eine andere, die dem Aufruf von swaptmesh vor dem dritten und allen nachfolgenden Scheitelpunkten entspricht, wenn IRIS GL verwendet wird.
Vektorargumente Alle OpenGL-Befehle, die zwischen glBegin und glEnd akzeptiert werden, verfügen über Einstiegspunkte, die Vektorargumente akzeptieren. Beispiel: glColor4fv.
Fensterverwaltung OpenGL enthält keine Fenstersystembefehle. Sie wird immer als Erweiterung für ein Fenster oder Betriebssystem unterstützt, das Funktionen für die Geräte- und Fenstersteuerung enthält. Jede Erweiterung bietet einen systemspezifischen Mechanismus zum Erstellen, Zerstören und Bearbeiten von OpenGL-Renderingkontexten. Beispielsweise enthält die OpenGL-Erweiterung für das X-Fenstersystem (GLX) ungefähr 10 Befehle für diesen Zweck. IRIS GL-Befehle wie gconfig und drawmode werden von OpenGL nicht implementiert.
Fensteroffset IRIS GL gibt Viewport- und Zeichenpositionen in Bildschirmkoordinaten anstelle von Fensterkoordinaten zurück. OpenGL verwendet immer Fensterkoordinaten.
Z-Rendering OpenGL unterstützt das Rendern von Farben im Tiefenpuffer nicht. Sie ermöglicht zusätzliche Farbpuffer, die mit demselben Arbeitsspeicher implementiert werden können, der auch für Tiefenpuffer in anderen Fensterkonfigurationen verwendet wird. Diese zusätzlichen Farbpuffer können jedoch keinen Speicher mit dem Tiefenpuffer in einer einzelnen Konfiguration gemeinsam nutzen.