Preview : nVidia GeForce 256

Publié le 31/08/1999 par
Imprimer

Le Transformation & Lighting

Comme nous l´avons vu précédemment, la grosse révolution avec le GeForce 256, c´est l´intégration sur le chip graphique d´un moteur dédié à la transformation géométrique et d´un moteur dédié à la gestion des éclairages dynamiques. Si la technologie n´a rien de nouveau en elle même – elle est utilisée depuis de nombreuses années sur les stations de travail et les cartes graphiques très haut de gamme – c´est la première fois qu´elle est disponible sur un chip assez abordable.

Mais avant tout, la transformation, à quoi ca sert ? En fait c´est très simple. Une scène 3D est composée de différents objets qui sont composés de différents polygones, qui sont composés vertex (ouf !). Pour créer une animation, on calcule diverses images intermédiaires, chacune étant un peu différente de l´autre, et il suffit ensuite de visualiser ces images à une vitesse suffisante pour avoir une animation et une impression de mouvement fluide. Les changements qui interviennent entre chaque image sont issus de calculs mathématiques influant sur la position des vertex, c´est la transformation. Il existe plusieurs types de transformations, pouvant bien sur êtres combinés :

  • Scalling : Agrandissement ou réduction de l´objet
  • Rotation : Rotation de l´objet
  • Translation : Déplacement linéaire de l´objet

scaling1.jpg (13131 octets)scaling2.jpg (15447 octets)

Agrandissement de la ´oiture par un facteur de 2

rotationz.jpg (15375 octets)rotationy.jpg (13795 octets)

Rotation de la ´oiture sur l´axe Z ou Y

translation1.jpg (22408 octets)translation2.jpg (22117 octets)

Translation de la ´oiture de gauche à droite

Jusqu´alors, dans nos pauvres PC, c´etait le processeur qui se chargeait d´appliquer les différentes matrices de transformations aux vecteurs formant les polygones afin d´obtenir un placement des objets 3D tel qu´on le désire. La transformation géométrique ne demande pas des calculs très complexes, mais ils doivent êtres effectués plusieurs millions de fois par seconde. Un vertex est composé pour sa part de 4 valeurs x, y, z et w, auquel on applique une matrice de transformation de 4x4. Cette matrice de transformation est elle même calculée à base de matrices intermédiaires pour chaque action (scalling, rotation ou translation). Une simple transformation demandera donc 16 multiplications et 12 additions, des calculs de base. Il est à noter que la matrice de transformation n´a pas besoin d´être recréée à chaque fois. Une même matrice peut donc être utilisée pour transformer un seul vertex … ou un millier, selon les besoins que l´on a.

transformation.gif (2946 octets)

La gestion des lumières dynamiques est elle aussi prise en charge par le GeForce 256, c´est le lighting. A l´heure actuelle on utilise deux méthodes pour gérer l´éclairage. La première, la plus utilisée pour le moment, c´est l´utilisation d´une light map. Il s´agit en fait d´une deuxième texture plus ou moins clair, qui rend donc les objets plus ou moins clairs selon leur éclairage. Mais il s´agit juste d´un changement de couleur, et il n´a rien de dynamique car basé sur une lightmap pré établie. Pour résoudre ce problème, on utilise des lumières dynamiques. Seul problème, ce type de lumière est bien plus gourmand en calcul. Il faut en effet calculer la réflexion des différentes sources lumineuses sur les différents objets, ce qui va encore une fois charger le processeur central … ou le processeur graphique dans le cas du GeForce 256, qui intègre un moteur dédié à la gestion du lighting. Il deviendra désormais possible d´utiliser plus d´éclairages dynamiques, voir plus tard de se passer totalement de l´utilisation d´une light map.

q3.jpg (34941 octets)

La lumière de la roquette est dynamique, alors que celle générée par la flamme en haut à droite est en fait gérée par une light map statique.

Vos réactions

Top articles