2017-04-30 1 views
0

Ich rendere ein teilweise transparentes Rechteck über mein Spiel (d3d9) (eventuell Teil einer GUI) und ich möchte den Inhalt hinter diesem Rechteck verwischen. Ich verstehe den besten Weg, um mit einem Shader zu tun, aber das ist im Grunde das Ausmaß dessen, was ich weiß. Viele der Implementierungen, die ich gefunden habe, scheinen viel komplexer zu sein, als ich eigentlich sollte, oder sie verwischen ein Bild, während ich Dinge verwische, die bereits gezeichnet wurden. Eine ähnliche Frage wurde here für C# gestellt, erhielt aber ziemlich vage Antworten.Wie implementiert man eine Gaußsche Unschärfe in DirectX?

Antwort

0

Zeichnen Sie die Objekte, die Sie auf dem Bildschirm weichzeichnen möchten, nicht auf eine Textur, die als Renderziel gebunden ist. Dann binden Sie diese Textur an einen Compute-Shader und speichern die Unschärfe in einer anderen Textur. Dann können Sie das verschwommene Endergebnis als "Vollbild-Quad" zeichnen, im Grunde genommen ein 2-D-Rechteck, das den gesamten Bildschirm abdeckt und Ihre Szenentextur darauf hat. This article stammt von 2003, daher ist der Quellcode möglicherweise nicht nützlich, aber er deckt die Grundidee ab.

Verwandte Themen