Gibt es in OpenGL eine gute Möglichkeit, Objekte ohne Verwendung von Shadern zu verwischen?
Derzeit erreiche ich eine Unschärfe, indem ich das Objekt leicht nach oben, unten, links, rechts und die vier Diagonalen aus seiner ursprünglichen Position rendere. Es scheint, dass es einen viel besseren Weg geben sollte, dies zu tun. Ich arbeite in einer 2D-Szene.
Antworten:
Was Sie bereits haben, ist gut und der kanonische Weg, um Vollbildunschärfe zu erreichen.
Wenn Sie keine Vollbild-Unschärfe wünschen, aber 2D-Sprites pro Sprite verwischen möchten, können Sie mithilfe der Mipmap-LOD-Klemmung / Bias Ihre Hardware zwingen, einen niedrigeren Mip-Pegel abzutasten. In Verbindung mit der bilinearen Vergrößerungsfilterung sollte das natürliche Ergebnis unscharf aussehen.
Andernfalls können Sie eine separate Textur für das unscharfe Bild verwenden und einfach zwischen dieser und der unscharfen Textur wechseln. Wenn Sie glatte Übergänge wünschen, können Sie mit jeder Textur gleichzeitig 2 Sprites zeichnen und den Alpha-Wert für jeden der Sprites animieren. dh. Mit zunehmender Zeit geht Alpha für Sprite1 von 0..1 und Alpha für Sprite2 von 1..0.
quelle
Ohne Shader wird das Versetzen der Bilder so versetzt wie möglich einem Unschärfeeffekt nahe kommen. Sie können auch einfach mit Transparenz über den vorherigen Framebuffer zeichnen, wenn Sie eine Unschärfe im Vollbildmodus erzielen möchten. Jeder Durchgang verdoppelt jedoch ungefähr die erforderliche Füllrate, um eine gute Framerate aufrechtzuerhalten.
Der nächste Schritt würde mindestens eine Rendertextur und Ihre eigene Logik zum Verarbeiten des Bildes (Software-Shader) oder die Verwendung eines echten Hardware-Shaders (iPhone 3GS und höher) umfassen.
quelle
Dies führt möglicherweise nicht zu der gleichen Art von Unschärfeeffekt, aber wie wäre es, wenn Sie das Bild auf eine kleine Pixmap-Größe herunterabtasten und es mit linearer Interpolation auf dem Bildschirm zeichnen.
quelle
Müssen die Objekte von klar zu verschwommen wechseln?
Level 1:
Level 2:
Stufe 3:
quelle
Ohne Shader ist das so ziemlich alles, was Sie tun können. Der Akkumulationspuffer bietet Ihnen möglicherweise mehr Leistung, um mehr Arbeit zu erledigen, wenn er auf Ihrer Plattform verfügbar ist.
quelle