NVIDIA GeForce2 GTS

Publié le 26/04/2000 par
Imprimer

NVIDIA Shading Rasterizer, kézako ?

Mais le GeForce 2 n´est pas qu´un GeForce plus rapide, puisqu´il dispose d´une nouvelle unité de calcul appelée le Shading Rasterizer.

Jusqu’à présent le shading n’était pour la majorité d’entre vous que le fait d’utiliser une ombre ou de mapper un objet. Jusqu´alors lors, les cartes 3D utilisaient deux techniques assez simple d’interaction entre la lumière et les textures : le light map et le vertex ligting. La première consiste à utiliser une texture supplémentaire qui comprend la lumière et que l’on pose sur la texture à éclairer, la seconde consiste à utiliser pour chaque vertex et donc chaque polygone des intensités lumineuse différentes . Le GeForce 2 va beaucoup plus loin.

renderman.gif (3154 octets)En effet, ce processeur introduit une technique de programmation bien particulière au monde de la 3D professionnelle qui améliore le rendu visuelle de façon significative : les shaders. Cette technique est utilisée dans tous les logiciels de rendu 3D haut de gamme comme MentalRay ou encore RenderMan, MAYA. Elle permet de décrire avec précision les interactions entre la lumière, les objets, les textures et l’environnement d’une scène 3D.

Dans ces logiciels de rendu 3D, le shader est un fichier de description qui est utilisé au moment du calcul de l’image pour définir, par exemple, les variations de lumières sur un pixel ou sur un objet. Les shaders peuvent être divisé en plusieurs catégories :

  • material shader qui décrit l’aspect visible d’un objet (la texture par exemple)
  • volume shader qui décrit les volumes que peut rencontrer un rayon de lumière (le brouillard par exemple)
  • light shader qui décrit les caractéristiques d’une source lumineuse (sa position, son intensité, etc)
  • shadow shader qui décrit les caractéristique d’une ombre.
  • Texture shader qui ont plusieurs paramètres : la couleur, taille et hauteur. On peut ainsi avoir une formule mathématique à la place d’une texture (l’aspect du marbre par exemple)
  • Lens shader qui décrit l’interaction de la lumière à travers la camera

Les shaders sont donc soit des paramètres, soit des formules mathématiques qui sont associées à chaque pixel ou objet de la scène 3D pour avoir un rendu hyper réaliste. Chaque logiciel de rendu utilise un mode de programmation particulier pour ses shaders, en général une sorte de C. Ainsi chaque pixel est calculé à l’aide de shaders. Grâce au shaders, il est donc possible de programmer n´importe quel effet librement, et au pixel près.

En attendant l´arrivée de DirectX 8, qui gérera pleinement les Pixel Shader, NVIDIA nous propose avec le GeForce 2 un mode particulier de shader : le light shader, qu’il effectue en temps réel ! Pour se faire, chaque pixel est défini par deux textures : la texture de base et la "normal map". What is it ? Il s´agit en fait d´une texture indiquant pour chacun des pixel de la texture de base son orientation grâce à un code de couleur. Grâce à ces informations, le GeForce 2 est capable de calculer l´intensité et la direction de la lumière au pixel près … ce qui permet notamment d´effectuer un Bump Mapping très précis (appelé Dot Product 3), un peu comme le fait Matrox avec l´Environment Map Bump Mapping. Mais alors que l´EMBM nécessite 3 textures, le Dot Product 3 se contente de deux textures … et est donc en théorie bien plus rapide.

iom1_mini.jpg (19276 octets)iom2_mini.jpg (22954 octets)
Isle of Morg sans DotProduct3 BumpIsle of Morg avec DotProduct3 Bump

Reste qu´une fonction n´a que peu d´utilité si elle n´est pas utilisée dans des applications … et comme toute nouvelle fonction, ce n´est pas vraiment le cas des pixel shaders. En effet, à l´heure ou j´écris ces lignes, aucun jeu n´utilise le pixel shader. Il faudra donc se contenter des deux démos technologiques de NVIDIA, Isle of Morg et Evolva … et comme vous pouvez le voir sur les screenshots, le Bump Mapping de type Dot Produt 3 est très convaincant, tout comme l´Environment Map Bump Mapping de Matrox. L´impact sur les performances est toutefois plus réduit : en effet, sous Isle Of Morg, on perd un peu moins 4 images / s en activant le Dot Product 3 (on passe de 40.2 à 36.8 fps). A noter toutefois que sous Evolva l´implémentation du Dot Product 3 ne semble pas parfaite, puisque l´on passe de 45.5 fps sans à … 25.1 fps avec ! Messieurs, il va falloir optimiser votre code …

Vos réactions

Top articles