The Reyes Image Rendering Architecture Robert L.Cook Loren Carpenter Edwin Catmull Reyes : Sommaire • • • • • • Introduction Analyse du problème Solutions choisies Description de l’algorithme de rendu Implémentation, extensions futures Conclusion INTRODUCTION Reyes : Introduction • Article publié en 1987. • Reyes = Radical EYE Software , Développé par Lucasfilm LTD. et utilisé par Pixar. • Reyes est un système dont l’architecture a été conçue afin de générer rapidement le rendu photo réaliste de scènes 3D complexes. ANALYSE DU PROBLEME Reyes : Analyse du problème (1/2) • Projet ambitieux Nécessité de repenser entièrement le processus de rendu. • Complexité : Complexité géométrique (Quantité et diversité des modèles …) Apparence photo réaliste (Lumières, matériaux, déformations …) Animation (2 h de film à 24 fps calculé en un an => ~ 3 min. par image) Reyes : Analyse du problème (2/2) • Exigences : Images de haute qualité (élimination des problèmes de moiré, d’aliasing, …) Flexibilité du logiciel (Incorporation de nouvelles techniques et indépendance vis à vis de l’environnement ) Linéarité du temps de rendu en fonction de la taille du modèle. SOLUTIONS CHOISIES Reyes : Solutions choisies (1/7) I. Simplification des calculs: - Utilisation d’un système de coordonnées adapté à chaque type de calcul (texturing, culling …) - Optimisation des calculs (vectorisation, pipeline, parallélisme,…) Reyes : Solutions choisies (2/7) II. Unité de modélisation : Micro polygones - Non limitation du nombre de primitives dans le modèle. -Uniformisation du type de données utilisé par les algorithmes. - Subdivision récursive de chaque primitive jusqu’aux micro polygones. Reyes : Solutions choisies (3/7) - Caractéristiques des micro polygones: - quadrilatères plats. - approximativement de la taille d’un demi pixel - shading effectué par application d’une seule couleur. (« shading » = Rendu final) Reyes : Solutions choisies (4/7) III. Utilisation des textures: 1. Pour la lumière : - approximation des effets de lumières non locaux (illumination globale,…). - lancer de rayon très coûteux, donc on approxime aussi les effets de lumières locaux (réflexion, réfraction, ombres…) par des textures. [environment maps, shadow maps] Reyes : Solutions choisies (5/7) 2.Pour les primitives : - couleur, nature des surfaces. - perturbation de la normale. - déformation (mouvements). [texture maps, bump maps, displacement maps] conséquence : beaucoup de textures, donc nécessité d’optimiser leurs accès. Reyes : Solutions choisies (6/7) C.A.T : Coherent Access Texture (i.e qui se calquent sans problème sur la surface) R.A.T : Random Acces Texture Par exemple, environnement map dépend de la normale de la surface, alors que le bump map est de type C.A.T Reyes : Solutions choisies (7/7) IV. Utilisation d’un stochastic sampling: - Point sampling : simple et puissant, mais crée de l’ aliasing, incompatible avec l’exigence de qualité d’image. - Stochastic sampling (méthode de Monte Carlo) remplace l’aliasing par du bruit, plus acceptable. (Utilisation de « jittering ») DESCRIPTION DE L’ ALGORITHME DE RENDU Reyes : Description de l’algorithme de rendu PRIMITIVES: bound : délimite les frontières de la primitive. dice : convertit une primitive en une grille de micro polygones. split : convertit une primitive en primitives. cull : ignore pour l’affichage. MICRO POLYGONES: shade : aspect de toute la grille. sample : division de la grille. back door : rendu « externe » visibility : screen space / z-buffer. filter : production des pixels. IMPLEMENTATION Reyes : Implémentation • • • Grosse consommation de mémoire pour le z-buffer Nécessité de modifier l’algorithme original par subdivision de l’espace en rectangles. Ajout de quelques fonctionnalités. Implémentation effective de cette version modifiée de l’algorithme en C. CONCLUSION Reyes : Conclusion • • • • Reyes répondait aux attentes. Points positifs : simplicité des calculs, gestion des textures (accès), … Possibilités d’amélioration: effectuer le sampling avant le shading, améliorer la représentation de certaines primitives par les micro polygones … Successeur = Renderman (Pixar).