Rastérisation - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Texturage et éclairage

La base de la rastérisation ne permet néanmoins d'afficher que des objets avec des couleurs simples. La volonté de réalisme a poussé à l'invention des textures et des effets d'ombrage.

Texturage

L'application d'une texture se fait en parallèle tout le long du processus de rastérisation. Chaque sommet initial possède, en plus de ses coordonnées 3D, les coordonnées correspondante pour la texture à appliquer sur l'ensemble du modèle.

La véritable application de la texture ne se fait qu'au moment du calcul de la couleur de chaque pixel final. Les coordonnées de texture de chaque pixel sont calculées en modulant les valeurs des sommets, de la même manière que pour leur couleur émise et leur profondeur. La couleur émise de chaque pixel est alors multipliée par la valeur du texel correspondant à ces coordonnées.

Filtrage des textures

Néanmoins un problème se pose : plusieurs pixels peuvent afficher le même texel (le rendu devient flou) ou inversement plusieurs texels devraient être affichés dans le même pixel.

Pour résoudre ce problème, plusieurs techniques existent : le filtrage bilinéaire consiste à prendre la moyenne pondérée des texels autour du texel à afficher, le mipmapping consiste à utiliser une texture plus petite pour les objets éloignés afin d'accélérer les calculs du filtrage. Le filtrage anisotropique est une opération dérivée du mipmapping.

Calcul des ombres

L'application d'une ombre sur un objet consiste simplement à faire varier la couleur émise par chaque sommet en fonction de l'orientation de sa face par rapport aux lumières. Ce calcul se fait souvent en même temps que le calcul des coordonnées 2D.

L'opération se fait généralement en utilisant le produit scalaire de la normale de chaque face par la direction de chaque lumière. Si la normale de la face et la direction de la lumière sont perpendiculaires, alors le produit scalaire sera égal à zéro et la face sera noire.

Autres astuces et effets

Skybox

Le rendu du ciel se fait généralement à l'aide d'une skybox. Il s'agit d'un objet, souvent d'un cube, d'une demi-sphère ou d'un plan, recouvert d'une texture et englobant toute la scène. Il est toujours placé à distance fixe de la caméra, ce qui assure qu'il aura toujours la même dimension à l'écran.

L'ajout de nuage se fait généralement soit par rotation de cet objet (les nuages sont alors dans la texture), soit par des billboards (voir ci-dessous).

Billboards

Dans le but d'optimiser le rendu on peut utiliser des billboards, c'est-à-dire un objet en 2D qui fera toujours face à la caméra. Cette technique permet souvent de dessiner les arbres (très nombreux), les particles et projectiles, certains effets comme le feu, et parfois même les personnages. De manière générale ils servent à dessiner les objets très nombreux à l'écran.

Lorsque la caméra est loin d'un billboard cette technique ne soit voit pas, mais de près elle est très visible.

De nos jours les jeux vidéos professionnels utilisent de moins en moins cette technique, car la vitesse de rendu gagnée n'est plus assez importante pour justifier la dégradation de l'image finale.

Ombre portée

La création d'une ombre portée repose sur l'utilisation d'un stencil buffer. On détermine tout d'abord les endroits sur l'image 2D où se situent les ombres portées en remplissant le stencil buffer à cet endroit. On effectue alors un premier rendu normal avec une lumière atténuée, puis un deuxième avec la lumière normale mais avec le filtrage par stencil buffer activé. Le second rendu dessine par dessus le premier, sauf aux endroits filtrés par le stencil buffer, c'est-à-dire sur les parties ombrées de l'image.

Réflexion

L'ajout de reflets est une technique avancée qui nécessite également l'utilisation d'un stencil buffer.

On dessine tout d'abord l'ensemble de la scène. Ensuite, pour chaque zone réflective (miroir, métal, etc.) :

  • on dessine la zone réflective en ordonnant au processeur graphique de remplir le stencil buffer à l'endroit où sont placés les pixels
  • on applique ensuite une transformation à l'ensemble de la scène pour qu'elle se retrouve de l'autre côté du plan du miroir
  • on redessine ensuite l'ensemble de la scène (ou au moins les parties que l'on veut voir réfléchies) avec le filtrage activé, la scène est alors redessinée de l'autre côté du miroir mais le résultat n'est affiché que dans la zone du miroir lui-même

Pour ajouter des effets comme par exemple un reflet déformé, il suffit d'adapter la scène entre le premier et le deuxième rendu.

Page générée en 0.120 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise