[DX10] Self-Shadowing Artifacts

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

[DX10] Self-Shadowing Artifacts

Beitrag von witziok »

Hallo,

wie bekommt man die Artifacts weg beim Self-Shadowing.

Ich habe eine depth ShadowMap die ich für weitere Objekte berechnen will
leider sind die Artifacts so arg das ich das wohl vergessen kann oder wie?

Auf dem Screenshots kann man das extrem sehen
Haus sowie Model.
Dateianhänge
test2.jpg
Benutzeravatar
dot
Establishment
Beiträge: 1745
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [DX10] Self-Shadowing Artifacts

Beitrag von dot »

Verwend beim Rendern der Shadow Map einen Slope Scaled Depth Bias.
Andre
Establishment
Beiträge: 186
Registriert: 21.12.2011, 20:33

Re: [DX10] Self-Shadowing Artifacts

Beitrag von Andre »

Hab das hier vor ein paar Jahren mal gefunden:
Bild

Zwar noch nicht selber eingebaut, sieht aber nützlich aus.
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

Re: [DX10] Self-Shadowing Artifacts

Beitrag von witziok »

dot hat geschrieben:Verwend beim Rendern der Shadow Map einen Slope Scaled Depth Bias.
Slope Scaled Depth Bias:
kann man das auf die fertige shadow map anwenden oder muss man da extra eine shadow map rendern?
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

Re: [DX10] Self-Shadowing Artifacts

Beitrag von witziok »

Andre hat geschrieben:Hab das hier vor ein paar Jahren mal gefunden:
Bild

Zwar noch nicht selber eingebaut, sieht aber nützlich aus.
danke
gucke ich durch.
Benutzeravatar
dot
Establishment
Beiträge: 1745
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: [DX10] Self-Shadowing Artifacts

Beitrag von dot »

witziok hat geschrieben:
dot hat geschrieben:Verwend beim Rendern der Shadow Map einen Slope Scaled Depth Bias.
Slope Scaled Depth Bias:
kann man das auf die fertige shadow map anwenden oder muss man da extra eine shadow map rendern?
Wie renderst du die Shadow Map denn genau?
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

Re: [DX10] Self-Shadowing Artifacts

Beitrag von witziok »

in normale depth texture (depth shadow map)

1. ich erstelle shadow map
2. die shadow map verwende ich dann für terrain + objekte... Terrain wird alles richtig dargestellt.

ich habe gelesen das man rasterizerState auch verwenden kann für Bias.. aber wie das genau geht finde ich nix.

rasterizerState.DepthBias = true;
rasterizerState.DepthBiasClamp = 1000.0;
rasterizerState.SlopeScaledDepthBias = 1.0f;
Benutzeravatar
Jonathan
Establishment
Beiträge: 2545
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [DX10] Self-Shadowing Artifacts

Beitrag von Jonathan »

Bei geschlossenen Objekten kann man das Culling umstellen, so dass in die Shadowmap nur die Rückseite gerendert wird.
So verschwinden die Artefakte auf der Vorderseite (da die Rückseite ja ein ganzes Stück entfernt ist) und auf der Rückseite wird das Objekt auch nicht beleuchtet, unabhängig von Schatten oder nicht Schatten.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

Re: [DX10] Self-Shadowing Artifacts

Beitrag von witziok »

Jonathan hat geschrieben:Bei geschlossenen Objekten kann man das Culling umstellen, so dass in die Shadowmap nur die Rückseite gerendert wird.
So verschwinden die Artefakte auf der Vorderseite (da die Rückseite ja ein ganzes Stück entfernt ist) und auf der Rückseite wird das Objekt auch nicht beleuchtet, unabhängig von Schatten oder nicht Schatten.
troz dem habe ich noch diese Artifacts.. zwar nicht mehr so arg aber immer noch etwas.
wie funktioniert das mit SlopeScaledDepthBias?

wegen blöden schatten dauert mein projekt lange,
schade das es keine Dokus gibt für Schatten anfänger.

und gibts keine dokus von directx 10 wie man das anwenden kann?
rasterizerState.DepthBias = true;
rasterizerState.DepthBiasClamp = 1000.0;
rasterizerState.SlopeScaledDepthBias = 1.0f;
Dateianhänge
test2.jpg
witziok
Beiträge: 38
Registriert: 06.02.2013, 09:42
Alter Benutzername: witziok
Echter Name: Sebastian W.

Re: [DX10] Self-Shadowing Artifacts

Beitrag von witziok »

Antworten