StateChanges im Effect-File

Dieser Artikel ist kein wirkliches Tutorial, sondern eher eine Art Tipp bzw. Gedächtnisstütze.

Man kann wunderbar einfach im Code die unterschiedlichsten Render-States setzen und verwenden, dies ist praktisch XNA-Tagesgeschäft und jedem sollte dies in Fleisch und Blut übergegangen sein. Den FillMode ändern, Z-Buffer ein- und ausschalten und vieles mehr sind kein Zauberwerk. Aber dies geht auch noch an einer anderen Stelle, nämlich direkt im Effect-File.

Dies ist eine Kleinigkeit, die ich kenne und manchmal auch gerne verwende, aber bei der ich immer die entsprechenden Schlüsselworte gerade nicht parat habe. Dabei ist dies doch eine sehr praktsiche Sache. Im Shader selbst stelle ich alles so ein, wie ich es brauche. Sicherlich ist dies für das Batching nicht die beste Möglichkeit, da unser Spiel so nicht weis, was im Shader alles passiert. Für Debugging-Shader z.B. ist dies jedoch eine sehr gute Möglichkeit alles an zentraler Stelle definiert zu haben.

Eine Auflistung aller bzw. der meisten Schlüsselworte findet sich natürlich in der MSDN. Da ich beim letzten mal ein wenig suchen musste, bis ich die richtige Stelle gefunden habe, hier der Link: Effect States (DX9).

Wie sieht dies nun im Shader aus?

technique Technique1
{
    pass Pass1
    {
        AlphaBlendEnable = TRUE;
        FillMode = WIREFRAME;

        VertexShader = compile vs_2_0 VertexShaderFunction();
        PixelShader = compile ps_2_0 PixelShaderFunction();
    }
}

Dieses Beispiel aktiviert Alpha-Blending und rendert alles mit diesem Effekt als Drahtgitter-Modell.

Wie ihr seht: Sehr einfach.

Advertisements

Veröffentlicht am 11.07.2011 in Shader, Tutorial, XNA, XNA 3.1, XNA 4.0 und mit , , getaggt. Setze ein Lesezeichen auf den Permalink. Ein Kommentar.

  1. Vielleicht noch ergänzend:
    Die StateChanges, die man dort verursacht, kann man nicht so leicht in XNA wieder ändern, da man unter anderem auch noch AlphaTesting aktivieren kann, was aber in XNA 4.0 z.B. gar nicht mehr möglich ist. Also wirklich oberste Vorsicht geboten. 😉
    Bethsoftfan.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: