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
- Zum Zeitpunkt des Events sind sämtliche Matrizen, Texturen und Renderstufen bereits gesetzt. So hat das Ändern von Entity-Parametern oder des Entity-Materials in diesem Event keinen Einfluß auf das unmittelbare Rendern - dafür nehmen Sie ENABLE_TREE.
- Liefert die Event-Funktion 1, ist die Entity nicht gerendert, aber in die Sichtbarkeitsliste einsortiert und erscheint im Statistikpanel. Eine schnellere Methode zum Unterdrücken des Renderns einer Entity in einem bestimmten View, ist es das Flag NOFLAG1 oder zu ENABLE_TREE setzen (s. u.).
- If the event function returns 1, the entity is not rendered, but is sorted in the visibility list and appears in the statistics panel. A faster method for suppressing entity rendering in a particular view is the NOFLAG1 flag or the ENABLE_TREE flag (see below).
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