lightrange
Reichweite eines dynamischen Lichts. Liegt dieser Parameter über Null, beginnt
die Entity Licht auszustrahlen, das sich, gemäß ihres material-Settings,
auf sämtliche Objekte innerhalb der Reichweite des Lichts (lightrange)
auswirkt. Lichtfarbe und -Helligkeit lassen sich über die Blau,-
Grün, -Rot-Parameter
der Entity einstellen.
Reichweite:
0 .. 2000 (default: 0 - kein Licht)
Typ:
var
Bemerkungen:
- Der A7 -Licht-Manager unterstützt
eine willkürliche Anzahl dynamischer Lichter, die gleichzeitig sichtbar sind. Die maximale Anzahl von Lichtern
läßt sich anhand der Variablen max_lights (default:
100 für A7, 8 für A6) festlegen. Der Licht-Manager benutzt ABT zum
Berechnen welche Objekte im Bereich welcher Lichter liegen und erstellt für
jedes
Objekt Listen von nahegelegenen Lichtern. Diese Kalkulation, auch wenn sie
sehr schnell geschieht, ist ein zusätzlicher Renderingprozess, welcher die
Framerate beinflussen
kann. Dies hängt von Anzahl und Reichweite der aktiven Lichter ab. Um die
Begrenzung heutiger 3D-Hardwäre auf 8 Lichter zu überwinden, werden Lichtquellen
während des Renderns dynamisch an- und ausgeschaltet wobei darauf geachtet
wird, daß niemals mehr als 8 Lichter aktiviert sind.
- Aufgrund der Hardware-Begrenzung kann eine einzelne Entity, ein Block oder
Terrain immer noch nicht mehr Licht als von 8 dynamischen Lichtquellen gleichzeiting
erhalten. Das jeweilige Objekt wird lediglich von den 8 zuletzt erstellten
Lichtern beeinflußt. Dadurch wird sichergestellt, daß das Erstellen einer
neuen Lichtquelle einen unmittelbaren Effekt auf die Umgebung hat; auch
dann, wenn bereits viele dynamische Lichter in der Nähe sind.
- Um den Licht-Manager benutzen zu können, müssen Level- und Map-Entities
im Mesh-Modus kompilliert werden (mit aktiviertem Create
Mesh). Ansonsten können nur 8 Lichter gleichzeitig aktiv sein. Terrain
sollte parzelliert sein; je kleiner die Parzellen, je weniger sind
die Austauscheffekte beim Licht sichtbar wenn mehr als 8 Lichter in
den Parzellenbereich hinein- oder hinausgeraten.
- Dynamisches Licht kann kugelförmig sein (punktuelle Lichter, default),
konisch (spotlight) oder zielgerichtet
(sunlight). Das Verhalten von Lichtreflexion
wird vom Vektor d3d_pointlightfalloff beeinflußt.
- Ohne Shader werden die Lichtreflexionen zwischen Vertices interpoliert.
Der Vertex-Abstand hängt von der Tesselation (im Map-Compiler einstellbar)
ab. Der Default-Wert liegt bei 200 Pixeln. Dies reicht für punktuelle Lichter
mit mittlerer Reichweite aus. Lichtquellen mit kürzerer Reichweite oder Spotlights
könnten allerdings einen kleineren Abstand zwischen den Vertices nötig machen.
Beispiel:
action blink
{
vec_set(my.blue,vector(255,255,255)); // blue-green color
while(1)
{
my.lightrange = 200; // lightsphere 200 quants
sleep(1); // wait one second
my.lightrange = 0; // no light
sleep(1); // wait one second
}
}
Siehe auch:
SPOTLIGHT, LIGHT, material,d3d_lightres
► Aktuelle Version Online