Seite 1 von 1

[DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 15:57
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.

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 16:05
von dot
Verwend beim Rendern der Shadow Map einen Slope Scaled Depth Bias.

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 16:17
von Andre
Hab das hier vor ein paar Jahren mal gefunden:
Bild

Zwar noch nicht selber eingebaut, sieht aber nützlich aus.

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 19:56
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?

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 20:03
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.

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 21:13
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?

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 06.03.2013, 21:21
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;

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 09.03.2013, 18:56
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.

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 11.03.2013, 20:46
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;

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 11.03.2013, 21:00
von dot

Re: [DX10] Self-Shadowing Artifacts

Verfasst: 12.03.2013, 11:41
von witziok