Utilisation de la théorie de la décision et de métriques perceptuelles pour accélérer le rendu temps-réel de scènes complexes avec illumination globale (surfaces diffuses ET non diffuses)

Tout ceci est partie d'une constatation simple...

Est-il utile de concentrer des calculs important lorsque le matériau est peu réfléchissant, lorsque celui-ci comporte un vernis qui limitera la contribusion diffuse, lorsque l'environnement réflechi ne contient que peu de détails (uniquement des variations basses fréquences) ou que celui-ci est très sombre, etc. Il nous est apparu nécessaire de prendre en compte TOUTES ces conditions pour optimiser efficacement les calculs à effectuer.

Pour tenir compte de ces facteurs et les évaluer nous avons exploitée une approche efficace basée sur la théorie de la décision.

Puisque le résultat final est dédié à un observateur humain, nous avons tenu compte des caractéristiques de son système visuel pour estimer encore plus finement quels étaient réellement les phénomènes pour lesquels des approximations pouvaient être réalisés sans effets notables pour l'oeil humain et quels étaient ceux particulièrement influents et perceptibles.

- Caractéristiques du système

- Rendu temps-réel OpenGL + optimisations OpenGL avancees
- Illumination globale diffuse calculée par notre radiosité hiérarchique.
- Texturation
- Reflexions non diffuse par 'environment maps' filtrées par la BRDF.
- Multi-Texturation pour materiaux multi-couches (e.g. Bois + Verni)

- Résultats principaux apportés par notre approche basée sur la décision de la théorie incluant des métriques perceptuelles

- Gestion des textures diffuses (Article EGRW 01).
- Simplification du maillage résultat (Article TOG 03).
- Gestion des réflexions non diffuses (Article TOG 03).

Figure 1 : Système développé (cliquer pour agrandir)


- Approche basée sur la théorie de la décision

Le rendu réaliste de scènes complexes en 3D requiert des capacités de calculs importantes. Or, les applications interactives utilisent déjà une partie des ressources disponibles (comme la mémoire, ou la charge CPU), il devient donc plus difficile de mettre au point une solution.
Nous allons donc essayer de mieux allouer les ressources disponibles pour optimiser l'exécution (par exemple la qualité d'image ou la fréquence d’affichage).

Notre approche est basée sur la théorie de la décision. Cette théorie importante permet d’aider un décideur à choisir de façon optimale entre un ensemble de solutions alternatives, à la lumière de leurs conséquences respectives. Typiquement, le décideur doit choisir entre un ensemble d'actions possibles dont chacune a une efficacité prévue. Souvent, l'action choisie est celle qui maximise ce critère.
Ce formalisme peut être adapté pour le rendu interactif. Le problème que nous essayons de résoudre peut être énoncé de la façon suivante : sachant qu’il existe des contraintes, quelles sont les meilleures actions de rendu possibles qui optimiseront le rendu des images ?



Figure 2 : Fondements de la Théorie de la Décision.

1. Contraintes :
Nous devons d’abord définir les contraintes du système, qui sont de deux types : limitations de ressource et décisions de conception. Dans une application de rendu qui utilise des ressources matérielles, le nombre de textures peut être contraint par la quantité de mémoire vidéo : c’est une limitation de ressources. Dans une application de raytracing, la quantité de rayons à former est contraint par le temps de calcul de chaque trame : c’est une décision de conception.

2. Actions de rendu :
Nous devons considérer les actions de rendu affectées par les contraintes et pour chacune de ces actions, les approximations que le système pourrait exécuter pour respecter les contraintes.
Dans un algorithme de raytracing, les actions de rendu possibles peuvent être : "calculez le rayon primaire", "calcul de la contribution de la source lumineuse", "calcul de la contribution spéculaire"...
Dans beaucoup de cas, les approximations d'une action de rendu forment un ensemble ordonné d’alternatives. Dans le cas des niveaux de détail par exemple,  les différents niveaux du détail de l’affichage de l’objet sont des approximations possibles.
L'ensemble de toutes les approximations utilisées est appelé l’état de rendu graphique du système. Cet état peut être modifié pour chaque trame ou de façon asynchrone.
Ensuite, nous devons décrire les liens entre les contraintes et les actions de rendu en définissant le coût de chacune, par rapport à une contrainte spécifique
Dans une application de raytracing, le coût de chaque action de rendu peut être évaluée sur la base du nombres rayons à générer. Pour une application OpenGL, le coût peut être défini comme le nombre de primitives à évaluer.

3. Efficacité:
Afin de sélectionner les actions de rendu à mettre en œuvre, nous devons être capable de mesurer l'efficacité d'un état de rendu. Celui-ci est évalué en comparant l’état de l’image produite avec l’image ‘parfaite’qui serait produite en l’absence de toutes contraintes avec le maximum de précision offert par l'algorithme de rendu choisi.
Un des aspects importants de la théorie de la décision dans le cadre du rendu graphique interactif, est la possibilité d’ordonner les différents états de rendu afin d'obtenir une prise de décision optimale. Elle permet de créer des méthodes rapides pour évaluer l’efficacité, car il est seulement nécessaire d’ordonner les différents états, plûtot que d’estimer les valeurs de chaque état, de façon isolée.

4. Allocation des ressources :
L’ordonnancement et la prise de décision sont régies par un algorithme d'allocation des ressources dont le rôle est de déterminer quel est l’état du rendu qui minimise le coût et maximise l'efficacité.
Malheureusement, l’optimisation de l’efficacité,  en présence de contraintes, est NP complet.  Alors que quelques approximations existent pour un cas général, dans beaucoup d’autres, il est nécessaire concevoir un algorithme qui prenne en compte les spécificités du problème et de son environnement.
Il est important de préciser que dans la mise au point de systèmes interactifs, le coût informatique nécessaire à la prise de décisions doit être négligeable par rapport au coût du rendu graphique. En particulier,  le coût de calcul de différentes approximations de rendu, ainsi que celui engendré par les algorithmes d’allocation de ressource doivent être extrêmement faible.

- Métriques perceptuelles

Les métriques de qualité image que nous employons dans nos prises de décision sont basées sur le sytstème de perception humain. En effet, bien connaître ses limitations permet d'adapter le rendu en présentant à l'observateur les effets et les phénomènes auxquels il est sensible et en supprimant ceux qui sont que plus difficilement perceptibles.

Nos métriques sont basées sur (voir ici) :

- TVI (Threshold Versus Intensity : Sensibilité à l'Intensité)
- CSF (Constrast Sensitivity Function : Sensibilité au Contraste)
- MF&EM (Masking Function based Elevation Map : Sensibilité aux fréquences contenues dans les motifs)



Figure 3 : Elevation Maps (en niveaux de gris) pour quelques textures (Pavage, Marbre, Parquet, Bois). Le noir indique une insensibilité aux variations fréquentielles du motif, le gris et le blanc indiquent une sensibilité plus forte (par exemple pour les lignes du pavage).


Figure 4 : Estimation de la qualité image par nos métriques pour l'éclairement diffus (QD) et les réflexions non diffuses (QE). La scène test, rendue en temps-réel présente une sphère de bois dont la texture, le vernis, les conditions d'éclairement, l'environnement varient. En fonction de ces divers paramètres, il est possible d'observer que les métriques calculées identifient clairement quels sont les phénomènes qui sensibilisent l'observateur. Les métriques sont dissociées et non normalisées (il n'est donc pas possible de comparer un QD à un QE). Pour plus de détail sur l'utilisation des métriques par le système, il est prié de se référer à l'article. Sommairement, elles permettent d'ordonner entre elles les réflexions diffuses d'un côté puis les réflexions spéculaires d'un autre.


- Résultats obtenus


Figure 5 : "Decision theory based radiosity mesh simplification". Simplification du maillage calculée par la radiosité pour n'afficher que les éléments essentiels à la perception d'un observateur. Par exemple, il est ici inutile d'exploiter un maillage très fin pour une zone peu éclairée et dont la texture apportera des hautes fréquences masquant les détails d'illumination. Par contre, le plafond ne présente pas de texture et des variations d'illumination forte qui doivent être finement représentées. Cette approche est extrêmement utile en radiosité car les conditions d'illumination globales sont souvent plus "lissées" que l'éclairement direct initial (qui lui produira dès le début des calculs un maillage très fin sur les variations d'illumination apportées par les sources lumineuses de la scène).


Figure 6 : "Perceptually-Based Texture Caching". Utilisation de métriques perceptuelles pour réduire l'échantillonnage des textures (et augmenter ainsi les performances d'affichage tout en diminuant l'occupation mémoire). Les images du haut sont rendues avec le maximum de détail à 3 images par seconde. Les images du bas elles exploitent notre technique et sont rendues à 40 images par seconde sans dégradation notable de la qualité image.


Figure 7 : "Perceptually-Based Texture Caching". Choix des niveaux de mip-maps pour le rendu temps-réel des textures en fonction de la position de l'observateur, de la sensibilité de l'observateur, des conditions d'éclairement, du contenu fréquentiel des textures. Pour une texture donnée, Ti, les barres de niveau indiquent le mip-map à choisir (lors d'un zoom, le niveau de la texture observée descend donc au minimum, soit la résolution maximale).


Figure 8 : "Perceptually-Based Environment-Maps Filtering and Rendering". Notre technique a également été employée pour la prise en compte des réflexions spéculaires (Environment Maps filtrés par la BRDF ; i.e. Convolution) et ce en fonction des matériaux employés, des conditions d'éclairement, de l'environnement, de la sensibilité de l'observateur, etc. Ici, chaque barre indique le degré d'importance des rélexions non diffuses présentes à l'écran. En fonction de l'observation, l'ordre évolue (pour un zoom, certaines réflexions deviennent même inutiles, ce qui permet d'optimiser l'affichage et l'occupation mémoire).