« Les cartes graphiques/Le rasterizeur » : différence entre les versions

Contenu supprimé Contenu ajouté
m typo
Ligne 1 :
[[File:Scene-render.svg|droite|thumb|Rasterization.]]
 
À ce stade, les vertices ont été converties en triangle, après une éventuelle phase de tesselation. Mais toutes les vertices ne s'afficheront pas à l'écran : une bonne partie n'est pas dans le champ de vision, une autre est cachécachée par d'autres objets, etc. Dans un souci d'optimisation, ces vertices non-visibles doivent être éliminées. Une première optimisation consiste à ne pas afficher les triangles en dehors du champ de vision de la caméra : c'est le '''clipping'''. Toutefois, un soin particulier doit être pris pour les triangles dont une partie seulement est dans le champ de vision : ceux-ci doivent être découpés en plusieurs triangles, tous présents intégralement dans le champ de vision. La seconde s'appelle le '''Back-face Culling'''. Celle-ci va simplement éliminer les triangles qui tournent le dos à la caméra. Ces triangles sont ceux qui sont placés sur les faces arrière d'une surface. On peut déterminer si un triangle tourne le dos à la caméra en effectuant des calculs avec sa normale. Enfin, chaque pixel de l'écran se voit attribuer un ou plusieurs triangle(s). Cela signifie que sur le pixel en question, c'est le triangle attribué au pixel qui s'affichera. C'est lors de cette phase que la perspective est gérée, en fonction de la position de la caméra.
 
==Triangle setup==
Ligne 28 :
===Triangle traversal===
 
Dans sa version la plus naïve, tous les pixels de l'écran sont testés pour chaque triangle. Si le triangle est assez petit, une grande quantité de pixels seront testés inutilement. Pour éviter cela, diverses optimisations ont étésété inventées. La première consiste à déterminer le plus petit rectangle possible qui contient le triangle, et à ne tester que les pixels de ce rectangle.
 
[[File:Smallest rectangle traversal.jpg|centre|vignette|Smallest rectangle traversal]]