Rendu à plage dynamique élevée - High-dynamic-range rendering

Une comparaison du rendu standard à ouverture fixe (à gauche) avec le rendu HDR (à droite) dans le jeu vidéo Half-Life 2: Lost Coast

Le rendu à plage dynamique élevée ( rendu HDRR ou HDR ), également connu sous le nom d' éclairage à plage dynamique élevée , est le rendu de scènes d' infographie en utilisant des calculs d' éclairage effectués en plage dynamique élevée (HDR). Cela permet de préserver les détails qui peuvent être perdus en raison de la limitation des taux de contraste . Les jeux vidéo , les films générés par ordinateur et les effets spéciaux en bénéficient car ils créent des scènes plus réalistes qu'avec des modèles d'éclairage plus simplistes.

La société de processeurs graphiques Nvidia résume la motivation du HDR en trois points : les choses lumineuses peuvent être très lumineuses, les choses sombres peuvent être vraiment sombres et les détails peuvent être vus dans les deux.

Histoire

L'utilisation de l'imagerie à plage dynamique élevée (HDRI) en infographie a été introduite par Greg Ward en 1985 avec son logiciel open source de rendu et de simulation d'éclairage Radiance qui a créé le premier format de fichier à conserver une image à plage dynamique élevée. HDRI a langui pendant plus d'une décennie, freiné par une puissance de calcul, un stockage et des méthodes de capture limités. Ce n'est que récemment que la technologie permettant de mettre l'HDRI en pratique a été développée.

En 1990, Nakamé et al. , a présenté un modèle d'éclairage pour les simulateurs de conduite qui a mis en évidence la nécessité d'un traitement à plage dynamique élevée dans les simulations réalistes.

En 1995, Greg Spencer a présenté des effets d'éblouissement basés sur la physique pour les images numériques au SIGGRAPH , fournissant un modèle quantitatif pour les reflets et l' éblouissement dans l'œil humain.

En 1997, Paul Debevec a présenté Recovering high dynamic range radiance maps from photographies au SIGGRAPH, et l'année suivante a présenté Rendering objets synthétiques en scènes réelles . Ces deux articles ont posé les bases de la création de sondes lumineuses HDR d'un emplacement, puis d'utilisation de cette sonde pour éclairer une scène rendue.

HDRI et HDRL (éclairage basé sur l'image à plage dynamique élevée) ont, depuis lors, été utilisés dans de nombreuses situations dans des scènes 3D dans lesquelles l'insertion d'un objet 3D dans un environnement réel nécessite les données de la sonde lumineuse pour fournir des solutions d'éclairage réalistes.

Dans les applications de jeu, Riven: The Sequel to Myst en 1997 a utilisé un shader de post-traitement HDRI directement basé sur l'article de Spencer. Après l' E3 2003, Valve a sorti un film de démonstration de son moteur Source restituant un paysage urbain dans une plage dynamique élevée. Le terme n'a pas été couramment utilisé à nouveau jusqu'à l'E3 2004, où il a attiré beaucoup plus d'attention lorsqu'Epic Games a présenté Unreal Engine 3 et Valve a annoncé Half-Life 2: Lost Coast en 2005, couplé à des moteurs open source tels que OGRE 3D et open- des jeux source comme Nexuiz .

Exemples

L'un des principaux avantages du rendu HDR est que les détails d'une scène avec un rapport de contraste élevé sont préservés. Sans HDR, les zones trop sombres sont découpées en noir et les zones trop claires sont découpées en blanc. Ceux-ci sont représentés par le matériel sous la forme d'une valeur à virgule flottante de 0,0 et 1,0 pour le noir pur et le blanc pur, respectivement.

Un autre aspect du rendu HDR est l'ajout d'indices perceptuels qui augmentent la luminosité apparente. Le rendu HDR affecte également la façon dont la lumière est préservée dans les phénomènes optiques tels que les réflexions et les réfractions , ainsi que dans les matériaux transparents tels que le verre. Dans le rendu LDR, les sources lumineuses très lumineuses d'une scène (comme le soleil) sont plafonnées à 1,0. Lorsque cette lumière est réfléchie, le résultat doit alors être inférieur ou égal à 1,0. Cependant, dans le rendu HDR, les sources lumineuses très lumineuses peuvent dépasser la luminosité de 1,0 pour simuler leurs valeurs réelles. Cela permet aux réflexions sur les surfaces de maintenir une luminosité réaliste pour les sources lumineuses vives.

Limitations et compensations

Œil humain

L' œil humain peut percevoir des scènes avec un rapport de contraste dynamique très élevé , autour de 1 000 000:1. L'adaptation est réalisée en partie grâce à des ajustements de l' iris et des changements chimiques lents, qui prennent un certain temps (par exemple, le retard à être capable de voir lors du passage d'un éclairage clair à une obscurité totale). À tout moment, la plage statique de l'œil est plus petite, environ 10 000:1. Cependant, cela reste supérieur à la plage statique de la plupart des technologies d'affichage.

Sortie sur écrans

Bien que de nombreux fabricants affirment un nombre très élevé, les écrans plasma , les écrans LCD et écrans CRT peuvent fournir seulement une fraction du rapport de contraste trouvé dans le monde réel, et ceux - ci sont généralement mesurés dans des conditions idéales. Le contraste simultané du contenu réel dans des conditions de visualisation normales est nettement inférieur.

Une certaine augmentation de la plage dynamique des moniteurs LCD peut être obtenue en réduisant automatiquement le rétroéclairage pour les scènes sombres. Par exemple, LG appelle cette technologie « Digital Fine Contrast » ; Samsung le décrit comme un "rapport de contraste dynamique". Une autre technique consiste à disposer d'un ensemble de rétroéclairages LED plus lumineux et plus sombres, par exemple avec des systèmes développés par BrightSide Technologies.

Les écrans OLED ont de meilleures capacités de plage dynamique que les écrans LCD, similaires au plasma mais avec une consommation d'énergie inférieure. Rec. 709 définit l'espace colorimétrique pour la TVHD et Rec. 2020 définit un espace colorimétrique plus vaste mais encore incomplet pour la télévision à ultra-haute définition .

Floraison légère

L'éclosion de lumière est le résultat de la diffusion dans le cristallin humain, que le cerveau humain interprète comme un point lumineux dans une scène. Par exemple, une lumière vive en arrière-plan semblera se répandre sur les objets au premier plan. Cela peut être utilisé pour créer une illusion pour que le point lumineux semble être plus lumineux qu'il ne l'est réellement.

Éclater

L'évasement est la diffraction de la lumière dans le cristallin humain, résultant en des "rayons" de lumière émanant de petites sources lumineuses, et peut également entraîner des effets chromatiques. Il est plus visible sur les sources lumineuses ponctuelles en raison de leur petit angle visuel.

Sinon, les systèmes de rendu HDR doivent mapper toute la plage dynamique de ce que l'œil verrait dans la situation rendue sur les capacités de l'appareil. Ce mappage de tons se fait par rapport à ce que voit la caméra de scène virtuelle, combiné à plusieurs effets plein écran , par exemple pour simuler la poussière dans l'air qui est éclairée par la lumière directe du soleil dans une caverne sombre, ou la diffusion dans l'œil.

Le mappage de tons et les shaders de floraison peuvent être utilisés ensemble pour aider à simuler ces effets.

Mappage des tons

Le mappage de tons, dans le contexte du rendu graphique, est une technique utilisée pour mapper les couleurs d'une plage dynamique élevée (dans laquelle les calculs d'éclairage sont effectués) à une plage dynamique inférieure qui correspond aux capacités du périphérique d'affichage souhaité. En règle générale, le mappage est non linéaire - il préserve suffisamment de plage pour les couleurs sombres et limite progressivement la plage dynamique pour les couleurs vives. Cette technique produit souvent des images visuellement attrayantes avec un bon niveau de détail et de contraste. Divers opérateurs de mappage de tons existent, allant des simples méthodes en temps réel utilisées dans les jeux informatiques à des techniques plus sophistiquées qui tentent d'imiter la réponse perceptive du système visuel humain.

Applications dans le divertissement informatique

À l' heure actuelle HDRR a été répandu dans les jeux , principalement pour PC , Microsoft 's Xbox 360 et Sony ' s PlayStation 3 . Il a également été simulé sur les systèmes PlayStation 2 , GameCube , Xbox et Amiga . Sproing Interactive Media a annoncé que son nouveau moteur de jeu Athena pour Wii prendra en charge le HDRR, ajoutant la Wii à la liste des systèmes qui le prennent en charge.

Dans la PAO et les jeux, les valeurs de couleur sont souvent traitées plusieurs fois. Comme cela inclut la multiplication et la division (qui peuvent accumuler des erreurs d'arrondi ), il est utile d'avoir la précision et la plage étendues des formats entiers 16 bits ou virgule flottante 16 bits . Ceci est utile quelles que soient les limitations mentionnées ci-dessus dans certains matériels.

Développement du HDRR via DirectX

Les effets de shader complexes ont commencé leurs jours avec la sortie du Shader Model 1.0 avec DirectX 8. Le Shader Model 1.0 a illuminé les mondes 3D avec ce qu'on appelle l'éclairage standard. L'éclairage standard, cependant, a eu deux problèmes:

  1. La précision de l'éclairage était limitée à des nombres entiers de 8 bits, ce qui limitait le rapport de contraste à 256:1. En utilisant le modèle de couleur HVS , la valeur (V) ou la luminosité d'une couleur a une plage de 0 à 255. Cela signifie que le blanc le plus brillant (une valeur de 255) n'est que de 255 niveaux plus brillant que la teinte la plus foncée au-dessus du noir pur (c'est-à-dire : valeur de 0).
  2. Les calculs d'éclairage étaient basés sur des nombres entiers , ce qui n'offrait pas autant de précision car le monde réel ne se limite pas aux nombres entiers.

Le 24 décembre 2002, Microsoft a publié une nouvelle version de DirectX . DirectX 9.0 a introduit le Shader Model 2.0, qui offrait l'un des composants nécessaires pour permettre le rendu d'images à plage dynamique élevée : la précision de l'éclairage n'était pas limitée à seulement 8 bits. Bien que 8 bits soit le minimum dans les applications, les programmeurs pouvaient choisir jusqu'à un maximum de 24 bits pour la précision de l'éclairage. Cependant, tous les calculs étaient toujours basés sur des nombres entiers. L' une des premières cartes graphiques à prendre en charge DirectX 9.0 en mode natif était ATI de Radeon 9700 , bien que l'effet n'a pas été programmé dans les jeux pendant des années. Le 23 août 2003, Microsoft a mis à jour DirectX vers DirectX 9.0b, qui a permis le profil Pixel Shader 2.x (étendu) pour la série Radeon X d' ATI et la série d'unités de traitement graphique GeForce FX de NVIDIA .

Le 9 août 2004, Microsoft a de nouveau mis à jour DirectX vers DirectX 9.0c. Cela a également exposé le profil Shader Model 3.0 pour le langage de shader de haut niveau (HLSL). La précision d'éclairage du Shader Model 3.0 a un minimum de 32 bits par opposition au minimum de 8 bits de 2.0. De plus, tous les calculs de précision d'éclairage sont désormais basés sur la virgule flottante . NVIDIA déclare que les rapports de contraste utilisant Shader Model 3.0 peuvent atteindre 65535:1 avec une précision d'éclairage de 32 bits. Au début, le HDRR n'était possible que sur les cartes vidéo capables d'effets Shader-Model-3.0, mais les développeurs de logiciels ont rapidement ajouté la compatibilité pour Shader Model 2.0. En passant, lorsqu'il est appelé Shader Model 3.0 HDR, le HDRR est vraiment fait par le mélange FP16. Le mélange FP16 ne fait pas partie du Shader Model 3.0, mais est principalement pris en charge par les cartes également compatibles avec le Shader Model 3.0 (les exceptions incluent la série GeForce 6200). Le mélange FP16 peut être utilisé comme un moyen plus rapide de rendre HDR dans les jeux vidéo.

Shader Model 4.0 est une fonctionnalité de DirectX 10, qui a été publiée avec Windows Vista. Shader Model 4.0 permet un rendu HDR 128 bits, par opposition au HDR 64 bits dans Shader Model 3.0 (bien que cela soit théoriquement possible sous Shader Model 3.0).

Shader Model 5.0 est une fonctionnalité de DirectX 11. Il permet une compression 6:1 des textures HDR sans perte notable, ce qui prévaut sur les versions précédentes des techniques de compression de texture DirectX HDR.

Développement de HDRR via OpenGL

Il est possible de développer le HDRR via le shader GLSL à partir d' OpenGL 1.4.

Moteurs de jeu prenant en charge le rendu HDR

Voir également

Les références

Liens externes