Lichtquellen Zeichnen
← Quadratische Abschwächung | ● | Beleuchtung Standard-Codesequenz →
Lichtquellen selber sind in OpenGL nicht sichtbar!
Das ist praktisch für Lichtquellen, die nur zur Verbesserung der Beleuchtung eingesetzt werden; aber unpraktisch für “Hauptlichtquellen”, die sichtbar sein sollten.
Um Lichtquellen darzustellen, müssen diese über eine Proxy-Geometrie dargestellt werden. Diese wird mit rein emmissiven Materialeigenschaften gerendert. Dies kann ersatzweise mit einem rein ambienten Term geschehen. Die Proxy-Geometrie wird über die Modelview-Matrix an die Position der Lichtquelle verschoben.
Von der Punktlichtquelle wissen wir die Position. Da die Proxygeometrie (z.B. Kugel) normalerweise um den Ursprung (0,0,0) gezeichnet wird, wird die Lichtquellenposition als Translation dargestellt:
mat4 mv_proxy = V * mat4::translate (lightpos); lglUniformfv ("Ca", vec4(1,1,1,0)); // Simulation von Ce durch Ca = Ce lglModelView (mv_proxy * mat4::scale (0.1)); lglRender (sphere);
Live Demo: Moving Proxy Light (T#14c)
← Quadratische Abschwächung | ● | Beleuchtung Standard-Codesequenz →