Ombrage

L’ombrage Gouraud, mis au point par Henri Gouraud en 1971, est l’une des premières techniques d’ombrage développées pour l’infographie 3D.

En infographie, l’ombrage désigne le processus de modification de la couleur d’un objet/surface/polygone dans la scène 3D, en fonction de choses comme (mais sans s’y limiter) l’angle de la surface par rapport aux lumières, sa distance par rapport aux lumières, son angle par rapport à la caméra et les propriétés du matériau (par ex.par exemple, la fonction de distribution de la réflectance bidirectionnelle) pour créer un effet photoréaliste.

Le shading est effectué pendant le processus de rendu par un programme appelé shader.

Angle de la surface par rapport à une source de lumièreModification

Le shading modifie les couleurs des faces d’un modèle 3D en fonction de l’angle de la surface par rapport à une ou plusieurs sources de lumière.

La première image ci-dessous a les faces de la boîte rendues, mais toutes dans la même couleur. Des lignes de bord ont été rendues ici aussi, ce qui rend l’image plus facile à voir.

La deuxième image est le même modèle rendu sans lignes de bord. Il est difficile de dire où se termine une face de la boîte et où commence la suivante.

La troisième image a un ombrage activé, ce qui rend l’image plus réaliste et permet de voir plus facilement quelle face est laquelle.

Image rendue d’une boîte. Cette image n’a pas d’ombrage sur ses faces, mais utilise plutôt des lignes de bord (également connues sous le nom de wireframe) pour séparer les faces et un contour plus gras pour séparer l’objet du fond.

Voici la même image avec les lignes supprimées ; la seule indication de la géométrie intérieure sont les points de la silhouette de l’objet.

Voici le même objet rendu avec un ombrage plat. La couleur des 3 faces avant visibles a été définie en fonction de leur angle (déterminé par le vecteur normal) par rapport aux sources de lumière.

Types d’éclairageEdit

Effets d’ombrage à partir d’un projecteur en utilisant un ray tracer

Lorsqu’un shader calcule la couleur du résultat, il utilise un modèle d’éclairage pour déterminer la quantité de lumière réfléchie à des points spécifiques de la surface. Différents modèles d’éclairage peuvent être combinés avec différentes techniques d’ombrage – alors que l’éclairage dit quelle quantité de lumière est réfléchie, l’ombrage détermine comment cette information est utilisée afin de calculer le résultat final. Il peut par exemple calculer l’éclairage uniquement à des points spécifiques et utiliser l’interpolation pour remplir le reste. Le shader peut également décider du nombre de sources de lumière à prendre en compte, etc.

Éclairage ambiantModification

Une source de lumière ambiante représente une source de lumière omnidirectionnelle, d’intensité fixe et de couleur fixe qui affecte tous les objets de la scène de manière égale (est omniprésente). Pendant le rendu, tous les objets de la scène sont éclairés avec l’intensité et la couleur spécifiées. Ce type de source lumineuse est principalement utilisé pour fournir à la scène une vue de base des différents objets qu’elle contient. C’est le type d’éclairage le plus simple à mettre en œuvre, et il modélise la façon dont la lumière peut être diffusée ou réfléchie de nombreuses fois, produisant ainsi un effet uniforme.

L’éclairage ambiant peut être combiné avec l’occlusion ambiante pour représenter l’exposition de chaque point de la scène, affectant la quantité de lumière ambiante qu’il peut refléter. Cela produit un éclairage diffus et non directionnel dans toute la scène, ne projetant pas d’ombres claires, mais avec des zones fermées et abritées assombries. Le résultat est généralement visuellement similaire à un jour couvert.

Éclairage ponctuelEdit

La lumière provient d’un seul point et se propage vers l’extérieur dans toutes les directions.

Éclairage ponctuelEdit

Modèle un projecteur : la lumière provient d’un seul point et se propage vers l’extérieur dans un cône.

Éclairage de zoneEdit

La lumière provient d’une petite zone sur un seul plan. (Un modèle plus réaliste qu’une source lumineuse ponctuelle.)

Éclairage directionnelEdit

Une source lumineuse directionnelle éclaire tous les objets de manière égale à partir d’une direction donnée, comme une zone lumineuse de taille infinie et à une distance infinie de la scène ; il y a de l’ombrage, mais il ne peut y avoir de décroissance de distance. C’est comme le soleil.

Distance falloffEdit

Deux boîtes rendues avec OpenGL. (Notez que la couleur des deux faces avant est la même, même si l’une d’elles est plus éloignée.)

Le même modèle rendu avec ARRIS CAD, qui met en œuvre l’atténuation de la distance pour rendre plus lumineuses les surfaces plus proches de l’œil.

Théoriquement, deux surfaces parallèles sont éclairées pratiquement de la même manière par une source lumineuse distante non bloquée, comme le soleil. L’effet de falloff de distance produit des images qui ont plus d’ombres et qui seraient donc réalistes pour des sources de lumière proximales.

L’image de gauche n’utilise pas le falloff de distance. Remarquez que les couleurs sur les faces avant des deux boîtes sont exactement les mêmes. Il peut sembler qu’il y ait une légère différence là où les deux faces se chevauchent directement, mais il s’agit d’une illusion d’optique causée par le bord vertical situé en dessous de l’endroit où les deux faces se rencontrent.

L’image de droite utilise effectivement le falloff de distance. Remarquez que la face avant de la boîte la plus proche est plus lumineuse que la face avant de la boîte arrière. De plus, le sol passe de la lumière à l’obscurité à mesure qu’il s’éloigne.

CalculEdit

Le falloff de distance peut être calculé de plusieurs façons :

  • Puissance de la distance – Pour un point donné à une distance x de la source lumineuse, l’intensité lumineuse reçue est proportionnelle à 1/xn.
    • Aucune (n = 0) – L’intensité lumineuse reçue est la même quelle que soit la distance entre le point et la source lumineuse.
    • Linéaire (n = 1) – Pour un point donné à une distance x de la source lumineuse, l’intensité lumineuse reçue est proportionnelle à 1/x.
    • Quadratique (n = 2) – C’est ainsi que l’intensité lumineuse diminue dans la réalité si la lumière a un chemin libre (c’est-à-dire sans brouillard ou autre chose dans l’air qui peut absorber ou diffuser la lumière). Pour un point donné à une distance x de la source lumineuse, l’intensité lumineuse reçue est proportionnelle à 1/x2.
  • Un certain nombre d’autres fonctions mathématiques peuvent également être utilisées.

Techniques d’ombrageModification

Lors de l’ombrage, une normale de surface est souvent nécessaire pour le calcul de l’éclairage. Les normales peuvent être précalculées et stockées pour chaque vertex du modèle.

Shading platEdit

Shading plat d’un cuboïde texturé

Ici, l’éclairage est évalué une seule fois pour chaque polygone (généralement pour le premier sommet du polygone, mais parfois pour le centroïde pour les mailles triangulaires), en fonction de la normale à la surface du polygone et en supposant que tous les polygones sont plats. La couleur calculée est utilisée pour l’ensemble du polygone, ce qui donne un aspect net aux coins. Cette méthode est généralement utilisée lorsque des techniques d’ombrage plus avancées sont trop coûteuses en termes de calcul. Les reflets spéculaires sont mal rendus avec un ombrage plat : S’il y a une grande composante spéculaire au sommet représentatif, cette luminosité est dessinée uniformément sur toute la face. Si un reflet spéculaire ne tombe pas sur le point représentatif, il est entièrement manqué. Par conséquent, la composante de réflexion spéculaire n’est généralement pas incluse dans le calcul de l’ombrage plat.

L’ombrage lisseEdit

Contrairement à l’ombrage plat où les couleurs changent de manière discontinue aux frontières des polygones, avec l’ombrage lisse, la couleur change de pixel en pixel, ce qui entraîne une transition de couleur lisse entre deux polygones adjacents. Habituellement, les valeurs sont d’abord calculées aux sommets et l’interpolation bilinéaire est utilisée pour calculer les valeurs des pixels entre les sommets des polygones. Les types d’ombrage lisse incluent l’ombrage Gouraud et l’ombrage Phong.

L’ombrage GouraudEdit
  1. Déterminer la normale à chaque sommet du polygone.
  2. Appliquer un modèle d’illumination à chaque sommet pour calculer l’intensité lumineuse à partir de la normale du sommet.
  3. Interpoler les intensités des sommets en utilisant l’interpolation bilinéaire sur le polygone de surface.

Problèmes:

  • Du fait que l’éclairage n’est calculé qu’aux sommets, les imprécisions (notamment des reflets spéculaires sur les grands triangles) peuvent devenir trop apparentes.
  • Les jonctions en T avec des polygones contigus peuvent parfois entraîner des anomalies visuelles. En général, les jonctions en T doivent être évitées.
L’ombrage PhongEdit

L’ombrage Phong est similaire à l’ombrage Gouraud, sauf qu’au lieu d’interpoler les intensités lumineuses, les normales sont interpolées entre les sommets et l’éclairage est évalué par pixel. Ainsi, les reflets spéculaires sont calculés de manière beaucoup plus précise que dans le modèle d’ombrage Gouraud.

  1. Calculer une normale N pour chaque sommet du polygone.
  2. Utiliser l’interpolation bilinéaire calculer une normale, Ni pour chaque pixel. (La normale doit être renormalisée à chaque fois.)
  3. Appliquer un modèle d’illumination à chaque pixel pour calculer l’intensité lumineuse à partir de Ni.

Deferred shadingEdit

Le shading différé est une technique d’ombrage par laquelle le calcul de l’ombrage est reporté à un stade ultérieur en effectuant un rendu en deux passes, ce qui augmente potentiellement les performances en ne rejetant pas les pixels ombrés coûteux. La première passe ne fait que capturer les paramètres de surface (tels que la profondeur, les normales et les paramètres de matériau), la seconde effectue l’ombrage réel et calcule les couleurs finales.:884

Autres approchesModification

L’ombrage Gouraud et l’ombrage Phong peuvent tous deux être mis en œuvre en utilisant l’interpolation bilinéaire. Bishop et Weimer ont proposé d’utiliser une expansion en série de Taylor de l’expression résultant de l’application d’un modèle d’illumination et de l’interpolation bilinéaire des normales. Ainsi, une interpolation polynomiale du second degré a été utilisée. Ce type d’interpolation biquadratique a été approfondi par Barrera et al, où un polynôme du second degré a été utilisé pour interpoler la lumière diffuse du modèle de réflexion Phong et un autre polynôme du second degré a été utilisé pour la lumière spéculaire.

L’interpolation linéaire sphérique (Slerp) a été utilisée par Kuij et Blake pour calculer à la fois la normale sur le polygone, ainsi que le vecteur dans la direction de la source lumineuse. Une approche similaire a été proposée par Hast, qui utilise l’interpolation quaternion des normales avec l’avantage que la normale aura toujours une longueur unitaire et que la normalisation lourde en calcul est évitée.

Aplat vs. smooth shadingEdit

Flat Smooth
Uses the same color for every pixel in a face – usually the color of the first vertex Smooth shading uses linear interpolation of either colors or normals between vertices
Edges appear more pronounced than they would on a real object because in reality almost all edges are somewhat round The edges disappear with this technique
Same color for any point of the face Each point of the face has its own color
Individual faces are visualized Visualize underlying surface
Not suitable for smooth objects Suitable for any objects
Less computationally expensive More computationally expensive