2017-08-07 9 views
-2

Wenn ich meine Szene auf dem Bildschirm rende, verwendet die Szene eine _MultiSampling Anti-Aliasing 8x; es ist in Ordnung.glReadPixels() gibt kein Anti-Aliasing-Bild zurück

Aber ich möchte zu den Pixelpuffern über glReadPixels() lesen, ich habe ein Aliased-Image mit Aliased-Zeilen. Es wird nicht die 8x MSAA verwendet.

Code:

glReadPixels(0,0, w, h, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (void*)pixels); 

Wie greife ich auf die Pixel mit dem MSAA Transformationspuffer (Filter)? glReadPixels hat keinen speziellen Parameter.

Side Hinweis: würde Ich mag die Opengl 1

Wichtiger Hinweis verwenden: verwende ich QOpenGLWidget Klasse

+2

'glReadPixels()' liest, was Sie auf dem Bildschirm sehen. Wenn es ein Nicht-AA-Bild liest, funktioniert Ihr AA nicht. – ikleschenkov

+0

Führen Sie 'glBindFrambuffer (GL_FRAMEBUFFER, 0);' aus dem Bildschirm aus. – stark

Antwort

1

Qt 5.9 Ich nehme an, dass Sie auf eine Off-Rendering Bildschirm Renderbuffer oder Textur über FBO. Die Lösung besteht darin, einen Render-Puffer zu erstellen, der ein MSAA-Pixelformat verwendet. Antialiasing ist kein Nachverarbeitungsfilter! (zumindest nicht in der Form MSAA implementiert es).

+0

danke! es läuft gut –