SlimDX - GlossLightshader  
 Kategorie: SlimDX
 Autor: Sascha Bajus
 IDE: VB.Net 2008
 Framework: 2.0
 Anspruch: 70%
 Sprache: Deutsch
 Sonstiges: Code ist entsprechend kommentiert
Beschreibung
Dieses Beispiel beinhaltet die Einbindung verschiedener Techniken. Die Szene zeigt einen Plasmastrahl der mit der Partikel-Engine erzeugt wird. Im Strahl rotiert ein Torus der mit Hilfe eines einfachen Lightshaders der einen Glosseffect erzeugt.
Die Szene wird auf einer begrenzten Fläche mit der Stenciltechnik gespiegelt gerendert.
Der Shader wird als Effectfile geladen. Alle Parameter werden über EffectHandle eingebunden und angesprochen.
Der GlossLightshader
Festlegen der Variablen, WorldviewProjection, die Lichtrichtung und die Lichtfarbe
Die Lichtfarbe ist fix im Shader angegeben.
 
//Declarations float4x4 worldViewProj: WorldViewProjection;
float4   lightDirection : LightDirection;
float4   color=float4( 1, 0.88, 0.88, 1.00 );
 
Festlegen der Ausgangsstruktur des VertexShaders – Position,Normal,viewVec
 
//Vertex Output Structure struct VS_OUTPUT {float4: POSITION;
float3 normal: 	TEXCOORD0; float3 viewVec: TEXCOORD1; };
 
Die Positionsdaten werden mit der WorldViewProjektion multipliziert um vom Objekt in den Worldspace zu wechseln. Die Normalen werden unverändert durchgereicht.
 
//VertexShader Section VS_OUTPUT vsout(float4 pos  :POSITION,
float3 normal :NORMAL) { VS_OUTPUT Out;
Out.pos = mul(pos,worldViewProj);  Out.normal = normal;
Out.viewVec = pos-lightDirection;  return Out; }
 
Durch das Dot.Produkt wird ein Faktor für die Helligkeit des Pixels berechnet
 
//PixelShader Section float4 psout(float3  normal: TEXCOORD0,
float3 viewVec: TEXCOORD1) :
COLOR { float v = 1 * (0.1 + dot(normalize(viewVec), normal));
return v * color ; }
 
Es sind 2 Techniken vorhanden, einmal für die normale und reflektierte Zeichnung. Es wird dementsprechend der cullmode geändert.
 
//Technique Section technique gloss { pass pass0 { cullmode=ccw;
VertexShader = compile vs_1_1 vsout();
PixelShader  = compile ps_2_0 psout(); } }
technique glossreflect { pass pass0 { cullmode=cw;
VertexShader = compile vs_1_1 vsout();
PixelShader  = compile ps_2_0 psout(); } }
 
Hinweis
Um dieses Projekt ausführen zu können, muss VB.Net 2008, die sdxBaseEngine und die SlimDX-Runtime installiert sein. Haben Sie Fragen zu einem Projekt, wenden Sie sich bitte immer zuerst an den entsprechenden Autor. Für weitere Fragen zu Visual Basic SlimDX nutzen Sie bitte unser DirectX-Forum.
 
Betriebssystem
Win 98
Win ME
Win NT
Win 2000
Win XP
Win Vista


Download  (664 KB) Downloads bisher: [ 528 ]

Zum Seitenanfang

Startseite | Projekte | Tutorials | VB-/VBA-Tipps | API-Referenz | Komponenten | Bücherecke | VB.Net-Forum | VB-/VBA-Forum | DirectX-Forum | Foren-Archiv | VB.Net | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 2. März 2010