• 6Minuten
blank

CGA-Shader

CGA (Color Graphics Adapter) wurde 1981 eingeführt und war die erste Farbgrafikkarte von IBM für den IBM PC, die einen De-facto-Standard für Computerbildschirme etablierte. Je nach Auflösung können 4 bis 16 Farben angezeigt werden. Im folgenden Beispiel habe ich mich auf acht Farben beschränkt, ihr könnt es aber gerne erweitern oder auf vier Farben reduzieren.

Shader Tutorial 2 Set 1 CGA Shader
Set 1 mit dem CGA-Shader

Zur Erinnerung: Bei den Post-Processing-Effekten arbeiten wir nur mit dem Fragment-Shader. Hier der Code:

Dieser Shader konvertiert jede Farbe in eine der acht Farben, basierend auf der Farbzusammensetzung von Rot, Grün und Blau. Wenn die Farbe nicht genau einer der CGA-Farben entspricht, wird sie auf die am nächsten liegende CGA-Farbe abgebildet.

Shader Tutorial 2 Set 2 CGA Shader
Set 2 mit dem CGA-Shader. Man erkennt einen extremen Unterschied zu Set 1. Das ist eines der Gründe, warum solche Shader individuell angepasst werden sollten

Sowohl Create- wie auch Draw-GUI-Event entsprechen der o. g. Vorlage. Ihr müsst lediglich den Namen des Shaders austauschen.

Pixel-Shader

Wir wollen den Bildschirm verpixelt anzeigen? Kein Problem.

Hier werden in main() die normierten Texturkoordinaten uv für das aktuelle Fragment-Pixel sowie die normierte Pixelgröße pixelSizeUV berechnet. Dann werden die gerundeten Texturkoordinaten roundedUV für das Retro-Pixel-Raster ermittelt. Schließlich wird der Textur-Farbwert col für die gerundeten Texturkoordinaten berechnet und als Farbausgabe für das aktuelle Fragment-Pixel verwendet.

Pixel-Shader von Set 1. Irgendwann erkennt man nichts mehr.

Da wir die Variablen pixelSize und resolution haben, müssen wir unsere Events noch anpassen.

Create-Event

Wir beginnen mit einem Wert von 8. Wie bereits beschrieben, kann man den perfekten Wert bspw. per Mausrad ermitteln.

Beim zweiten Set ist die Grafik ohnehin schon sehr feingranular

Draw GUI

Autor

Abonnieren
Benachrichtige mich bei
guest

0 Comments
Inline Feedbacks
Alle Kommentare anzeigen