2016-05-24 4 views
1

Ich versuche, 2d Schlagschattenfilter mit GLSL zu erstellen.schnellere Möglichkeit, 2D-Schlagschatten in GLSL zu erstellen?

Was ich jetzt mache, ist zuerst meine Pixel in eine Textur zu rendern, dann einen Gaußschen Unschärfefilter darauf anzuwenden, dann den Hauptframe-Puffer mit getönter Farbe zu zeichnen und dann die tatsächlichen Pixel oben zu zeichnen.

Das Ergebnis ist ziemlich, nett, aber die Leistung ist ziemlich niedrig. es gibt also eine einfachere Möglichkeit, Schlagschatten mit Glsl zu erstellen, da der Schatten nicht alle Farbkomponenten des tatsächlichen Pixels benötigt, nur der Alpha-Wert?

Antwort

0

Wenn die Formen konstant sind, können Sie den Schlagschatten vorausberechnen. Wenn nicht, geht es einfach darum, Ihren Unschärfe-Shader effizienter zu machen. Es gibt eine Menge Informationen über diese online, wie Rideout's article oder ivankuckir's article.

Der Trick besteht darin, die Anzahl der Texture2D-Aufrufe zu minimieren und integrierte Funktionen wie Lineair-Interpolation zu verwenden.

Siehe auch Fastest Gaussian blur implementation

Verwandte Themen