Précédemment, dans ce cours, nous avons vu que certaines portions d'une scène 3D ne sont pas affichées à l'écran. Soit parce qu'elles sont en-dehors du champ de vision de la caméra, soit parce qu'elles sont masquées par un autre objet, ou encore parce que la face avant d'un objet cache la partie arrière. Il est primordial ne ne pas texturer et calculer les portions de l'image qui ne sont pas visibles à l'écran, en utilisant des algorithmes de ''culling'' adaptés, mais ce n'est pas facile à faire. Il est possible d'éliminer rapidement les parties arrières cachées des objets, ainsi que ce qui est hors du champ de vision de la caméra, dès l'étape de rasterisation, soit assez tôt. Mais les objets cachés par d'autres plus proches posent problèmes, car ils sont éliminés parà lela ''z-buffering'',toute quifin estdu effectuépipeline. dansCependant, lesla ROP.profondeur Et cd'un pixel est sansconnue compterdès lesla effetsfin de transparence, qui font qul'unétape objetde devantrasterisation, unce autrequi peutpermet neen pas le masquer. En conséquence,théorie de nombreuxdétecter pixelsprécocement inutilesquel serontpixel coloriésest etdevant éclairésun parautre. lesMais pixelscela shaders,demande sans qud'onutiliser puissedes ytechniques faired'élimination grand-choseprécoce.
Cependant, la profondeur d'un pixel est connue dès la fin de l'étape de rasterisation, ce qui permet en théorie de détecter précocement quel pixel est devant un autre. Mais si le z-buffering est effectué dans les ROPs, c'est qu'il y a une bonne raison. En effet, sur les cartes graphiques usuelles, l'ordre de soumission des triangles est aléatoire. Un objet peut en cacher un autre sans que ces deux objets soient rendus consécutivement. Si on utilise le ''Z-buffering'', cela ne pose aucun problème, car il est conçu pour en tenir compte. Mais effectuer un test de profondeur lors de la rasterization ne fonctionne que si les triangles arrivent du plus loin au plus proche. En théorie, cela ne pose pas de problèmes si l'on trie les triangles en fonction de leur profondeur, mais effectuer ce tri est nettement plus lent que d'effectuer le test de profondeur dans les ROP. Il existe cependant des solutions alternatives et optimisations qui permettent de régler partiellement ce problème, et elles font l'objet de ce chapitre.
==Le ''Tiled rendering''==
|