Frage

Ich bin mit OpenGL ES auf niedrige Auflösung, Embedded-Gerät .

Ich habe einen vertikalen Farbverlauf angewendet, Eckenfärbung verwendet wird, zu einem großen Polygon als Kulisse meiner gerenderten Szene dient. Ich kann klar sichtbares Banding-Artefakte im Farbverlauf sehen.

Meine Haupt Erfahrung mit Software-Renderer. Mit Software-Renderer ist es üblich, mach Bands und andere Bandeinschnürungsartefakte Dithering entfernt. Wir tun dies oft während des Quantisierungsschritt einen Rahmen von Rendering, wobei die Gleitkommaprozessor, hochpräzise Darstellungen von Farben auf eine niedrigere genaue Ausgabe umgewandelt werden (in der Regel mit ganzzahligen Komponenten). Wir achieve Dithering durch Zufall die letzte ganzzahlige Komponente Rundung entweder nach oben oder nach unten, mit dem nur die kleinst bisschen Rauschen im Bild einzufügen, um das Auge zu sehen, eine kontinuierliche und glatte Mischung zwischen Farben zu täuschen.

Meine Frage ist, ob ich das mit OpenGL ES erreichen kann? Ist diese Art der Teil der OpenGL-Pipeline-Dithering, oder sollte ich überspringen Vertex-Färbung und die Steigung auf eine Textur machen und ein wenig Lärm für sie gelten?

War es hilfreich?

Lösung

Haben Sie versucht glEnable (GL_DITHER)? Es ist normalerweise zunächst aktiviert, aber ich habe noch nie gearbeitet mit GL ES oder auf einem Embedded-Gerät. Es kann auch von der Farbtiefe ab, die Sie im Framebuffer verwenden, wirst du Artefakte erhalten, wenn Sie nur 4 haben Bits pro Kanal.

Andere Tipps

Ich habe noch nie von der Wirkung gehört, dass Sie in dem OGL Rohr beschreiben sind. Mein Wissen ist ein bisschen an dieser Stelle datiert, obwohl, so kann ich mich irren. Ich würde geben die machen einen Schuss Textur, wenn Sie können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top