Der Linienalgorithmus von Bresenham ist eine Möglichkeit, gerade Linien nur mit schnellen ganzzahligen Operationen (Addition, Subtraktion und Multiplikation mit 2) zu zeichnen. Es werden jedoch Alias-Zeilen generiert. Gibt es eine ähnlich schnelle Möglichkeit, Antialias-Linien zu zeichnen?
antialiasing
pixel-graphics
line-drawing
Kennzeichen
quelle
quelle
Antworten:
Nein, da per Definition eine Anti-Alias-Linie mehr Pixel berührt. Solche Algorithmen sind langsamer.
In einem Software-Rasterizer ist der Linienalgorithmus von Xiaolin Wu die allgegenwärtige Methode zum Zeichnen von Anti-Alias-Linien . Es ist nicht schwer zu implementieren, und an diesem Link befindet sich ohnehin ein Pseudocode von ungewöhnlich hoher Qualität.
In einer Hardware-Raster-Pipe wird das Linienprimitiv durch den Standard-Geometrie-Shader (oder den vom Benutzer bereitgestellten Geometrie-Shader) zu einem Bildschirmraum-Quad erweitert und dann als zwei Dreiecke gezeichnet, die dann auf die übliche Weise gegen Aliasing geschützt werden können.
In einem Raytracer gibt es eine Vielzahl von Optionen. Es lohnt sich darüber nachzudenken, wie Sie tatsächlich ein 1D-Objekt zeichnen möchten. Vielleicht als Zylinder (woo Schatten!). Beachten Sie, dass dies zu Problemen mit der Perspektive / Verkürzung führt, die möglicherweise Ihren Wünschen entsprechen (oder auch nicht). Es gibt keine klare Verallgemeinerung. Was auch immer Sie tun, Sie probieren es einfach aus.
quelle