Ombrage
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.
Types d’éclairageEdit
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
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
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
- Déterminer la normale à chaque sommet du polygone.
- Appliquer un modèle d’illumination à chaque sommet pour calculer l’intensité lumineuse à partir de la normale du sommet.
- 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.
- Calculer une normale N pour chaque sommet du polygone.
- Utiliser l’interpolation bilinéaire calculer une normale, Ni pour chaque pixel. (La normale doit être renormalisée à chaque fois.)
- 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 |