DirectX-Forum - Beitragsübersicht -
ThemaDX9: Pixel Shader
Von Gregor
Datum 30. Januar 2010 um 16:16:01
Frage Hallo

Ich möchte einen Shader programmieren der mir alle sichtbaren Pixel eines Models Rot und alle anderen blau färbt und danach auf depth 0 ausgeben.

Ich hab versucht zuerst den Blauen Shader zuzeichnen und danach den roten aber blau überdeckt den roten Shader.
Shader Blau
ps_2_0
def c0, 0.0, 0.0, 1.0, 1.0
mov oC0, c0
mov oDepth, c0.r

Shader Rot
ps_2_0
def c0, 1.0, 0.0, 0.0, 1.0
mov oC0, c0
Jetz zu meiner eigentlichen frage ist es möglich überprüfen ob ein pixel sichtbar ist und dann entscheiden ob es rot oder blau gezeichnet werden soll?

Danke
Gregor
Antwort:
Von dot
Datum 30. Januar 2010 um 16:47:10
Antwort Im Shader kannst du diese Überprüfung (zumindest mit einem einzelnen Durchlauf) nicht machen da die Sichtbarkeit an
dieser Stelle noch nicht bekannt ist (die ist ja erst bestimmt wenn die ganze Szene gerendert wurde).

Dass blau rot überdeckt is auch klar, da alle blauen Pixel ja den kleinstmöglichen z-Wert, nämlich 0, haben.
Wofür die Sache mit 0 depth überhaupt?

Was du machen könntest wäre z.B. zuerst einmal die ganze Szene ohne dein Modell zu rendern (um den Depth Buffer zu
füllen). Dann renderst du dein Modell in blau mit abgeschaltetem z-Test und zum Schluss nochmal in rot mit z-Test
an.
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ]
Antworten
DX9: Pixel Shader - Gregor 30. Januar 2010 um 16:16:01
Re: Pixel Shader - dot 30. Januar 2010 um 16:47:10
Re: Pixel Shader - Gregor 30. Januar 2010 um 21:47:42
Re: Pixel Shader - Nico 31. Januar 2010 um 21:28:53

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  DirectX 9
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum DirectX-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

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

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015