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.10  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.  A6   A7

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.    A6   A7

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