Comprendre le rendu 3D étape par étape avec 3DMark11

Publié le 28/11/2011 par
Imprimer
Etape 6 : les sources de lumière principales
Après avoir préparé les données nécessaires à la création des ombres, 3DMark 11 s'attaque au rendu des sources de lumières principales, qui vont les prendre en compte. Ces sources de lumières peuvent être de type directionnel (soleil, lune…) ou spot. Il n'y a pas de spot dans la scène observée ici, mais bien un soleil. Pour couvrir les ombres qu'il génère sur l'ensemble de la scène, 5 shadow maps en cascade sont nécessaires. Pour ne pas qu'elles monopolisent trop de mémoire vidéo, leur calcul et le rendu de l'éclairage dans la zone du champ de vision qu'elles couvrent est entrelacé.

Cela implique que 3DMark 11 a besoin de 5 passes pour calculer l'éclairage directionnel qui simule celui du soleil (LD2a/b/c/d/e). Une passe supplémentaire est utilisée pour simuler l'illumination globale et plus particulièrement la lumière du soleil réfléchie par le sol, ce dernier devenant ainsi lui-même une source de lumière directionnelle de faible intensité (LD1). La lumière s'accumule ainsi petit à petit dans l'image en préparation :


[ Ciel ] + [ LD 1 ] + [ LD2a ] + [ LD2b ] + [ LD2c ] + [ LD2d ] + [ LD2e ]

Cette image en préparation, au format R11G11B10_FLOAT (HDR rapide en 32 bits) représente l'éclairage de surface dont le modèle est une combinaison de réflectance diffuse Oren-Nayar et de réflectance spéculaire Cook-Torrance sans oublier une atténuation atmosphérique de type Rayleigh-Mie. En plus des shadow maps, il prend en compte l'occlusion ambiante qui a été calculée précédemment.

Parallèlement à l'éclairage de surface, un éclairage volumétrique est calculé, voir la page dédiée pour plus de détails. Son coût en terme de performances est cependant intégré dans les chiffres donnés ci-dessous puisqu'il est traité dans le même pixel shader que l'éclairage de surface.

Quelques chiffres :

Temps de rendu : 24.7 ms (19.6 %)
Vertices avant tessellation : 18
Vertices après tessellation : -
Primitives : 6
Primitives éjectées du rendu : 0
Pixels : 8.13 millions
Eléments exportés par les PS : 14.18 millions
Texels : 390.91 millions
Instructions exécutées : 2567.59 millions
Quantité de données lues : 1979.2 Mo
Quantité de données écrites : 54.6 Mo
Vos réactions

Top articles