Bonjour,
Comme dans ce précédent journal :http://linuxfr.org/~miellaby/13086.html,(...) je recherche toujours un
code (C ou autre) implémentant l'algorithme d'affichage de polygônes par affichage de ligne.
Je veux en faire une fonction d'affichage 2D efficace sans aide matérielle. Pour me motiver, j'ai l'intention d'adapter des jeux old-school à la sauce vectorielle.
* en entrée, des polygones {n points, couleur, profondeur} que l'on peut ordonner en profondeur
* en sortie, un rendu où les polygones les plus hauts cachent les polygones recouverts
* application de l'algorithme d'affichage par balayage de lignes (scanline)
Rappel:
(1) Le zbuffer (ou l'algorithme du peintre) traite chaque pixel d'un objet, même s’il est caché. Le balayage de lignes, en revanche utilise la cohérence le long d’une ligne (scanline) pour ne calculer la visibilité que d'un bord au bord suivant le long de la ligne.
(2) La méthode est une extension du remplissage de polygone par balayage (polygon scan-conversion) afin de traiter plusieurs polygones à la fois. C'est simple et efficace, pas besoin de découper les polygones en triangle.
(3) Pour calculer l'intersection des bords avec la ligne de balayage, on peut appliquer l'algorithme de Bresenham, qui n'utilise que des nombres entiers, des opérateurs simples et qui ne fait pas d'erreur de retenu.
Note: cette technique ne traite pas de la même chose que les BSP et les autres techniques employées pour filtrer les objets invisibles.
Donc, si quelqu'un voit de quoi je parle... merçi d'avance.
# Serie d'articles et demo encourageante
Posté par tuan kuranes (site web personnel) . Évalué à 2.
http://www.devmaster.net/articles.php(...)
et plus precisement le chapitre "Triangle Rasterization"
http://www.devmaster.net/articles/software-rendering/part3.php(...)
(je te conseille de lire tous les chapitre, notemment le "half-space function approach" qui est particulierement adapte aux processeurs modernes.)
Un dev tres connu (de l'epoque old-school) a recode directx en software avec des perfs et des visuels vraiment impressionant (mais vends le moteur)... je retrouve plus le lien...
[^] # Re: Serie d'articles et demo encourageante
Posté par tuan kuranes (site web personnel) . Évalué à 1.
http://www.radgametools.com/pixomain.htm(...)
(Capable de faire tournet unreal en software)
Un des auteurs est Michael Abrash, auteur du black book.
[^] # Re: Serie d'articles et demo encourageante
Posté par drchaos (site web personnel) . Évalué à 1.
J'avais vu qq chose comme ça il y a 5-6 ans à une demoparty se deroulant à pau. Le gars faisait tourner un jeu de motocross dont je me souviens plus le nom.
Pour ce qui est du rendu 2d, il y a une technique utilisé par le moteur de Quake1 qui me parrait assez interessante pour faire du zero-overdraw mais je connais plus le nom. Ca consistait à créer un tableau de scanline (ligne horizontal). Et dans chaque scanline stocker les Span des polygone. Et le rendu etait fait grace au tableau ce qui permet d'eviter tout overdraw ( c pas très clair donc une petite recherche google pourra t aider)
# AET
Posté par Jean-Marc (site web personnel) . Évalué à 1.
Je pense que l'algo que tu cherches s'appelle "Active Edge Table", une petite recherche sur google devrait t'aider...
Une intro tiré d'un cours que je suis en ce moment :
http://www710.univ-lyon1.fr/~ameyer/teaching/m1-image/c04_si_raster(...)
Et l'application au z-buffer:
http://www710.univ-lyon1.fr/~ameyer/teaching/m1-image/c05_si_zbuffe(...)
[^] # Re: AET
Posté par Sylvain Garden (site web personnel) . Évalué à 1.
Mais moi aussi j'ai déja de multiple ressources. Pseudo-code et tout ca.
Donc ce que je cherche, c'est un LL qui ait déja codé cet algo en l'ayant bien fait.
Cet algo est peut-être dans une librairie genre SDL, ou peut-être dans un vieux projet comme ce bon vieux Xwindows.... mais je ne sais pas où chercher.
# WatRend
Posté par Sylvain Garden (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.