Le point de départ de ce tutoriel sont deux briques Lego d'un atelier de modélisation précédent. Vous trouverez le fichier source dans le package des fichiers de travail de ce tutoriel. Il n'y a vraiment rien à redire sur la modélisation des briques Lego, mais un jouet semble beaucoup plus authentique lorsqu'il présente des traces d'usure telles que de petites égratignures, des bords usés et des zones mates.
Configuration du shader d'occlusion ambiante inversée
Comme mentionné précédemment, l'Occlusion ambiante inversée (IAO) va nous fournir les zones particulièrement affectées par les traces d'usure. Afin de pouvoir évaluer correctement le travail du shader, nous nous concentrons d'abord uniquement sur l'IAO. La brique Lego verte se prête parfaitement à cela, c'est pourquoi dans le matériau vert correspondant à la brique, sur la page Base-, nous désactivons temporairement tous les canaux de matériau actifs et activons plutôt le canal Lumière.
Dans le canal Lumière du matériau, nous ouvrons le menu Shader via le bouton Texture et sélectionnons dans le sous-menu Effets le Shader d'occlusion ambiante. L'IAO n'est donc pas un shader distinct, mais un réglage subtil du shader classique d'occlusion ambiante.
Après avoir chargé le Shader d'occlusion ambiante, nous zoomons un peu plus près de la brique Lego dans la vue de l'Éditeur et lançons un premier rendu de test. Comme le Shader AO fonctionne en mode normal, nous obtenons bien sûr pour le moment les zones d'ombre de la brique Lego.
Pour illustrer la différence entre les deux méthodes de travail, nous ouvrons en cliquant sur le bouton Shader, ou en déroulant la zone Texture, le Shader d'occlusion ambiante et activons en premier lieu l'option Contredirection.
Nous lançons un nouveau rendu de test dans la vue de l'Éditeur et obtenons maintenant l'occlusion ambiante travaillant en contre-direction. Comme le comparaison des deux rendus le montre, l'IAO n'est pas simplement un AO inversé, mais c'est une approche totalement différente. Cependant, l'IAO calculée n'est pas encore tout à fait utilisable pour notre objectif, c'est pourquoi nous allons maintenant peaufiner les réglages.
Comme nos briques Lego doivent porter leurs traces d'usure principalement sur les coins et les bords, les zones grises prononcées à la surface sont gênantes. Pour commencer, nous réduisons la Longueur maximale des rayons à 30 cm.
Pour évaluer l'impact de cette modification, nous effectuons à nouveau un rendu de test dans la vue de l'Éditeur. Les zones sombres se trouvent désormais principalement, comme souhaité, aux coins et bords de la brique Lego, mais les zones grises pourraient être un peu plus sombres.
Nous ajustons cela via le curseur de Couleur dans le Shader d'occlusion ambiante. Nous déplaçons le curseur noir de la gradation vers la droite pour renforcer spécifiquement les zones sombres.
En passant, nous activons également l'option Auto-occlusion. Comme la brique bleue repose sur la brique verte, cela influencerait indésirablement le calcul de l'AO.
Comme le montre un nouveau rendu de test, les modifications ont fonctionné comme prévu, nous permettant ainsi d'aborder la création des traces d'usure avec le shader IAO désormais complété.
Expansion du shader pour les traces d'usure
Nous restons pour l'instant dans le canal Lumière, car ce mode d'affichage s'est avéré efficace pour évaluer le IAO-shader. Afin de pouvoir traiter le shader IAO finalisé avec d'autres shaders, nous ajoutons un shader Plan en cliquant sur le bouton Texture du shader Occlusion ambiante.
Après avoir cliqué sur le bouton Shader du shader Plan, nous accédons à la gestion des plans du shader. Le shader IAO que nous avons créé s'y trouve déjà prêt en tant que plan. En cliquant sur le bouton Shader…, nous ajoutons un deuxième plan avec un shader Bruit.
Avec le bruit standard, nos traces d'utilisation ne sont pas naturelles. En cliquant sur l'aperçu du petit shader, nous accédons aux paramètres du shader de bruit et sélectionnons l'art du bruit « Nutous », qui convient beaucoup mieux. Nous utilisons une taille globale de 80 %, et laissons les autres paramètres aux valeurs par défaut.
En cliquant sur la flèche pointant vers le haut en haut à droite, nous revenons à la gestion des calques et constatons que le shader de bruit recouvre complètement le shader d'occlusion ambiante en raison de son mode de fusion.
Cependant, nous avons en réalité besoin du shader de bruit pour modifier de manière ciblée le shader IAO – cette tâche est effectuée pour nous par le mode de fusion « Levr ».
Nous déterminons l'effet précis du shader d'occlusion ambiante inverse dans un rendu de test. Comme le shader de bruit agit à 100 % sur le shader IAO, le résultat est trop contrasté, il n'y a pas de tons moyens.
De retour dans la boîte de dialogue des réglages du shader de calque, cela est vite corrigé. Une valeur de 40 % pour le mode de fusion « Levr » laisse encore suffisamment de zones de gris moyennes intactes.
Avec cette combinaison de shaders prête, nous allons enfin ajouter les traces d'utilisation sur nos briques Lego 3D.
Comme nous sommes toujours dans le canal « Lueur » pour le moment, mais que nous voulons utiliser notre shader de traces d'utilisation dans d'autres canaux de matériau, nous le copions via le menu Shader du bouton Texture avec la commande « Copier shader/image ».
Création des traces d'utilisation via le canal alpha
Dans Cinema 4D, on dit que de nombreuses voies mènent à Rome. Nous pourrions tout aussi bien utiliser notre shader de traces d'utilisation dans le canal « Couleur » comme une couche. Dans ce tutoriel, j'ai opté pour le canal alpha, ce qui nous permet de travailler de manière assez flexible en superposant différents matériaux.
Sur la page de base du matériau vert de la brique Lego, nous désactivons le canal « Lueur » désormais inutile et nous réactivons les canaux « Couleur » et « Réflexion ». Pour les deux matériaux de brique Lego, nous activons le canal « Alpha » pour notre shader de traces d'utilisation.
Comme nous voulons utiliser le shader de traces d'utilisation pour les deux briques Lego, nous sélectionnons simultanément les deux matériaux Lego dans le gestionnaire de matériaux pour pouvoir les éditer en même temps. Dans le canal « Alpha » activé, nous ajoutons notre shader de traces d'utilisation via la commande « Insérer shader/image » du menu Shader du bouton Texture.
Après avoir inséré le shader de traces d'utilisation pour les deux matériaux, nous devons encore désactiver l'option « Image alpha » pour que le shader de calque chargé en tant que texture soit correctement interprété.
Les principaux matériaux pour les traces d'utilisation sur nos briques Lego sont prêts. Si nous lançons maintenant un rendu de test, nous constatons qu'aucun matériau n'est présent sur nos briques Lego aux endroits exposés par le IAO. Pour une application de saleté crédible, cela suffirait en principe.
Matériau pour les traces d'utilisation
Cependant, ce tutoriel porte sur les zones usées et les égratignures. Alors que les deux premiers matériaux Lego couvrent la surface intacte, les deux autres matériaux sont destinés aux traces d'utilisation. J'ai déjà préparé deux matériaux verts et bleus un peu plus clairs dans le gestionnaire de matériaux. Pour les deux matériaux, nous renonçons aux reflets générés par le canal « Réflexion » pour souligner l'aspect mat et usé.
Nous attribuons les deux matériaux Lego par glisser-déposer du gestionnaire de matériaux à l'objet correspondant dans le gestionnaire d'objets et veillons à l'ordre correct des balises. Comme le matériau de traces d'usage fraîchement assigné doit être une couche située sous le matériau Lego intact, son Tag de texture est placé à gauche dans le gestionnaire d'objets.
Lors du prochain rendu de test, nous pouvons voir que notre matériau Lego un peu plus clair est visible sur tous les endroits exposés. Maintenant, nos briques Lego semblent non plus sales, mais usées par le jeu.
Nous avons maintenant pris soin des copeaux de plastique causés par le jeu, cependant il arrive que des jouets soient soumis à un traitement plus rude et se retrouvent marqués de bosses et de rayures. C'est ici que notre Shader des traces d'utilisation que nous avons créé nous aide à nouveau.
Dans le cas où le Shader des traces d'utilisation ne se trouve plus dans notre presse-papiers, nous le copions simplement du canal Alpha d'un matériau de brique Lego en utilisant la commande Copier image du Shader dans le menu Shader du bouton de texture.
Ensuite, nous sélectionnons les deux matériaux plus clairs de la version usée du matériau via le gestionnaire de matériaux et activons le canal Relief dans la page Base de la boîte de dialogue des paramètres pour les deux matériaux.
En utilisant la commande Coller image du Shader dans le menu Shader du bouton de texture, nous insérons le Shader copié comme texture dans le canal Relief des deux matériaux.
Sur la base du Shader pour les marques d'usure, nous pouvons facilement créer une variante pour les bosses et les rayures générées par le canal Relief. Comme nous savons comment fonctionne le mode de fusion Levr, nous devrions augmenter légèrement le contraste pour réduire la carte de relief ainsi créée en rayures. Nous augmentons le canal Levr à 60 %.
Pour encore plus individualiser les rayures, nous ouvrons les paramètres du Shader de bruit et définissons le recadrage inférieur sur 30 %. Comme déjà visible dans l'aperçu, cela coupe ou réduit de manière ciblée les zones plus claires.
Ainsi, la branche de Shader prévue pour les bosses et les rayures est déjà configurée, et il ne nous reste plus qu'à définir la force du canal Relief - je suis resté sur le réglage par défaut de 20 %. Les nouvelles fonctionnalités de parallaxe de la version 18 ne font que compléter, il n'y a pas de différence de qualité visible pour cet usage particulier.
Je ne veux pas abuser davantage des briques Lego dans ce tutoriel. Comme le gros plan le montre, les petites rayures et éclats donnent aux Legos la touche finale souhaitée, …
… qui améliore considérablement la crédibilité de notre rendu final.