Rendu (infographie) - Rendering (computer graphics)

Une variété de techniques de rendu appliquées à une seule scène 3D
Une image créée en utilisant POV-Ray 3.6

Le rendu ou la synthèse d'images est le processus de génération d'une image photoréaliste ou non photoréaliste à partir d'un modèle 2D ou 3D au moyen d'un programme informatique . L'image résultante est appelée rendu . Plusieurs modèles peuvent être définis dans un fichier de scène contenant des objets dans un langage ou une structure de données strictement définis . Le fichier de scène contient des informations sur la géométrie, le point de vue, la texture , l' éclairage et l' ombrage décrivant la scène virtuelle. Les données contenues dans le fichier de scène sont ensuite transmises à un programme de rendu pour être traitées et sorties vers une image numérique ou un fichier d'image graphique matricielle . Le terme "rendu" est analogue au concept d' impression d'une scène par un artiste . Le terme "rendu" est également utilisé pour décrire le processus de calcul des effets dans un programme de montage vidéo pour produire la sortie vidéo finale.

Le rendu est l'un des sous-thèmes majeurs de l'infographie 3D , et en pratique il est toujours connecté aux autres. C'est la dernière étape majeure du pipeline graphique , donnant aux modèles et à l'animation leur apparence finale. Avec la sophistication croissante de l'infographie depuis les années 1970, c'est devenu un sujet plus distinct.

Le rendu a des utilisations dans l' architecture , les jeux vidéo , les simulateurs , les effets visuels de films et de télévision et la visualisation de conception, chacun utilisant un équilibre différent de fonctionnalités et de techniques. Une grande variété de moteurs de rendu sont disponibles. Certains sont intégrés à des packages de modélisation et d'animation plus importants, d'autres sont autonomes et d'autres sont des projets open source gratuits. À l'intérieur, un moteur de rendu est un programme soigneusement conçu basé sur plusieurs disciplines, notamment la physique de la lumière , la perception visuelle , les mathématiques et le développement de logiciels .

Bien que les détails techniques des méthodes de rendu varient, les défis généraux à relever pour produire une image 2D sur un écran à partir d'une représentation 3D stockée dans un fichier de scène sont gérés par le pipeline graphique d'un périphérique de rendu tel qu'un GPU . Un GPU est un appareil spécialement conçu qui aide un processeur à effectuer des calculs de rendu complexes. Si une scène doit paraître relativement réaliste et prévisible sous un éclairage virtuel, le logiciel de rendu doit résoudre l' équation de rendu . L'équation de rendu ne tient pas compte de tous les phénomènes d'éclairage, mais agit plutôt comme un modèle d'éclairage général pour les images générées par ordinateur.

Dans le cas des graphiques 3D, les scènes peuvent être pré-rendues ou générées en temps réel. Le pré-rendu est un processus lent et intensif en calcul qui est généralement utilisé pour la création de films, où les scènes peuvent être générées à l'avance, tandis que le rendu en temps réel est souvent effectué pour les jeux vidéo 3D et d'autres applications qui doivent créer des scènes dynamiquement. Les accélérateurs matériels 3D peuvent améliorer les performances de rendu en temps réel.

Usage

Lorsque la pré-image (généralement une esquisse filaire ) est terminée, le rendu est utilisé, qui ajoute des textures bitmap ou des textures procédurales , des lumières, un mappage de relief et une position relative par rapport à d'autres objets. Le résultat est une image complète que le consommateur ou le spectateur visé voit.

Pour les animations de films, plusieurs images (frames) doivent être rendues et assemblées dans un programme capable de réaliser une animation de ce type. La plupart des programmes d'édition d'images 3D peuvent le faire.

Caractéristiques

Une image rendue peut être comprise en termes d'un certain nombre de caractéristiques visibles. La recherche et le développement de rendu ont été largement motivés par la recherche de moyens de les simuler efficacement. Certains se rapportent directement à des algorithmes et des techniques particuliers, tandis que d'autres sont produits ensemble.

  • Ombrage  - comment la couleur et la luminosité d'une surface varient avec l'éclairage
  • Mappage de texture  - une méthode d'application de détails aux surfaces
  • Bump-mapping  - une méthode de simulation de bosses à petite échelle sur des surfaces
  • Brouillard/milieu participant  - comment la lumière diminue lors du passage dans une atmosphère ou un air non clair
  • Ombres  - l'effet d'obstruction de la lumière
  • Ombres douces  - obscurité variable causée par des sources lumineuses partiellement obscurcies
  • Réflexion  – réflexion semblable à un miroir ou très brillante
  • Transparence (optique) , transparence (graphique) ou opacité  – transmission nette de la lumière à travers des objets solides
  • Translucidité  - transmission de la lumière fortement dispersée à travers des objets solides
  • Réfraction  – courbure de la lumière associée à la transparence
  • Diffraction  - courbure, propagation et interférence de la lumière passant par un objet ou une ouverture qui perturbe le rayon
  • Illumination indirecte  - surfaces éclairées par la lumière réfléchie par d'autres surfaces, plutôt que directement par une source lumineuse (également appelée illumination globale)
  • Caustiques (une forme d'éclairage indirect) - réflexion de la lumière sur un objet brillant, ou focalisation de la lumière à travers un objet transparent, pour produire des reflets brillants sur un autre objet
  • Profondeur de champ  - les objets semblent flous ou flous lorsqu'ils sont trop loin devant ou derrière l'objet mis au point
  • Flou de mouvement  - les objets semblent flous en raison d'un mouvement à grande vitesse ou du mouvement de la caméra
  • Rendu non photoréaliste  - rendu de scènes dans un style artistique, destiné à ressembler à une peinture ou à un dessin

Technique

Rendu d'un terrain fractal par ray marching

De nombreux rendus des algorithmes ont été recherchés, et le logiciel utilisé pour le rendu peut employer un certain nombre de techniques différentes pour obtenir une image finale.

Tracer chaque particule de lumière dans une scène est presque toujours complètement impraticable et prendrait un temps fou. Même le traçage d'une partie suffisamment grande pour produire une image prend un temps démesuré si l'échantillonnage n'est pas intelligemment restreint.

Par conséquent, quelques familles lâches de techniques de modélisation du transport de la lumière plus efficaces ont émergé :

  • la pixellisation , y compris le rendu par ligne de balayage , projette géométriquement les objets de la scène sur un plan d'image, sans effets optiques avancés ;
  • la coulée de rayons considère la scène comme observée d'un point de vue spécifique, calculant l'image observée uniquement sur la base de la géométrie et des lois optiques très basiques de l'intensité de la réflexion, et peut-être en utilisant des techniques de Monte Carlo pour réduire les artefacts ;
  • Le lancer de rayons est similaire au lancer de rayons, mais utilise une simulation optique plus avancée et utilise généralement des techniques de Monte Carlo pour obtenir des résultats plus réalistes à une vitesse souvent supérieure à plusieurs ordres de grandeur.

Quatrième type de technique de transport de la lumière, la radiosité n'est généralement pas mise en œuvre en tant que technique de rendu, mais calcule plutôt le passage de la lumière lorsqu'elle quitte la source lumineuse et éclaire les surfaces. Ces surfaces sont généralement rendues à l'écran en utilisant l'une des trois autres techniques.

Les logiciels les plus avancés combinent deux ou plusieurs des techniques pour obtenir des résultats suffisamment bons à un coût raisonnable.

Une autre distinction est entre les algorithmes d' ordre d'image , qui itèrent sur les pixels du plan de l'image, et les algorithmes d' ordre d'objet , qui itèrent sur les objets de la scène. En général, l'ordre des objets est plus efficace, car il y a généralement moins d'objets dans une scène que de pixels.

Rendu et rastérisation des lignes de balayage

Une représentation de haut niveau d'une image contient nécessairement des éléments dans un domaine différent des pixels. Ces éléments sont appelésprimitif s. Dans un dessin schématique, par exemple, les segments de ligne et les courbes peuvent être des primitives. Dans une interface utilisateur graphique, les fenêtres et les boutons peuvent être les primitives. Dans le rendu de modèles 3D, les triangles et les polygones dans l'espace peuvent être des primitifs.

Si une approche de rendu pixel par pixel (ordre des images) est peu pratique ou trop lente pour une tâche, alors une approche de rendu primitive par primitive (ordre des objets) peut s'avérer utile. Ici, une boucle à travers chacune des primitives, détermine les pixels de l'image qu'elle affecte et modifie ces pixels en conséquence. C'est ce qu'on appelle la rastérisation , et c'est la méthode de rendu utilisée par toutes les cartes graphiques actuelles .

La rastérisation est souvent plus rapide que le rendu pixel par pixel. Premièrement, de grandes zones de l'image peuvent être vides de primitives ; la rastérisation ignorera ces zones, mais le rendu pixel par pixel doit les traverser. Deuxièmement, la rastérisation peut améliorer la cohérence du cache et réduire le travail redondant en tirant parti du fait que les pixels occupés par une seule primitive ont tendance à être contigus dans l'image. Pour ces raisons, la rastérisation est généralement l'approche de choix lorsqu'un rendu interactif est requis ; cependant, l'approche pixel par pixel peut souvent produire des images de meilleure qualité et est plus polyvalente car elle ne dépend pas d'autant d'hypothèses sur l'image que la rastérisation.

L'ancienne forme de rastérisation se caractérise par le rendu d'un visage entier (primitif) en une seule couleur. En variante, la rastérisation peut être effectuée d'une manière plus compliquée en restituant d'abord les sommets d'un visage, puis en restituant les pixels de ce visage sous la forme d'un mélange des couleurs des sommets. Cette version de la pixellisation a dépassé l'ancienne méthode car elle permet aux graphiques de s'écouler sans textures compliquées (une image pixellisée lorsqu'elle est utilisée face à face a tendance à avoir un effet très semblable à un bloc si elle n'est pas recouverte de textures complexes ; les faces ne sont pas lisses car il n'y a pas de changement de couleur progressif d'une primitive à l'autre). Cette nouvelle méthode de rastérisation utilise les fonctions d'ombrage plus exigeantes de la carte graphique et offre toujours de meilleures performances car les textures plus simples stockées en mémoire utilisent moins d'espace. Parfois, les concepteurs utiliseront une méthode de rastérisation sur certaines faces et l'autre méthode sur d'autres en fonction de l'angle auquel cette face rencontre d'autres faces jointes, augmentant ainsi la vitesse et ne nuisant pas à l'effet global.

Lancer de rayon

Dans le lancer de rayons, la géométrie qui a été modélisée est analysée pixel par pixel, ligne par ligne, du point de vue vers l'extérieur, comme si elle projetait des rayons depuis le point de vue. Lorsqu'un objet est intersecté , la valeur de la couleur au point peut être évaluée à l'aide de plusieurs méthodes. Dans le plus simple, la valeur de couleur de l'objet au point d'intersection devient la valeur de ce pixel. La couleur peut être déterminée à partir d'une texture-map . Une méthode plus sophistiquée consiste à modifier la valeur de la couleur par un facteur d'éclairage, mais sans calculer la relation avec une source lumineuse simulée. Pour réduire les artefacts, un certain nombre de rayons dans des directions légèrement différentes peuvent être moyennés.

Le lancer de rayons consiste à calculer la "direction de vue" (à partir de la position de la caméra) et à suivre progressivement le "rayon projeté" à travers des "objets 3D solides" dans la scène, tout en accumulant la valeur résultante de chaque point dans l'espace 3D. Ceci est lié et similaire au "ray tracing" sauf que le raycast n'est généralement pas "rebondi" sur les surfaces (où le "ray tracing" indique qu'il trace le chemin des lumières, y compris les rebonds). « Ray casting » implique que le rayon lumineux suit une trajectoire rectiligne (ce qui peut inclure le déplacement à travers des objets semi-transparents). Le rayon projeté est un vecteur qui peut provenir de la caméra ou du point final de la scène ("back to front", ou "front to back"). Parfois, la valeur lumineuse finale est dérivée d'une "fonction de transfert" et parfois elle est utilisée directement.

Des simulations grossières de propriétés optiques peuvent être en outre employées : un simple calcul du rayon de l'objet au point de vue est effectué. Un autre calcul est fait de l'angle d'incidence des rayons lumineux provenant de la ou des sources lumineuses, et à partir de ceux-ci ainsi que des intensités spécifiées des sources lumineuses, la valeur du pixel est calculée. Une autre simulation utilise un éclairage tracé à partir d'un algorithme de radiosité, ou une combinaison des deux.

tracé laser

Spiral Sphere et Julia, Detail , une image générée par ordinateur créée par l'artiste visuel Robert W. McGregor en utilisant uniquement POV-Ray 3.6 et son langage de description de scène intégré.

Le lancer de rayons vise à simuler le flux naturel de lumière, interprété comme des particules. Souvent, les méthodes de lancer de rayons sont utilisées pour approximer la solution de l' équation de rendu en lui appliquant des méthodes de Monte Carlo . Certaines des méthodes les plus utilisées sont chemin suivi , le traçage de chemin bidirectionnel ou transport léger Metropolis , mais aussi des méthodes semi - réalistes sont en cours d' utilisation, comme Whitted style Ray Tracing , ou hybrides. Alors que la plupart des implémentations laissent la lumière se propager sur des lignes droites, des applications existent pour simuler des effets d'espace-temps relativistes.

Dans un rendu final de qualité de production d'une œuvre tracée par rayons, plusieurs rayons sont généralement tirés pour chaque pixel et tracés non seulement jusqu'au premier objet d'intersection, mais plutôt, à travers un certain nombre de « rebonds » séquentiels, en utilisant les lois connues de des optiques telles que « l'angle d'incidence est égal à l'angle de réflexion » et des lois plus avancées qui traitent de la réfraction et de la rugosité de la surface.

Une fois que le rayon rencontre une source lumineuse, ou plus probablement une fois qu'un nombre limité de rebonds a été évalué, alors l'illumination de surface à ce point final est évaluée à l'aide des techniques décrites ci-dessus, et les changements en cours de route à travers les divers rebonds évalués pour estimer une valeur observée au point de vue. Tout cela est répété pour chaque échantillon, pour chaque pixel.

Dans le traçage des rayons de distribution , à chaque point d'intersection, plusieurs rayons peuvent être générés. Dans le traçage de chemin , cependant, un seul rayon ou aucun n'est tiré à chaque intersection, en utilisant la nature statistique des expériences de Monte Carlo .

En tant que méthode de force brute, le lancer de rayons a été trop lent pour être pris en compte en temps réel, et jusqu'à récemment trop lent même pour être pris en compte pour des courts métrages de tout degré de qualité, bien qu'il ait été utilisé pour des séquences d'effets spéciaux et dans la publicité. , où une courte portion de séquences de haute qualité (peut-être même photoréalistes ) est requise.

Cependant, les efforts d'optimisation pour réduire le nombre de calculs nécessaires dans les parties d'un travail où les détails ne sont pas élevés ou ne dépendent pas des caractéristiques du lancer de rayons ont conduit à une possibilité réaliste d'utilisation plus large du lancer de rayons. Il existe maintenant des équipements de lancer de rayons accélérés par le matériel, au moins en phase de prototype, et des démos de jeux qui montrent l'utilisation d'un logiciel en temps réel ou de lancer de rayons matériel.

Radiosité

La radiosité est une méthode qui tente de simuler la manière dont les surfaces directement éclairées agissent comme des sources de lumière indirectes qui éclairent d'autres surfaces. Cela produit un ombrage plus réaliste et semble mieux capturer « l' ambiance » d'une scène d'intérieur. Un exemple classique est une façon dont les ombres « embrassent » les coins des pièces.

La base optique de la simulation est qu'une certaine lumière diffusée à partir d'un point donné sur une surface donnée est réfléchie dans un large spectre de directions et illumine la zone qui l'entoure.

La technique de simulation peut varier en complexité. De nombreux rendus ont une estimation très approximative de la radiosité, illuminant simplement très légèrement une scène entière avec un facteur appelé ambiance. Cependant, lorsque l'estimation avancée de la radiosité est associée à un algorithme de lancer de rayons de haute qualité, les images peuvent présenter un réalisme convaincant, en particulier pour les scènes d'intérieur.

Dans la simulation de radiosité avancée, les algorithmes récursifs à éléments finis « rebondissent » la lumière entre les surfaces du modèle, jusqu'à ce qu'une certaine limite de récursivité soit atteinte. La coloration d'une surface de cette manière influence la coloration d'une surface voisine, et vice versa. Les valeurs d'éclairage résultantes dans tout le modèle (y compris parfois pour les espaces vides) sont stockées et utilisées comme entrées supplémentaires lors de l'exécution de calculs dans un modèle de lancer de rayons ou de lancer de rayons.

En raison de la nature itérative/récursive de la technique, les objets complexes sont particulièrement lents à émuler. Avant la normalisation du calcul rapide de la radiosité, certains artistes numériques utilisaient une technique appelée vaguement fausse radiosité en assombrissant les zones des cartes de texture correspondant aux coins, joints et creux, et en les appliquant via l'auto-éclairage ou le mappage diffus pour le rendu des lignes de balayage. Même maintenant, les calculs avancés de radiosité peuvent être réservés au calcul de l'ambiance de la pièce, à partir de la lumière se reflétant sur les murs, le sol et le plafond, sans examiner la contribution des objets complexes à la radiosité - ou des objets complexes peuvent être remplacés dans le calcul de la radiosité. avec des objets plus simples de taille et de texture similaires.

Les calculs de radiosité sont indépendants du point de vue, ce qui augmente les calculs impliqués, mais les rend utiles pour tous les points de vue. S'il y a peu de réarrangement des objets de radiosité dans la scène, les mêmes données de radiosité peuvent être réutilisées pour un certain nombre d'images, faisant de la radiosité un moyen efficace d'améliorer la planéité de la diffusion de rayons, sans affecter sérieusement le temps de rendu global par image .

Pour cette raison, la radiosité est un composant essentiel des principales méthodes de rendu en temps réel et a été utilisée du début à la fin pour créer un grand nombre de films d'animation 3D récents bien connus.

Échantillonnage et filtrage

Un problème auquel tout système de rendu doit faire face, quelle que soit l'approche qu'il adopte, est le problème d'échantillonnage . Essentiellement, le processus de rendu essaie de décrire une fonction continue de l'espace image aux couleurs en utilisant un nombre fini de pixels. En conséquence du théorème d'échantillonnage de Nyquist-Shannon (ou théorème de Kotelnikov), toute forme d'onde spatiale pouvant être affichée doit être constituée d'au moins deux pixels, ce qui est proportionnel à la résolution de l'image . En termes plus simples, cela exprime l'idée qu'une image ne peut pas afficher des détails, des pics ou des creux de couleur ou d'intensité, qui sont inférieurs à un pixel.

Si un algorithme de rendu naïf est utilisé sans aucun filtrage, des fréquences élevées dans la fonction d'image entraîneront la présence d'un alias laid dans l'image finale. L'aliasing se manifeste généralement par des irrégularités , ou des bords irréguliers sur les objets où la grille de pixels est visible. Afin de supprimer l'aliasing, tous les algorithmes de rendu (s'ils doivent produire de belles images) doivent utiliser une sorte de filtre passe-bas sur la fonction d'image pour supprimer les hautes fréquences, un processus appelé antialiasing .

Optimisation

En raison du grand nombre de calculs, un travail en cours n'est généralement rendu en détail qu'en fonction de la partie du travail en cours de développement à un moment donné. la sortie cible est le lancer de rayons avec radiosité. Il est également courant de ne rendre que des parties de la scène avec un niveau de détail élevé et de supprimer des objets qui ne sont pas importants pour ce qui est actuellement en cours de développement.

Pour le temps réel, il convient de simplifier une ou plusieurs approximations courantes et de régler les paramètres exacts du paysage en question, qui est également réglé sur les paramètres convenus pour obtenir le meilleur rapport qualité-prix.

Noyau académique

La mise en œuvre d'un moteur de rendu réaliste comporte toujours un élément de base de simulation physique ou d'émulation - un calcul qui ressemble ou fait abstraction d'un processus physique réel.

Le terme « à base physique » indique l'utilisation de modèles physiques et d'approximations plus générales et largement acceptées en dehors du rendu. Un ensemble particulier de techniques apparentées s'est progressivement établi dans la communauté de l'équarrissage.

Les concepts de base sont modérément simples, mais difficiles à calculer ; et un seul algorithme ou approche élégant a été insaisissable pour les moteurs de rendu plus généraux. Afin de répondre aux exigences de robustesse, de précision et de praticité, une implémentation sera une combinaison complexe de différentes techniques.

La recherche sur le rendu s'intéresse à la fois à l'adaptation des modèles scientifiques et à leur application efficace.

L'équation du rendu

C'est le concept académique/théorique clé du rendu. Il sert d'expression formelle la plus abstraite de l'aspect non perceptuel du rendu. Tous les algorithmes plus complets peuvent être considérés comme des solutions à des formulations particulières de cette équation.

Signification : à une position et une direction particulières, la lumière sortante (L o ) est la somme de la lumière émise (L e ) et de la lumière réfléchie. La lumière réfléchie étant la somme de la lumière entrante (L i ) provenant de toutes les directions, multipliée par la réflexion de la surface et l'angle entrant. En reliant la lumière vers l'extérieur à la lumière vers l'intérieur, via un point d'interaction, cette équation représente l'ensemble du « transport de lumière » – tout le mouvement de la lumière – dans une scène.

La fonction de distribution de réflectance bidirectionnelle

La fonction de distribution de réflectance bidirectionnelle (BRDF) exprime un modèle simple d'interaction de la lumière avec une surface comme suit :

L'interaction lumineuse est souvent approchée par les modèles encore plus simples : réflexion diffuse et réflexion spéculaire, bien que les deux puissent AUSSI être des BRDF.

Optique géométrique

Le rendu s'intéresse pratiquement exclusivement à l'aspect particulaire de la physique de la lumière – connue sous le nom d' optique géométrique . Traiter la lumière, à son niveau de base, comme des particules rebondissant est une simplification, mais appropriée : les aspects ondulatoires de la lumière sont négligeables dans la plupart des scènes et sont nettement plus difficiles à simuler. Les phénomènes d'aspect d'onde notables incluent la diffraction (comme on le voit dans les couleurs des CD et des DVD ) et la polarisation (comme on le voit dans les LCD ). Les deux types d'effet, si nécessaire, sont réalisés par un ajustement orienté apparence du modèle de réflexion.

Perception visuelle

Bien qu'il reçoive moins d'attention, une compréhension de la perception visuelle humaine est précieuse pour le rendu. Ceci est principalement dû au fait que les affichages d'images et la perception humaine ont des portées restreintes. Un moteur de rendu peut simuler une large gamme de luminosité et de couleur de la lumière, mais les affichages actuels (écran de cinéma, écran d'ordinateur, etc.) ne peuvent pas gérer autant de choses et quelque chose doit être supprimé ou compressé. La perception humaine a également des limites et n'a donc pas besoin de recevoir des images à grande échelle pour créer du réalisme. Cela peut aider à résoudre le problème de l'ajustement des images dans les écrans et, en outre, suggérer quels raccourcis pourraient être utilisés dans la simulation de rendu, car certaines subtilités ne seront pas perceptibles. Ce sujet connexe est la cartographie des tons .

Les mathématiques utilisées dans le rendu comprennent : l'algèbre linéaire , le calcul , les mathématiques numériques , le traitement du signal et les méthodes de Monte Carlo .

Le rendu des films s'effectue souvent sur un réseau d'ordinateurs étroitement connectés, appelé ferme de rendu .

L'état actuel de l'art en matière de description d'images 3D pour la création de films est le langage de description de scène Mental Ray conçu par Mental Images et le langage RenderMan Shading conçu par Pixar (comparez avec des formats de fichiers 3D plus simples tels que VRML ou des API telles que OpenGL et DirectX adaptées pour les accélérateurs matériels 3D).

D'autres moteurs de rendu (y compris ceux propriétaires) peuvent et sont parfois utilisés, mais la plupart des autres moteurs de rendu ont tendance à manquer une ou plusieurs des fonctionnalités souvent nécessaires comme un bon filtrage des textures, la mise en cache des textures, les shaders programmables, les types de géométrie haut de gamme comme les cheveux, la subdivision ou les surfaces nurbs avec tesselation à la demande, mise en cache de la géométrie, lancer de rayons avec mise en cache de la géométrie, mappage d'ombres de haute qualité , implémentations rapides ou sans brevet. D'autres fonctionnalités très recherchées de nos jours peuvent inclure le rendu photoréaliste interactif  (IPR) et le rendu/ombrage matériel.

Chronologie des idées importantes publiées

Rendu d'un satellite ESTCube-1

Voir également

Les références

Lectures complémentaires

Liens externes