Preview : NVIDIA GeForce 6800 Ultra

Publié le 14/04/2004 par et
Imprimer
Vertex Shader
Bien que la partie ayant subi le plus de retouches soit incontestablement les pixel pipelines, NVIDIA a également offert un petit lifting à ses unités de Vertex Shader. Premièrement leur nombre passe de 3 à 6. Rien de plus simple que de doubler le nombre d´unités pour augmenter les performances. NVIDIA ne s´en est donc pas privé. Mais ce n´est pas tout. Ils ont profité de quelques améliorations comme la possibilité de travailler en MIMD (co-issue). Chaque unité de Vertex Shader peut donc soit effectuer une opération sur 4 composantes soit effectuer 2 opérations : une sur 3 composantes et une sur 1 composante.

Les Vertex Shader d´ATI sont ici encore plus avancés puisqu´ils permettent tout le temps de faire 1 opérations sur 4 composantes en plus d´une opération sur une composante. La solution proposée aujourd´hui par NVIDIA se situe donc entre celle des GeForce FX et celle des Radeon. Celles-ci devraient donc garde l´avantage mais il ne faut pas oublier qu´ATI n´en a actuellement que 4 contre 6 pour le GeForce 6800 Ultra.


En pratique, ici sous RightMark 3D, le GeForce 6800 Ultra offre logiquement le meilleur résultat en vitesse de transformation des polygones. Le GeForce FX 5950U voit ses performances varier fortement selon que l’on demande à passer par le T&L Fixe, les Vertex Shader 1.1 ou les Vertex Shader 2.0 : a priori, ce dernier dispose encore de fonctions de T&L câblées, ce qui explique ses performances dans ce mode, alors que 6800 et 9800 émulent intégralement le T&L fixe via leur unités de vertex shading.
Vertex Shader 3.0
NVIDIA est le premier fabricant à offrir le support complet des Shader Model 3.0. Cela inclut donc le support des Vertex Shader 3.0. Outre une augmentation de la longueur des shader exécutables, ils introduisent 2 nouveautés intéressantes.


Le première se nomme geometry instancing et permet de mélanger ensemble plusieurs batch de polygones. Un batch de polygone est un ensemble de polygones. Plus les batchs sont gros, plus leur traitement est efficace et plus la consommation CPU est réduite.

Les Vertex Shader 3.0 permettent d´associer dans le même batch des polygones qui ne le seraient pas en temps normal. Ceci à pour conséquences directe une augmentation des performances qui peut être très importante. Par exemple, dans un jeu de stratégie en temps réel, au lieu d´envoyer les véhicules un par un au GPU, il est possible d´en faire un gros paquet et d´envoyer le tout pour être traité en une fois.

La seconde est très certainement la plus grosse nouveauté des Pixel et Vertex Shader 3.0 réunis. Elle se nomme vertex texturing et comme son nom l´indique, permet aux Vertex Shader d´accéder à des textures. Dans ce cas, il ne faut plus voir la texture comme une décoration appliquées sur une face mais comme un tableau de données ou comme une table de déformation.

Ces textures peuvent permettre de faire du displacement mapping. Mais attention, il ne s´agit toujours pas de ce dont nous parlait Matrox. A la grande différence de la solution de Matrox, le vertex texturing ne permet pas de créer de la géométrie pour améliorer la qualité graphique. Il permet de déformer les objets mais pas pour les embellir. Uniquement pour les modifier.

Les intérêts sont cependant nombreux. Par exemple il est envisageable de pouvoir afficher un sol enneigé qui se voie déformer d´une manière très réaliste par les pas. Ou encore la création de vagues volumétriques. Ici encore seule l´imagination des développeurs face à cette technologie lui donnera ou pas de l´intérêt.

Notez que quand nous disons qu´il n´est pas possible de réaliser du displacement maping tel que décrit par Matrox, ce n´est pas tout à fait correct. C´est possible mais il faut alors faire des aller retour dans le pipeline graphique complet (des vertex shader aux pixel pipelines) et se servir d´un pixel shader pour effectuer la tesselation (affinement de la géométrie).


Démo de NVIDIA pour le GeForce 6800 Ultra

Dans le GeForce 6800, chaque unité de Vertex Shader dispose de sa propre unité de texturing qui est bien distincte de celles des pixel pipelines. Elle est également différente puisqu´à l´inverse des unités classiques elle ne peut pas faire de filtrage bilinéaire. 4 accès à des textures peuvent être réalisés par Vertex Shader. Emuler du filtrage bilinéaire est donc en théorie possible. Reste à voir si ça a vraiment un intérêt.
Vos réactions

Top articles