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.