« Les cartes graphiques/Les architectures de type tiled rendering » : différence entre les versions

Contenu supprimé Contenu ajouté
mAucun résumé des modifications
mAucun résumé des modifications
Ligne 1 :
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 le ''z-buffering'', qui est effectué dans les ROP. Et c'est sans compter les effets de transparence, qui font qu'un objet devant un autre peut ne pas le masquer. En conséquence, de nombreux pixels inutiles seront coloriés et éclairés par les pixels shaders, sans qu'on puisse y faire grand-chose.
 
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 siquel celui-cipixel seraest oudevant nonun calculéautre. OnMais peutsi penserle quez-buffering comparerest leseffectué valeursdans deles profondeurROPs, enc'est sortie duqu'il rasterizery seraita une bonne chose, mais cela ne marcherait pas aussi bien que prévuraison. En effet, sur les cartes graphiques normalesusuelles, l'ordre de soumission des triangles est aléatoire. : unUn objet peut en cacher un autre sans que ces deux objets soient rendus consécutivement. OrSi 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 précocelors de la rasterization ne fonctionne que si les objetstriangles soumisarrivent àdu laplus carteloin graphiqueau sontplus triésproche. parEn leurthéorie, valeurcela dene profondeur,pose cepas quide n'estproblèmes jamaissi lel'on cas.trie Etles effectuertriangles leen trifonction desde objetsleur avantprofondeur, mais d'effectuer unce testtri de profondeur seraitest nettement plus lent que d'effectuer le test de profondeur dans les ROP. Mais ilIl existe cependant des solutions alternatives, quiet demandentoptimisations d'adapterqui lespermettent cartesde graphiquesrégler usuellespartiellement avecce quelques optimisationsproblème, ouet repenserelles totalementfont l'architectureobjet des cartes graphiques. Dansde ce chapitre, nous allons voir les deux solutions en détail.
 
==Le ''Tiled rendering''==