Antialiasing durch konservative Rasterisierung und Analyseberechnung
Eine neue Technik zur Wiedergabe von 3D-Dreiecken mit 'perfektem' Anti-Aliasing. Schriftarten und Vektoren werden in Dreiecke unterteilt und konservativ rasterisiert, dann bestimmt ein Fragment -Shader die Abdeckung der Dreieckfläche, um das Alpha für jedes Fragment zu berechnen.
Verfahren
GPU-Rendering von Vektorgrafiken in einer Subpixelgenauigkeit:
- Triangulate Kurven zu Dreiecken
- Rendern Sie jedes Dreieck mit konservativer Rasterisierung
- Für jedes Fragment:
- Führen Sie eine Dreieck/Box -Kreuzung durch und erstellen Sie ein Polygon
- Fassen Sie die Bereiche der Dreiecke im Polygon zusammen
- Teilen Sie die Summe durch die Fragmentfläche, um eine prozentuale Abdeckung zu ermöglichen
- Fahren Sie für alle Dreiecke fort, additiv mischen
Vorschau

Demos
Besuchen Sie https://andrewlowndes.github.io/perfect-antialiasing/dist/, um eine Reihe von Demos anzuzeigen, die die verschiedenen in diesem Repo verwendeten Techniken zeigen.
Laufen
- Stellen Sie sicher, dass die Nodejs installiert sind
- Führen Sie
npm i aus, um Abhängigkeiten zu installieren - Führen Sie
npm start um die Demos in einer Web -App zu öffnen
Roadmap
Verwendungen
- Anti-Aliasing in Spielen (müssen den Overhead der konservativen Rasterisierung und die Alpha-Berechnung im Fragment-Shader bewerten)
- Schriftart der Schriftart (stützt sich noch auf Triangulation - Verwenden Sie den Bildschirmraum im Tesselation Shader für die Auflösung unabhängiger Rendering)
Entwicklung
Installieren Sie gegen Code und die folgenden Erweiterungen:
- EditorConfig für VS -Code
- Eslint
- Hübscher
Referenzen
Vertex-basierte konservative Rasterisierung basierend auf Algorithmus 2 aus GPU-Gems 2 Kapitel 43 (https://developer.nvidia.com/gpugems/gpugems2/part-v-image-oriented-computing/chapter-42-conservative-rasterization)