2017-05-08 2 views
0

Ich habe das Tutorial vorgestellt here um Schattenkarten zu erstellen.Gaussian Blur auf Shadow Map (FBO/Textur)

Was ich tun möchte, ist eine Art Nachbearbeitung Schritt auf dem Schatten, wo ich Gaußsche Unschärfe (oder was auch immer Unschärfe) auf der Schattenkarte anwenden. Verstehe, dass ich dieses Tutorial genau befolgt habe und dass ich sehr unerfahren bin, wenn es um OpenGL geht. Ich weiß nicht, ob es auf die depthMapFBO oder die depthMap selbst angewendet werden sollte. Oder wenn ich neue FBOs/Texturen erstellen muss.

Kann man den Tiefenwert auf diese Weise sogar verwischen? Wie würdest du die Schattenkarte verwischen?

Beachten Sie, dass ich nicht in Realismus interessiert bin, möchte ich nur eine einheitliche Unschärfe auf allen Schatten.

Antwort

1

Die Verwischung einer Schattentiefe Textur macht keinen Sinn.

Eine Tiefe Textur enthält Tiefe Werte. Ein Wert von beispielsweise 0,5 bedeutet etwas. Es gibt die Tiefe eines Texels an. Für eine Schattenkarte bedeutet dies etwas noch Spezifischeres: Sie gibt den kürzesten Abstand zum Licht einer verschließenden Fläche an einer bestimmten Stelle in der Szene an.

Wenn die nächstgelegene Entfernung an einer Stelle 0,5 ist, was würde es bedeuten, dies mit einer Entfernung von 0,6 zu "verwischen"? Es würde effektiv bedeuten, dass Sie die Entfernung von Objekten zum Licht geändert haben. Da sich dies jedoch nicht in der tatsächlichen Geometrie widerspiegelt, bedeutet dies, dass die unscharfe Schattenkarte die Geometrie nicht mehr genau darstellt. Jetzt wird es Orte geben, die beschattet werden sollten, die es nicht sind, und Orte, die beschattet werden, aber nicht sein sollten.

Kurz gesagt, macht es Ihre Tiefe Textur bedeutungslos.

Was Sie scheinen wollen, ist weicher Schatten. Es gibt Möglichkeiten, dies mit Shadow Maps zu erreichen, aber die Tiefenstruktur zu verwischen ist nicht einer von ihnen.