Portieren von Beleuchtungs- und Materialfunktionen
OpenGL-Funktionen für Beleuchtung und Materialien unterscheiden sich erheblich von den IRIS GL-Funktionen. Im Gegensatz zu IRIS GL verfügt OpenGL über separate Funktionen zum Festlegen von Licht, Lichtmodellen und Materialien.
Beachten Sie beim Portieren von Beleuchtungs- und Materialfunktionen folgende Punkte:
- OpenGL verfügt über keine Tabelle mit gespeicherten Definitionen. Sie können Anzeigelisten verwenden, um den IRIS GL-Def/Bind-Mechanismus zu imitieren. Weitere Informationen zu Defs und Binds finden Sie unter Portieren von Defs, Binds und Sets.
- Bei OpenGL ist die Dämpfung jeder Lichtquelle und nicht dem gesamten Beleuchtungsmodell zugeordnet.
- Diffuse und specular-Komponenten werden in OpenGL-Lichtquellen getrennt.
- OpenGL-Lichtquellen verfügen über eine Alphakomponente. Legen Sie beim Portieren Ihres IRIS GL-Codes diese Alphakomponente auf 1,0 fest, was 100 % undurchsichtig angibt. Die Alphawerte werden dann nur durch die Alphakomponente Ihrer Materialien bestimmt, sodass die Objekte in Ihrer Szene genauso aussehen wie in IRIS GL.
In der folgenden Tabelle sind die Beleuchtungs- und Materialfunktionen von IRIS GL sowie die entsprechenden OpenGL-Funktionen aufgeführt.
| IRIS GL-Funktion | OpenGL-Funktion | Bedeutung |
|---|---|---|
| Imdef(DEFLIGHT, ... ) | glLight | Definieren Sie eine Lichtquelle. |
| Imdef(DEFLMODEL, ... ) | glLightModel | Definieren Sie ein Beleuchtungsmodell. |
| Imbinden | glEnable ( GL _ LIGHT i) | Aktivieren Sie light i. |
| Imbinden | glEnable( GL _ LIGHTING ) | Aktivieren Sie die Beleuchtung. |
| Imdef(DEFMATERIAL, ... ) | glMaterial | Definieren Sie ein Material. |
| Imcolor | glColorMaterial | Ändern Sie den Effekt von Farbbefehlen, während die Beleuchtung aktiv ist. |
| glGetMaterial | Materialparameter erhalten. |
In der folgenden Tabelle sind verschiedene IRIS GL-Materialparameter und die entsprechenden OpenGL-Parameter aufgeführt.
| Imdef-Index | glMaterial-Parameter | Standard | Bedeutung |
|---|---|---|---|
| ALPHA | GL _ DIFFUSE | Der vierte Wert im GL _ DIFFUSE-Parameter gibt den Alphawert an. | |
| AMBIENT | GL _ AMBIENT | (0.2, 0.2, 0.2, 1.0) | Umgebungsfarbe. |
| DIFFUSE | GL _ DIFFUSE | (0.8, 0.8, 0.8, 1.0) | Diffuse Farbe. |
| SPECULAR | GL _ SPECULAR | (0.0, 0.0, 0.0, 1.0) | Farbliche Farbgebung. |
| SCHLÄFRIGKEIT | _GL-GL-GL-AMBIENT _ _ UND _ DIFFUSE |
0,0 | Specular exponent. Entspricht dem zweimalen Aufrufen von glMaterial mit denselben Werten. |
| COLORINDEXES | _ _ GL-FARBINDIZES | Farbindizes für Umgebungs-, diffuse und speculare Beleuchtung. |
Wenn der erste Parameter von Imdef DEFMODEL ist, ist die entsprechende OpenGL-Übersetzung die Funktion glLightModel. Die Ausnahme ist, wenn der Parameter nach DEFMODEL ATTENUATION ist: Dann ist die entsprechende OpenGL-Funktion glLight.
In der folgenden Tabelle sind die entsprechenden Beleuchtungsmodellparameter für IRIS GL und OpenGL aufgeführt.
| Imdef-Index | glLightModel-Parameter | Standard | Bedeutung |
|---|---|---|---|
| AMBIENT | GL _ LIGHT _ MODEL _ AMBIENT | (0.2, 0.2, 0.2, 1.0) | Umgebungsfarbe der Szene. |
| DÄMPFUNG | Siehe glLight. | ||
| LOCALVIEWER | GL _ LIGHT _ MODEL _ LOCAL _ VIEWER | GL _ FALSE | Viewer local (TRUE) oder infinite (FALSE). |
| TWOSIDE | GL _ LIGHTMODEL _ TWO _ SIDE | GL _ FALSE | Verwenden Sie bei TRUE die zweiseitige Beleuchtung. |
Wenn der erste Parameter von Imdef DEFLIGHT ist, ist die entsprechende OpenGL-Übersetzung die glLight-Funktion.
In der folgenden Tabelle sind die entsprechenden Beleuchtungsparameter für IRIS GL und OpenGL aufgeführt.
| Imdef-Index | glLight-Parameter | Standard | Bedeutung |
|---|---|---|---|
| AMBIENT | GL _ AMBIENTGL _ DIFFUSE GL _ SPECULAR |
(0.0, 0.0, 0.0, 1.0) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0) |
Umgebungsstärke. Diffuse Intensität. Specular intensity (Specular-Intensität). |
| LCOLOR | Keine Entsprechung | ||
| POSITION | GL _ POSITION | (0.0, 0.0, 1.0, 0.0) | Position des Lichts. |
| SPOTDIRECTION | GL _ SPOT _ DIRECTION | (0, 0, 1) | Richtung des Blickpunkts. |
| SPOTLIGHT | GL _ SPOT _ EXPONENTGL _ SPOT _ CUTOFF |
0180 |
Intensitätsverteilung. Maximaler Strichwinkel der Lichtquelle. |
| DEFMODEL, ATTENUATION | GL _ CONSTANT _ ATTENUATIONGL _ LINEAR _ ATTENUATION GL _ QUADRATISCHE _ DÄMPFUNG |
(1, 0, 0) | Dämpfungsfaktoren. |