PICO-8-Palette und Pixel-Mapping-Algorithmus

2025-09-11

Dieser Code definiert die 16-Farben-Palette der PICO-8-Spielkonsole und bietet verschiedene Methoden zur Berechnung der Farbabstände (euklidische Distanz, gewichtete RGB-Distanz, HyAB-Distanz und deren Varianten) sowie eine Funktion, die Bildpixel der nächstgelegenen Palettenfarbe zuordnet. Er nutzt NumPy für die effiziente Verarbeitung von Farbdaten und ermöglicht es Benutzern, die Distanzfunktion für verschiedene Farbzuordnungsstrategien anzupassen. Dies ist sehr nützlich für die Entwicklung von Pixel-Art-Spielen und die Farbquantisierung von Bildern.

Mehr lesen
Spiele

Verbesserte CIELAB-Farbquantisierung mit der HyAB-Distanzformel

2025-07-10

Dieser Artikel untersucht eine verbesserte Methode der CIELAB-Farbquantisierung unter Verwendung einer neuen Distanzformel namens HyAB, die die traditionelle euklidische Distanz ersetzt. HyAB verwendet die absolute Differenz für die Helligkeit und die euklidische Distanz für die Chromatizität und zeigt in Experimenten eine bessere Übereinstimmung mit der menschlichen Wahrnehmung. Der Autor wendet sie auf den k-Means-Algorithmus an und optimiert die Ergebnisse weiter, indem er die Mittelwertberechnung der L-Komponente durch die Medianberechnung ersetzt. Obwohl HyAB in einigen Fällen die Bildqualität verbessern kann, stellt der Autor fest, dass das gesamte Systemdesign und Nachbearbeitungstechniken wie Dithering einen größeren Einfluss auf das Endergebnis haben.

Mehr lesen
Entwicklung k-Means

Echtzeit-Beleuchtung und Normal Mapping auf dem N64: Eine beeindruckende Leistung des Reverse Engineering

2025-05-17

Dieser Artikel beschreibt eine beeindruckende Technik zur Erzeugung von Echtzeit-Beleuchtung und Normal Mapping auf dem Nintendo 64. Durch geschickte Nutzung von Palettentexturen und CPU-seitigem Shading umgeht der Autor die Hardware-Einschränkungen des N64 und erzielt überraschend beeindruckende visuelle Ergebnisse. Die Technik beinhaltet die Komprimierung von Diffus- und Normalinformationen in eine gemeinsame Palette und die Aktualisierung der Palette zur Laufzeit über die CPU, um Lichteffekte zu simulieren. Obwohl das Verfahren einige Einschränkungen aufweist, wie z. B. die fehlende Unterstützung von Punktlichtquellen und Schatten, ist seine Innovationskraft bemerkenswert und eröffnet neue Möglichkeiten für die Grafikrendering auf der N64-Plattform.

Mehr lesen
Entwicklung

Quakes vorkalkulierte Sichtbarkeit: Entschlüsselung des PVS-Algorithmus

2025-01-10

Dies ist der erste Teil der Serie „Entschlüsselung des PVS“, in der untersucht wird, wie die Quake-Engine die Rendering-Leistung mithilfe vorkalkulierter Sichtbarkeitsmengen (PVS) optimiert hat. Mitte der 1990er-Jahre machten die Einschränkungen des Software-Renderings die Reduzierung von Overdraw entscheidend. Quake verwendete ein Portalsystem und PVS, um dieses Problem zu lösen. Portale teilen die Welt in Zellen auf; die Engine rendert nur die Zellen, die für die Kamera sichtbar sind, und andere, die durch Portale sichtbar sind. Der PVS-Algorithmus berechnet während der Kartenkompilierung eine Liste sichtbarer Zellen für jede Zelle, wodurch komplexe Sichtbarkeitsprüfungen zur Laufzeit vermieden und die Rendering-Effizienz deutlich verbessert wird. Dieser Artikel geht detailliert auf die Implementierung des PVS-Algorithmus ein, einschließlich der Portaldefinitionen, der Rolle des BSP-Baums und der drei Schritte des Algorithmus: Basis-Sichtbarkeit, vollständige Sichtbarkeit und Ergebnisauflösung.

Mehr lesen