Sommaire : Que sont les shaders et comment fonctionnent-ils ?
À quel point un tissu semble-t-il mat ? Comment la lumière se reflète-t-elle sur du bois laqué ? Les shaders décrivent ces propriétés des matériaux dans le rendu. Pour obtenir une visualisation 3D convaincante, la géométrie, les matériaux, la lumière et la composition de l'image doivent s'harmoniser. Cet aperçu explique les principes de base et montre ce qu'ils impliquent pour les visualisations de matériaux et de surfaces, les images de produits et les scènes d'intérieur. Tu trouveras des exemples de notre travail dans le studio de rendu 3D.
Que sont les shaders ?
Les shaders sont des programmes destinés au calcul des données graphiques. Lors du rendu, ils déterminent notamment la manière dont les surfaces réagissent à la lumière. Les graphismes en temps réel utilisent des étapes programmables telles que les shaders de sommets et de fragments sur le GPU. Lors du rendu hors ligne, les matériaux sont souvent construits à l'aide de nœuds ; selon le moteur de rendu, les calculs s'effectuent sur le CPU ou le GPU. Les shaders ne sont donc pas systématiquement limités aux cartes graphiques. Les principes techniques sont expliqués dans la documentation Khronos sur GLSL et la documentation Microsoft sur HLSL.
Un artiste CGI de Danthree Studio examine des échantillons de tissu pour une Visualisation 3D. Les shaders jouent un rôle important dans la reproduction des matériaux réalistes utilisés dans les rendus 3D photoréalistes.
Que sont les shaders de sommets ?
Un shader de sommets traite les sommets d'un modèle. Il calcule, par exemple, leur position en vue de leur affichage à l'écran et transmet d'autres données, telles que les coordonnées de texture, aux étapes suivantes. Il ne détermine pas à lui seul la couleur finale de chaque pixel.
Que sont les shaders de fragment ?
Un shader de fragment traite les fragments générés lors de la rastérisation. À partir des paramètres de matériau, des textures et, le cas échéant, des données d'éclairage, il calcule les valeurs de couleur et d'autres résultats. Un fragment ne correspond pas nécessairement à un pixel fini dans l'image finale.
Comment fonctionnent les shaders en 3D ?
Voici comment se présente un pipeline de rastérisation simplifié : maillage, shader de sommets, rastérisation, shader de fragments, tests supplémentaires et fusion pour former l'image. La rastérisation génère des fragments à partir des surfaces projetées. Les textures et les coordonnées UV peuvent faciliter le calcul. Il s'agit d'un exemple de graphisme en temps réel, et non d'une description générale de tous les procédés de rendu.
Les éditeurs de matériaux d'Unreal Engine et de Unity permettent de mettre en place ce type de calculs. Les moteurs de rendu hors ligne tels qu'Arnold, V-Ray et Redshift utilisent également des systèmes de matériaux et de nœuds. Un matériau combine des shaders, des paramètres et, le cas échéant, des textures. La documentation d'Unreal sur les matériaux et celle de Unity sur le Lit Shader présentent différentes implémentations.
Différents types de cartes de shaders pour les modèles 3D : carte de normales, carte diffuse, carte spéculaire. Chacune de ces cartes a une fonction spécifique permettant de rendre les surfaces d'un modèle plus réalistes.
Quel rôle jouent les shaders dans la création de visualisations 3D photoréalistes ?
Le rendu basé sur la physique (PBR) utilise des modèles de comportement de la lumière, notamment pour la réflexion, la rugosité et la conservation de l'énergie. Cela facilite la représentation réaliste des matériaux lorsque la lumière change. Cependant, cela ne garantit pas une correspondance avec un produit réel : les propriétés des matériaux, l'échelle, l'éclairage et les références doivent être cohérents. L'article « Physically-Based Shading at Disney » constitue une contribution fondamentale dans ce domaine. Le projet Barbas, avec ses images de cheminées et son récit visuel au défilement, illustre un exemple d'application tiré de notre travail.
Pour les marques de mobilier et de décoration d'intérieur, le langage visuel est tout aussi déterminant que la mise en valeur des matériaux. Le bois, le tissu, la pierre et le métal doivent s'harmoniser avec le produit ; la lumière, la perspective et l'aménagement de l'espace doivent quant à eux correspondre à l'image de la marque. Cela vaut aussi bien pour les rendus de salons que pour les visualisations de salles de bains et les images de cuisines.
Piètement en bois d'une chaise en 3D, créé à l'aide de shaders PBR. Ces shaders simulent des textures de bois et des matériaux de surface réalistes dans des rendus 3D photoréalistes.
Quels sont les différents types de shaders ?
Le terme « shader » est utilisé à différents niveaux. Les shaders de sommets et de fragments désignent des étapes de traitement techniques ; les shaders de surface et de volume décrivent la représentation des matériaux. Tu rencontreras fréquemment les approches suivantes :
Phong et Blinn-Phong : modèles d'éclairage classiques permettant un calcul simplifié des reflets. Il ne s'agit pas de modèles physiques complets des matériaux, mais ils peuvent s'avérer suffisants pour certaines applications en temps réel ou pour des représentations stylisées.
Shaders de surface PBR : ils décrivent des propriétés telles que la rugosité, le caractère métallique, la réflexion ou la transmission à l'aide de paramètres inspirés de la physique. La mise en œuvre concrète dépend du moteur de rendu. Pour en savoir plus, consulte le glossaire consacré au rendu basé sur la physique (Physically Based Rendering).
Shaders dans le ray tracing : les propriétés des matériaux sont ici évaluées aux points où les rayons rencontrent les surfaces. Le ray tracing est un procédé de rendu et non un type de matériau. Il peut également être utilisé en temps réel. Notre glossaire sur le ray tracing explique ces différences.
Shaders volumétriques : ils décrivent la diffusion, l'absorption et, le cas échéant, l'auto-luminescence au sein d'un volume, comme dans le cas du brouillard, de la fumée ou de la vapeur. La diffusion de la lumière sous une surface solide, par exemple de la cire, est en revanche souvent décrite à l'aide d'un modèle « subsurface » intégré au matériau de surface.
Les nœuds et l'OSL : il s'agit de moyens de créer ou de programmer des shaders, et non de types de matériaux à part entière. Les nœuds relient visuellement des fonctions ; l'Open Shading Language permet de programmer des shaders dans les moteurs de rendu pris en charge. La documentation d'Arnold sur l'OSL en donne un exemple.
Représentation 3D photoréaliste d'un lit rembourré avec tissu velours, créée avec des shaders haut de gamme. Les shaders permettent une représentation réaliste des textures du tissu et des reflets de la surface.
Qu'en est-il des différentes cartes des shaders 3D ?
Les cartes de texture fournissent des valeurs différentes selon l'emplacement spatial pour un shader, par exemple la couleur ou la rugosité. Dans le cas des textures d'image, c'est souvent le mappage UV qui détermine quelle zone de l'image apparaît sur quelle surface du modèle. Les textures procédurales et d'autres projections peuvent également fonctionner sans dépliage UV manuel.
Toutes les matières ne nécessitent pas toutes les textures. Ce qui est déterminant, ce sont les entrées du shader et les propriétés que le produit doit présenter :
Couleur de base : couleur de base du matériau, sans éclairage ni reflets précalculés dans la texture. Son utilisation pour les reflets diffus ou métalliques dépend du modèle de matériau.
Rugosité: Décrit la rugosité microscopique. Elle influe sur la netteté ou l'étendue des reflets.
Metalness : dans le modèle Metallic-Roughness, distingue le comportement métallique du comportement non métallique. Les peintures, les revêtements et les surfaces mixtes nécessitent une répartition appropriée des matériaux.
Carte de normales: Modifie l'orientation des normales de surface pour le calcul de l'éclairage. Cela permet de faire ressortir des détails visibles sans modifier réellement la géométrie ni la silhouette de l'objet.
Carte de déplacement: Elle déplace géométriquement la surface et peut ainsi également modifier la silhouette. Une carte de hauteur peut également être utilisée pour le bump mapping ; dans ce cas, elle ne modifie que le calcul de l'éclairage.
Specular et IOR : ces paramètres décrivent, selon le modèle de matériau, les propriétés de réflexion et l'indice de réfraction. Ils peuvent également être pertinents dans les shaders PBR modernes, et pas seulement dans les anciens workflows Specular-Glossiness.
Opacité et découpe : permettent de contrôler l'opacité ou les zones découpées, par exemple les motifs ajourés. La réfraction de la lumière à travers le verre nécessite en outre un modèle de transmission et de réfraction adapté.
Émission : décrit les sources lumineuses autonomes, par exemple pour les écrans. Le fait qu'elles éclairent ou non l'environnement, et dans quelle mesure, dépend du moteur de rendu et de ses paramètres.
Occlusion ambiante: Approxime l'occlusion dans les creux et aux points de contact. Elle ne remplace pas un calcul complet de l'éclairage et ne doit pas entraîner un double assombrissement.
Pour les textures d'image, tu dois vérifier l'échelle, l'orientation, les raccords et les distorsions sur le modèle. Un test de tiling indique uniquement si une image de texture peut être répétée sur ses bords. Il ne remplace ni la vérification du matériau à la lumière, ni la comparaison avec une référence. Notre article sur le « texture baking » explique comment préparer les informations de texture.
Comment choisir le bon shader ?
Pour choisir un shader, le matériau, l'application visée et les références disponibles sont plus importants qu'une liste d'effets aussi longue que possible. Ces cinq points t’aideront à y voir plus clair :
1) Matériau et usage
Le tissu d'ameublement, le bois, la pierre et le métal réagissent différemment à la lumière. Une couche de vernis nécessite des réglages différents de ceux d'un métal brossé. Pour les applications en temps réel, l'appareil cible et la fréquence d'images souhaitée limitent la complexité des matériaux ; pour les images de produits rendues, c'est en revanche le temps de rendu disponible qui prime.
Gros plan sur une chaise moderne, visualisée à l'aide de shaders PBR pour un rendu réaliste des matériaux et des textures en 3D. Les shaders PBR sont essentiels pour les rendus basés sur la physique.
2) Moteur de rendu et workflow
Un matériau ne peut pas toujours être transféré tel quel d'un moteur de rendu à un autre. Vérifie les shaders, les canaux de texture, les espaces colorimétriques et les formats d'exportation pris en charge. Les principes de base des matériaux d'Unreal Engine et la documentation relative à Unity HDRP Lit indiquent les paramètres attendus par chaque application.
3) Lumière et identité de marque
Évalue les matériaux dans des conditions d'éclairage reproductibles, puis dans la scène prévue. Les environnements HDRI, les sources lumineuses surfaciques et les profils d'éclairage IES ont chacun un rôle différent. Le moteur de rendu, la gestion des couleurs et la sortie influencent également le résultat. Le langage visuel résulte de cette interaction, et non du shader seul.
4) Performance & mise à l'échelle
Pour les variantes de produit, les matériaux réutilisables et les versions traçables sont utiles. Pour les visionneuses en temps réel, il faut vérifier les canaux de matériaux pris en charge, les tailles de textures et les appareils cibles. Une exportation au format glTF ou GLB ne reprend pas automatiquement toutes les fonctionnalités d'un shader hors ligne.
5) Équipe & expérience
Le travail sur les matériaux implique observation et comparaison : dans quel sens se déroule le tissage, quelle est la largeur d'un reflet, quel est l'aspect de la surface dans les détails ? Notre équipe CGI associe cette compréhension du produit à la conception de l'éclairage, de la perspective et de l'espace de marque.
Conclusion : que sont les shaders et à quoi servent-ils ?
Les shaders définissent le calcul des matériaux dans le rendu. Pour obtenir des images de produits convaincantes, la géométrie, les textures, la lumière et la gestion des couleurs doivent aussi être cohérentes. Nous ajustons les matériaux numériques à tes références et les utilisons dans des images de produits, des scènes d’intérieur et des animations. Nous définissons les éléments nécessaires à partir de ton produit et de son utilisation prévue.
Deux artistes CGI de Danthree Studio travaillent ensemble sur des shaders photoréalistes pour une Visualisation 3D. Les shaders jouent un rôle central dans la représentation de surfaces réalistes en infographie 3D.