flags

Ein Satz von 'Schaltern' zum Setzen für das Material, in einer Materialdefinition getrennt durch " | ". Alle nicht gesetzten Flags sind per default zurückgesetzt.

TANGENT

Berechnet die u-Tangenten für das 3. Texturkoordinatenset (TEXCOORD2). Das hat denselben Effektwie das Definieren von matTangent in einem Shader und ermöglicht Shadern Vektoren in den Tangentenraum zu konvertieren. Der binormale Vektor (v-Tangens) kann vom Vertex-Shader aus dem Kreuzprodunkt der Vertexnormalen und dem u-Tangens errechnet werden. Bei animierten Modellen müssen die Tangenten mit jedem Frame neu berechnet werden, was die Framerate beeinflußt, benutzen dieses Flag also nicht unnötigerweise.

TRANSLUCENT

Rendert die Entity beim Translucent-Durchgang, d.h.: nachdem sämtliche nicht-transparenten Objekte gerendert sind. Läßt sich für Transparenz-Effekte verwenden wenn die Entity selbst keinen TRANSLUCENT- oder TRANSPARENT-Flag gesetzt hat. Dieses Flag kann auch beim Definieren einer bool-Variablen innerhalb der .fx-Datei gesetzt werden (bool TRANSLUCENT;)

PASS_SOLID

Das Gegenteil von TRANSLUCENT: erzwingt das Rendern auf dem soliden Durchgang. d.h. zusammen mit den nicht-transparenten Objekten. Für Entities mit Alphakanal-Texturenen, die für andere Zwecke, wie etwa eine Höhenmap in einem Shader, verwendet werden. Entities im soliden Durchgang werden nicht sortiert und rendern daher schneller als im transparenten Durchgang. Dieses Flag kann auch beim Definieren einer bool-Variablen innerhalb der .fx-Datei gesetzt werden (bool PASS_SOLID;)

AUTORELOAD

Lädt automatisch die Effekt-Datei neu, sobald sie mit SED oder einem anderen Editor per [Save] gespeichert wird. Lässt sich zum Editieren von Shadern und sofortigen Beobachten des Ergebnisses im Engine-Fenster verwenden. Dieses Flag kann auch beim Definieren einer bool-Variablen innerhalb der .fx-Datei gesetzt werden (bool AUTORELOAD;)  !!  Die .fx-Datei, die bearbeitet werden soll, muß sich im Work-Ordner befinden. Auch die default.fx-Bibliothek kann in den Work-Ordner kopiert und dort editiert werden; Änderungen in dieser Bibliothek werden aber nur sichtbar, wenn zugleich die .fx-Datei des Materials gespeichert wird.

OVERRIDE

Gibt dem Material Vorrang vor dem view material. Setzen Sie dieses Flag für Materialien, die zum Rendern von Objekten immer verwendet werden sollen, auch dann, wenn ein View-Material gesetzt ist.

ENABLE_RENDER

Der material event wird sofort und vor dem Rendern der Entitiy, der das Material zugewiesen wurde, ausgeführt. Das läßt sich dazu verwenden, Effektberechnungen aufgrund von Entity-Skills oder der Welt-Matrix der Entity durchzuführen. Liefert die Event-Funktion 1 zurück, wird die Entity nicht gerendert. Damit die Entity gerendert wird, muß 0 zurückgeliefert werden. Der mtl-Pointer kann, in Abhängigkeit des gegenwärtigen Views oder anderer Faktoren, zum vorrübergehenden Umschalten des Entity-Materials verwendet werden.  C   P 

ENABLE_TREE

Der Material-Event wird für sämtliche potenziell sichtbaren Entities, denen das Material zugewiesen wurde, ausgeführt, ehe diese in die Renderliste einsortiert werden. Wenn das material einem View per view.material zugewiesen wurde, wird der Event für alle Entities im View ausgeführt. Liefert die Eventfunktion 1 zurück, wird die Entity in diesem View nicht gerendert. Damit die Entity gerendert wird, muss 0 zurückgeliefert werden. Alle Entity-Flags (außer INVISIBLE) sowie die Parameter alpha und material der Entity lassen sich in der Eventfunktion ändern.  C   P  8.03

ENABLE_VIEW

Der material event wird sofort und vor dem View-Rendern zum Aufstellen einiger, vom View abhängiger Materialeigenschaften ausgeführt. Wurde das Material einem View durch Setzen eines view.material zugewiesen, wird der Event nur für den View, dem das Material zugewiesen wurde, ausgeführt. Ansonsten wird der Event für jedweden View ausgeführt. Liefert die Event-Funktion eines Viewmaterials 1 zurück, wird die View-Stufe übersprungen. Damit der View gerendert wird, muß 0 zurückgeliefert werden. Zum Zeitpunkt des Events sind View und Projektions-Matritzen bereits gesetzt und können vom Event geändert werden. Dies ermöglicht das Rendern von nicht-standardiesierten Views, beispielsweise orthogonale Pfojektionen. Beispiel: Siehe bmap_rendertarget.  C   P 

Bemerkungen:

In C-Skript wird ein Flag zur Laufzeit durch Zuweisen des ON- oder OFF-Wertes gesetzt bzw. zurückgesetzt (z.B. material.TANGENT = ON;). In C, C++ oder lite-C, wird ein Flag durch 'odern' des flags-Parameters mit dem Flag gesetzt (material.flags |= TANGENT;) und durch 'unden' des flags-Parameters mit dem entgegengesetzten Flag zurückgesetzt (material.flags &= ~TANGENT;).

Beispiel:

MATERIAL* mtlGlow =
{
  ...
  flags = TRANSLUCENT | TANGENT;
  ...
}

Siehe auch:

MATERIAL, material.event, effect

► Aktuelle Version Online