flags
Ein Satz von 'Schaltern', die, getrennt durch " | " in einer VIEW-Definition
gesetzt werden können. Individuelle Flags lassen sich zudem zur Laufzeit
setzen bzw. zurücksetzen. Alle Flags werden per Default zurückgesetzt.
Es werden die folgenden Flags unterstützt:
Paremeter:
SHOW
Ist dieses Flag gesetzt, rendert der View akktiv auf dem Bildschirm oder
der Ziel-bmap. Indem dieses Flag zurückgesetzt
wird, ist der View inaktiv, es sei denn, es handelt sich um eine Postprozessing-Stufe
(stage). Der View der camera ist
per default SHOW.
AUDIBLE
Ist dieses Flag gesetzt, richten sich Richtung und Distanz von
Geräuschquellen und Entity-Sounds im Level nach diesem View. Der
View muss dazu sichtbar sein (visible). Der camera -View
hat dieses Flag standardmässig gesetzt. Um ein Soundmischmasch
zu verhindern, sollte dieses Flag bei nur einem View gesetzt sein.
ISOMETRIC
Der View verwendet anstelle einer perspektivischen, eine orthogonale Projektion. Das View-Frustum ist kein Kegel sondern eine rechtwinkliger Bereich, dessen Größe entweder vom arc-Parameter oder den Grenzparametern left, right, bottom, up gegeben ist. Dies läßt sich für isometrische Spiele aus der Vogelperspektive oder zum Clippen eines rechtwinkligen View-Volumens (z. B. für PSSM-Shader) verwenden. In diesem Modus beeinflußt der Abstand der Kamera zu einem Objekt dessen Größe auf dem Bildschirm nicht. A7.60C LC UNTOUCHABLE
Entities dieses Views reagieren nicht auf die Maus. Die erhöht
das Rendering des Views. A7.10C LC
PROCESS_SCREEN
Verhindert, daß a) der Bildschirm vor dem Rendern gesäubert
wird und b) die vorangegangene View-Phase automatisch ins Render-Ziel
(render_target) hineingerendert
wird. Läßt sich zum Rendern einer zusätzlichen Szene über den vorangegangenen
View verwenden (siehe stage). A7.10 LC
PROCESS_TARGET
Rendert keine Szene, sondern lediglich ein Rechteck in Bildschirmgröße,
dessen Inhalt aus render_target oder render_stencil besteht
(siehe stage). Läßt sich zum Nachbearbeiten
eines Views oder Verwischen des Inhalts eines Stencil-Buffers verwenden.
A7.10C LC
CHILD
Übernimmt sämtliche VIEW-Parameter aus dem vorangegangenen Stage mit Ausnahme der flags, material, bmap, und stage-Parameter. Bildschirmposition und die Größenparameter werden nur übernommen, wenn beide Views in Zielbitmaps rendern. Der Prozess des Culling und Sortieren wird übersprungen, so dass der gleiche Inhalt wie im vorangehenden View gerendert wird. Filter-Flags wie NOFLAG1, NOWORLD, usw. haben keine Wirkung. A7.10C LC
TRANSLUCENT
Ist dieses Flag gesetzt, wird der View durchscheinend vor dem
Hintergrund dargestellt. Die Sichtdurchlässigkeit kann in Prozent
über den
alpha-Parameter des Views angegeben werden. Auf
diese Weise lassen sich einige Spezialeffekte erreichen, allerdings
werden durchscheinende Views in reduzierter Qualität gerendert
- statische Schatten sind nicht sichtbar und die Reihenfolge in
der Sortierung von Polygonen kann falsch sein. A6P A7C
PORTALCLIP
Ist dieses Flag gesetzt, werden Leveloberflächen an der clip
plane des Views abgeschnitten. Wird normalerweise
für Spiegel verwendet. Wird clip plane
benutzt, sollten NOSHADER und NOPARTICLE gesetzt
sein. A6P A7C
CULL_CW
Ist dieses Flag gesetzt, werden Polygone im Uhrzeigersinn geculled,
statt gegen den Uhrzeigersinn (dasselbe geschieht, wenn arc oder aspect negativ
sind). Nützlich, wenn der View für Spiegel- oder Reflektionseffekte
auf eine Bitmap (bmap) gerendert werden soll.
NOCULL
Schaltet das BSP-Tree-Culling für den View aus.
Ist dieses Flag gesetzt, werden Objekte auch dann gerendert,
wenn sie hinter Wänden versteckt sind. Der BSP-Tree wird weiterhin
für das Rendern verwendet,
aber die vorberechnete Sichtbarkeitsinformation (PVS) wird nicht
eingesetzt. P
NOSHADOW
Ist dieses Flag gesetzt, werden keine Schatten generiert und die Shadow-Map render_stencil wird nicht über die Szene gerendert. Sinnvoll für spezielle Views, die für Spiegel, Radarschirme usw. benutzt werden oder für Views, die
Teile der Szene stufenweise abarbeiten.
SHADOW
Das Gegenteil von NOSHADOW: ist dieses Flag gesetzt, werden nur Levelgeometrie und Schatten werfende Entities gerendert. Sind beide Flags gesetzt (SHADOW | NOSHADOW), werden Levelgeometrie und Schatten werfende Entities gerendert, ihre Schatten jedoch werden untedrückt. Hilfreich zum Rendern von Tiefenmaps mit dem Zweck von Shadow-Mapping.7.10C LC
NOSKY
Der Sky- oder Levelhintergrund wird nicht gerendert und Screen- und z-Buffer werden zu Anfang nicht geleert (es sei denn, der Parameter bg ist auf eine Hintergrundpixelfarbe gesetzt). Setzen Sie dieses Flag wenn Sie wollen, dass verschiedene Views in denselben Screen-Buffer rendern, beispielsweise, um den Eindruck eines sich endlos wiederholenden Levels zu erzeugen. Ein Beispiel dieses Effektes findet sich in der Funktion level_loadendless() unter include\level.c.7.78
SKY
Das Gegenteil von NOSKY: Nur der Sky wird gerendert. 7.78
NOPARTICLE
Ist dieses Flag gesetzt, werden im View keine Partikel dargestellt.
NOSHADER
Ist dieses Flag gesetzt, werden Material-Effekte und Shader im
View ignoriert.
NOFLAG1
Ist dieses Flag gesetzt, werden im View keine Entities oder Texturen
dargestellt, deren FLAG1 gesetzt
ist.
NOCAST
Entities mit CAST flag werden nicht dargestellt. 8.10 LC
NOWORLD
Level-Blocks und Terrains werden nicht dargestellt. 8.10 LC
NOENT
Map-, Modell - oder Sprite Entities werden nicht dargestellt, mit Ausnahme der genius Entity und deren child Entities. Hiermit lässt sich ein View erzeugen, der nur bestimmte Entities darstellt. 8.10 LC
NOLOD
Ist dieses Flag gesetzt, wird der LOD-Status der Entities bentutzt, von diesem View allerdings nicht verändert. Das ist hilfreich für Shadow-Mapping-Renderstufen, die aus einer hellen Quellposition aus rendern und die LOD-Schritte aus einem früheren View benutzen. 7.10 LC
NOFOG
Ist dieses Flag gesetzt, wird der Nebel im View unterdrückt, ist dem Entity-Flag NOFOG ähnlich. 8.03 LC Bemerkungen:
In C-Skript wird ein Flag zur Laufzeit gesetz bzw. zurückgesetzt,
indem der ON- oder OFF-Wert
zugewiesen wird (wie panel.SHOW = ON;). In C, C++,
oder Lite-C wird ein Flag durch 'odern' des Flag-Parameters
mit dem Flag (panel.flags |= SHOW;) gesetzt und durch
'unden' des Flag-Parameters mit dem umgekehrten
Flag wird er zurückgesetzt (panel.flags &= ~SHOW;).
Auch die vordefinierten macros set,
reset und toggle lassen sich zum Manipulieren individueller
Flags verwenden.
Beispiel:
VIEW* camera2 =
{
...
flags = SHOW | AUDIBLE;
}
...
set(camera2,NOFLAG1);
...
Siehe auch:
VIEW, layer, genius, portal, material, bmap, stage
► Aktuelle Version Online