Ich habe einen Pixel-Shader für Direct2D erstellt, die entlang Kanten mit einem Alpha-Kanal niedriger als 1,0 verwischt. Für jeden Pixel sample ich eine blurRadius
von Pixeln nach oben, unten, links und rechts. In der Mitte (vertikal und horizontal) treten einige Renderfehler auf. Diese gehen weg, wenn ich nur Pixel rückwärts von dem Pixel abspiele, das ich gerade verarbeite. Ich glaube, mein Eingangsbild (Größe 1920x1080) ist zerhackt und ich sample außerhalb des Stücks, in dem es ist. Hat jemand eine Ahnung, was passiert, wenn meine Annahme richtig ist und was ich dagegen tun soll? Siehe unten für das resultierende Bild. Die dunklen Linien sollen nicht da sein und verschwinden, wenn ich nur die umliegenden Pixel links oder oben abtast.Pixel Shader in Direct2D Render Fehler in der Mitte
0
A
Antwort
0
ich dies schließlich fixiert und ich hoffe, dass diese anderen helfen können. Ich fand heraus, dass das Problem nur bei Verwendung einer anderen Eingabegröße als die Ausgabegröße aufgetreten ist. Ich hatte meinen Effekt basierend auf dem Beispieleffekt von Microsoft erstellt, der here gefunden werden kann. Das Problem dabei ist, dass es die pInputRects[0]
auf die in MapOutputRectToInputRects
abbildet. Dies vermasselt irgendwie die Probenahme. Die Lösung besteht darin, pInputRects[0]
auf pInputRects[0]
von der MapInputRectsToOutputRect
Funktion einzustellen.