Nvidia GeForce GTX 460

Publié le 12/07/2010 par
Imprimer
Débit de triangles
Etant donné l’évolution apportée par Nvidia au niveau du traitement de la géométrie, nous nous sommes évidemment penchés de plus près sur le sujet. Tout d’abord nous nous sommes penchés sur les débits de triangles dans deux cas de figure : quand tous les triangles sont affichés et quand ils sont tous rejetés (parce qu’ils tournent le dos à la caméra) :


La GeForce GTX 480 s’avère ici très rapide et dépasse bien le débit d’un triangle par cycle. Dès qu’il s’agit d’éjecter des triangles du rendu via le culling, aucun autre GPU n’arrive à sa cheville. La GeForce GTX 460 s’approche d’un débit d’un triangle affiché par cycle et est également très rapide pour éjecter les triangles à travers le culling.

Nous sommes cependant loin des maximums théoriques de 4 triangles par cycle pour le GF100 et de 2 triangles par cycle pour le GF104. Quelque chose les limite sans que nous sachions exactement de quoi il s’agit. Nous savons par contre que cette limitation n’existe pas sur les futurs dérivés Quadro.

Ensuite nous avons effectué un test similaire mais en utilisant la tessellation. Cet outil de test n’est pas encore finalisé et optimisé pleinement de manière à pouvoir atteindre des rendements optimaux. Il permet cependant déjà de comparer les solutions entre elles :


L’avantage des GeForce sur les Radeon est ici évident. Ces dernières semblent limitée à 1 triangle tous les 3 cycles quand la tessellation est utilisée. AMD nous a indiqué que ce n’était pas le cas et que l’unité de tessellation était bien capable de débiter 1 triangle par cycle. Un cas que nous ne sommes pas encore parvenus à reproduire, les Radeons étant très vite dépassée lorsque trop de triangles sont générés. Notez cependant qu’avec 270 millions de triangles par seconde il y a déjà de quoi rendre des scènes très complexes !

AMD et Nvidia ont des approches très différentes. Alors que les Radeon affichent des performances identiques à ce niveau, les GeForce affichent un débit qui varie suivant les performances de la carte. Nous avons également noté d'énormes gains du côté des GeForce lorsque les GPUs doivent charger plusieurs vertices par primitive. Le GF100 et le GF104 continuent de tourner très vite même s'il doivent en charger 2 ou 3 alors que les autres GPUs voient leurs débits chuter puisqu'ils ne peuvent charger qu'un vertex par cycle.


Displacement mapping
Nous avons testé la tessellation avec une démo d’AMD intégrée par Microsoft à son SDK de DirectX. Cette démo permet de comparer le bump mapping, le parallax occlusion mapping (la technique de bump mapping la plus avancée utilisée dans les jeux) et le displacement mapping qui exploite la tessellation.


Le bump mapping basique.


Le parallax occlusion mapping.


Le displacement mapping avec tessellation adaptative.

En créant de la vraie géométrie supplémentaire, le displacement mapping affiche une qualité nettement supérieure. Nous avons activé ici l’algorithme adaptatif qui permet d’éviter de générer de la géométrie inutile et trop de petits triangles qui ne vont pas remplir de quad et donc gâche beaucoup de ressources.

Nous avons également mesuré les performances obtenues avec les différentes techniques :


Il est intéressant de remarquer que la tessellation ne se contente pas d’améliorer la qualité du rendu, mais également les performances ! Le parallax occlusion mapping est en fait très gourmand puisqu’il repose sur un algorithme complexe qui essaye de simuler la géométrie d’une manière réaliste. Malheureusement il génère beaucoup d’aliasing et le trucage est démasqué aux bords des objets ou des surfaces qui l’utilisent.

Notez cependant que dans le cas présent l’algorithme de displacement mapping est bien aidé par le fait qu’il s’agit d’une surface plane à la base. S’il faut lisser les contours de la géométrie et en même temps appliquer le displacement mapping, le coût sera bien entendu plus élevé.

Les GeForce GTX 400 encaissent ici beaucoup mieux la charge liée à la tessellation que les Radeon HD 5000. Avec un niveau de tessellation extrême, la GeForce GTX 460 est presque deux fois plus rapide que la Radeon HD 5870 dans ce test. L’utilisation d’un algorithme adaptatif qui va réguler le niveau de tessellation suivant les zones qui vont recevoir plus ou moins de détails, suivant la distance ou encore suivant la résolution de l’écran permet dans tous les cas des gains significatifs et sont plus représentatifs de ce que vont faire les développeurs. L’écart entre les GeForce et les Radeon se réduit alors, mais la GeForce GTX 400 conservent une avance significative.
Vos réactions

Top articles