L'algorithme de ligne de Bresenham est un moyen de tracer des lignes droites en utilisant uniquement des opérations entières rapides (addition, soustraction et multiplication par 2). Cependant, il génère des lignes aliasées. Existe-t-il un moyen tout aussi rapide de tracer des lignes anti-crénelées?
11
Réponses:
Non, car par définition, une ligne anti-aliasée touche plus de pixels. Ces algorithmes seront plus lents.
Dans un rasterizer logiciel, la méthode omniprésente pour dessiner des lignes anti-aliasées est l'algorithme de ligne de Xiaolin Wu . Ce n'est pas difficile à implémenter, et de toute façon il y a un pseudocode de qualité inhabituelle sur ce lien.
Dans un tube raster matériel, la primitive de ligne est étendue à un quadrilatère d'espace d'écran par le shader de géométrie par défaut (ou fourni par l'utilisateur), puis dessinée en deux triangles, qui peuvent ensuite être anticrénelés de la manière habituelle.
Dans un raytracer, il existe une variété d'options. Cela vaut la peine de réfléchir à la façon dont vous voulez réellement dessiner un objet 1D. Peut-être comme un cylindre (woo shadows!). Notez que cela introduit des problèmes de perspective / raccourcissement qui peuvent (ou non) être ce que vous voulez. Il n'y a pas de généralisation claire. Alors, évidemment, quoi que vous fassiez, vous le suréchantillonnez.
la source