Vor kurzem habe ich einige 3D-Spiele gesehen (zB :) , GTA IV
in denen eine Art geordnetes Dithering verwendet wurde , um Transparenz / Alpha zu simulieren.
Die Polygone sind nicht wie gewohnt transparent, sondern rendern eine Dithering-Textur, die schrittweise von links nach rechts wechselt, um die Transparenz zu simulieren:
Der Effekt ist nicht unangenehm, sondern auf den ersten Blick überraschend (im Vergleich zum traditionellen Alpha-Blending).
Gibt es einen Grund, warum manche Spiele außer dem visuellen ästhetischen Effekt, den sie erzeugen, dies tun (bessere Leistung, Einsparung von Bandbreite oder sonst etwas, woran ich nicht denke)?
Ich habe im Internet gesucht, aber nichts über diese Technik gefunden.
textures
rendering
transparency
alpha
tigrou
quelle
quelle
Antworten:
Dies ist ein weit verbreiteter Ansatz zur Transparenz in Spielen, die verzögertes Shading verwenden. Bei verzögerter Schattierung funktioniert die ordnungsgemäße Transparenz überhaupt nicht, da nur die Daten einer Oberfläche (Tiefe, normaler Vektor, Farbe usw.) auf jedem Pixel gespeichert werden können. Bei der ordnungsgemäßen Transparenz überlappen sich mehrere Oberflächen auf einem Pixel, die jeweils voneinander unabhängig sein müssen Beleuchtung.
Es gibt einige Möglichkeiten, wie Game Engines damit umgehen können:
Man kann auch eine Kombination dieser Ansätze verwenden, z. B. Vorwärtsbeschattung für Glasfenster und Punktierung für LOD-Übergänge.
Es ist auch erwähnenswert, dass einige Spiele das Punktieren für weiche Schatten verwenden. Dies ist ein Performance-Kompromiss. Für schönere Schatten sind mehr Textur-Samples im Pixel-Shader erforderlich, was länger dauert. Sie erhalten jedoch ein ansprechendes Ergebnis, wenn Sie weniger Samples verwenden und ihre Positionen zufällig verschieben. Der zufällige Versatz erzeugt den Punktierungseffekt.
quelle
Es ist ein einfacher Performance-Kompromiss. Das Alpha-Mischen erfordert das Lesen des aktuellen Farbpuffers, wohingegen diese Art des Dithering nur zum Schreiben (oder natürlich nur zum Verwerfen) vorgesehen ist.
Es ist möglich, diese Technik mit Multisampling zu mischen, das dann als Alpha-to-Coverage bezeichnet wird .
quelle