par Naam
Translation Français par Stephane
Vendredi 22 fevrier 2002
v1.000

ChanLum est un petit matériau expérimental. Il utilise une methode différente pour calculer l'illumination d'une surface, créant quelques effets intéressant. Il peut être utiliser pour simuler (N'oubliez pas: simuler!) la Transluscence tout comme les surfaces duveteuses.

Index

L'idée de base

La principale raison qui m'a poussé à écrire ChanLum était de voir si je pouvais trouver une méthode pour créer des surfaces duveteuses, comme celle des pêches par exemple, ou certains types de peau, des surfaces qui possede une fine couche de petits poils. Mon idée etait d'ecrire un materiau qui simule simplement une fine couche d'un materiau brumeux sur la surface. Je m'explique.

L' image ci-dessus illustre ce qui arrive quand une surface normale est rendue. Le logiciel rend le point P sur une surface. Il fait cela en mesurant l'angle entre la surface et toute source de lumière disponible (a). Il utilise alors ces angles avec un algorithme Phong ou Oren-Nayar, par exemple pour  décider comment la surface doit être rendue à ce point, en fonction de l'éclairage..

Dans le cas de brouillard, cependant, il n'y a aucune normale de surface. Le moteur de rendu mesure simplement les sources de lumières directement, tenant eventuellement compte des ombres (en cas de brouillard volumétrique).

L'idée de ChanLum est d'utiliser ce moyen de collecter la lumière sur la surface des objets comme pour le brouillard. Pour maintenir les calculs aussi rapide que possible, le matériau compense simplement le point type (S) par un décalage (O) le long de la normale de la surface. La valeur O définit l'épaisseur de la couche de duvet virtuelle.

En utilisant ce décalage, ChanLum permet à la lumière de "courir autour des coins" pour ainsi dire. Comme sur l'image ci-dessus, bien que le point échantillonné superficiel soit en réalité dans l'ombre, même sur le côté sombre de l'objet, il reçoit l'illumination parce qu'en ce point la couche de duvet n'est pas à l'ombre du tout. C'était la façon dont ChanLum doit fonctionner à la base, mais il ne s'arrête pas là. Parce que quand vous rendez un objet comme cela , la frontière entre le duvet éclairé et le duvet non éclairé est très fine, ce qui ne parait pas très réaliste.

C'est pourquoi ChanLum tient aussi compte d'un échantillon de diffusion. Cela peut être fait de deux façons. La première méthode "Along Normal" (Le long des normales) est illustrée ci-dessus. L'échantillon est en réalité un échantillon moyen du secteur S (l'espace rectangulaire). Autrement dit, ChanLum prend simplement un jeu d'échantillons de brouillard le long d'une normale de la surface, pas plus loin de l'original (décalage) point échantillon que le rayon r. Cela permet d'adoucir la transition entre le sombre et le clair, aussi bien que cela permet à la lumière de courir le long de la surface.

En combinant ce type d'éclairage avec un effet de fresnel (ci-dessus), j'obtiens exactement l'effet auquel je visais, un duvet, un effet de velours qui s'atténue correctement vers l'ombre.


La deuxième méthode est de mesurer l'échantillon moyen d'un secteur sphérique S avec le rayon r en prenant un échantillon de diffusion. Pour faire cela correctement, ChanLum doit prendre des échantillons aléatoires dans ce secteur, par là le résultat produit un bruit. Cette méthode non seulement fait lune transition plus lisse, mais donne aussi une autre apparence intéressante à l'objet. C'est particulièrement apparent si vous augmentez le rayon type et si vous ajoutez un reflet spéculaire (voir ci-dessous).

L'ombrage ne se contente pas de "courir autour des coins", il semble être produit par l'intérieur de l'objet. Seulement où l'objet est beaucoup plus épais que le rayon de secteur type le matériau devient vraiment plus sombre, simplement parce que quand l'objet est plus mince que le rayon, il y aura des échantillons pris de l'autre côté de l'objet, où l'objet ne jette pas d'ombre. Cet effet, quand il est bien appliqué, ressemble assez à l'effet de Translucence, même si ce dernier est complètement différent. Néanmoins, il produit un superbe effet de cire qui, quand il est employé modérément, peut être utilisé pour faire des surfaces comme la peau humaine beaucoup plus réalistes grâce à l'effet de lumière rampante et l'adoucissement de l'ombrage.

Les réglages


Si la description précédente est claire, les réglages ne doivent être aucun problème à présent. Je vais néanmoins les aborder un par un.

Samples (Echantillons)
C'est la quantité d'échantillons que ChanLum prend dans le secteur, cela peut être fait le long des normales ou dans un secteur sphérique d'échantillonnage. Le premier échantillon est toujours pris dans le décalage du point échantillon. Si vous régler l'échantillon à 1, les zones des réglages du Rayon d'échantillonnage (Sample Radius) et du Type d'Echantillonnage (Sample Type) seront grisés (cela n'aurait aucun sens de les régler).

Initial Offset (Décalage Initial)
C'est la distance entre le point de la surface d'origine qui est échantillonné (P sur les illustrations) et le premier point d'échantillonnage. Ce premier point d'échantillonnage est un point dans l'espace le long de la normale à la surface.

Sample Radius (Rayon d'Echantillonnage)
C'est la taille de l'aire d'échantillonnage, appelé r sur les illustration ci-dessus. Un rayon plus grand signifie généralement que vous avez besoin de plus d'échantillons pour avoir une apparence lisse (faible valeur de bruit).

Sample Type (Type d'Echantillonnage)
Le type d'échantillonnage peut être aussi bien régler sur Along Normal ou sur Area. Si vous réglez sur Along Normal, les échantillons seront pris le long des normales de la surface. Cela peut être aussi bien jeu d'échantillons régulièrement espacés (si stochastique est décoché) ou bien des échantillons aléatoires n'importe où le long des normales , faisant apparaître un bruit dans l'apparence. Si le Type d'Echantillonnage est réglé sur Area, ChanLum prend des échantillons aléatoires dans l'aire, donc l'option stochastique sera grisée.

stochastic
Si cette option est cochée, ChanLum prendra des échantillons aléatoirement. Décochée (seulement possible dans le cas du réglage Along Normal), il prendra des échantillons régulièrement espacés les uns des autres, menant à un résultat plus lissé avec moins d'échantillons.

gaussian
C'est une option supplémentaire en mode stochastique. Décochée, les échantillons aléatoires peuvent être n'importe où dans le secteur défini. Cochée, par contre, la chance d'obtenir des échantillons tout près du décalage du premier point échantillon est beaucoup plus grande. Cela mène généralement à une apparence plus plaisante. Si vous la décochez, vous aurez à diminuer l'aire d'échantillonnage pour arriver au même effet que quand elle est cochée.

Shadows (Ombres)
Éteignez cette option pour ne pas prendre en compte les ombres dans le calcul. Il est déconseillé de faire cela avec les utilisations décrites ci-dessus, parce qu'elles comptent simplement sur les ombres pour la qualité de l'apparence. Mais il peut y avoir quelques utilisations où vous voulez employer la "méthode d'échantillonnage-brouillard" de ChanLum sans avoir à tenir compte des ombres (comme avec des particules lumineuses) donc j'ai simplement intégré cette option.

Manual (Manuel)
Avec ce bouton, vous serez capables d'ouvrir ce manuel.

OK
Confirmez des changements et sauvez-les pour editer le matériau.

Cancel
Changez d'avis et quittez la fenêtre de réglage sans changer le matériau.

Utilisation

ChanLum est un canal des matériaux, ainsi une fois installé dans le dossier Plugins de Cinema4D, il apparaîtra dans le menu Image de l'éditeur de matériau. La façon la plus logique de l'employer serait de le placer dans le canal Luminance, mais vous pouvez bien sûr le mettre où vous voulez.

Couleur
Pour utiliser le matériau en tant que couleur, définissez simplement la couleur que vous voulez dans la section Couleur du canal et sélectionnez Produit dans l'option de Fusion.

Texture
Pour utiliser ChanLum avec une texture ou le combiner avec autre matériau (comme j'ai fait plus haut avec fresnel), vous devrez employer le matériau Bhodinut Fusion, mettre ChanLum dans l'un des deux canaux disponibles, la texture désirée dans l'autre et sélectionnez Produit dans l'option de Fusion.

Exemple d'utilisation

J'ai déjà utilisé ChanLum correctement sur quelques un de mes travaux. Son effet de duvet rend les vêtements et le textile beaucoup plus naturel, particulièrement quand il est combiné avec un effet de fresnel et atténué avec une texture bruit. Il fonctionne aussi à merveilles sur les cheveux, ou des substances de type mousse. Voici quelques exemples.


Un visage éclairé sous différents angles. ChanLum a été employé dans le canal luminance, additionné à une texture "noise-and-capilaries" et un effet de fresnel pour rendre le matériau plus apparent quand la surface est vue directement. Notez l'adoucissement des nuances des zones éclairées au zones sombres.


Une utilisation quelque peu exagérée. La peau semble presque fait de cire ici. ChanLum est aussi utilisé sur le blanc des yeux..


Dans ce rendu, ChanLum est littéralement partout. Plus particulièrement sur la peau, où une utilisation très modérée de ChanLum (atténué avec une texture "sous-peau" colorée avec du bruit) fait apparaître la peau beaucoup plus douce et "plus profonde". Il a été aussi employé sur les cheveux, construit avec un simple réseau de Loft (Peau NURBS). Grâce à ChanLum, peu importe d'où la lumière vient pour les cheveux, elle peut même venir de derrière, ce qui ressemble beaucoup plus au comportement des vrais cheveux. J'ai employé un duvet très subtil pour le col et le pull-over, il a même été utilisé pour les dents et le blanc des yeux.


Une utilisation un peu plus expérimentale de ChanLum, pour faire un objet qui semble avoir été découpé dans de la mousse de caoutchouc.


Et pour finir, une utilisation fortement expérimentale du matériau. Cet objet est juste une grappe déformée de particules de cubes et de lumières. Les cubes sont éclairé de l'intérieur. Il n'y a aucune ombres dans cette image, juste des lumières atténuées et des cubes colorés.

Limitations connues

Pour un matériau si simple, il doit nécessairement y avoir quelques limitations à ce qu'il peut faire. Voici une liste des limites que j'ai pu noter. Si vous rencontrez quelques problèmes, vérifiez s'il vous plaît si la solution n'est pas dans les lignes suivantes avant de me poser une question. Ces limitations me sont connues et sont inhérentes au concept. Elles ne peuvent être résolu et toute plainte est inutile. Si vous trouvez d'autres problèmes, ou avez des solutions simples aux problèmes, s'il vous plait, faites moi le savoir :)

Pour obtenir un effet satisfaisant, ChanLum a besoin d'ombres sur tous les lumières. Si vous ajoutez éventuellement une lumière sans ombre à la scène qui illumine l'objet avec ChanLum dans le canal Luminance, l'effet sera probablement trop faible.

En outre, la qualité des ombres a une grande influence sur ChanLum. Des ombres très douces donnent une apparence très douce. Des ombres douces avec une grande résolution et des ombres franches créent beaucoup plus de bruit avec le mode stochastique. Le réglage du masque d'ombre influe aussi sur la façon dont la lumière "rampe autour des coins".

Parce qu'actuellement ChanLum est écrit en c.o.f.f.e.e. et pas en C ++, il est assez lent. Je dois dire que je moi-même ne l'ai pas encore utilisé au point d'être vraiment fatigué d'attente les rendus, mais je m'efforce de laisser le nombre d'échantillons assez bas :).

ChanLum a tendance à donner un rendu facetté sur des maillages basse-résolution. C'est parce que l'action principale de ChanLum est de rendre l'actuel point dans l'espace, tandis que les méthodes de rendu comme Phong et Oren-Nayar simulent le lissage et la curvature de la surface. Il n'y a aucun moyen facile (rapide) d'éviter ce facettage si ce n'est d'utiliser des maillages haute-résolution là où vous pouvez, même si sans cela on obtient quelques jolis effets.

ChanLum a aussi tendance à être la victime d'artefacts "d'auto-ombrage" quand le Décalage est trop fin. Cela peut faire apparaitre des bandes sur certains polygones, particulièrement en utilisant des ombres douces. La solution est d'augmenter la valeur de Décalage, ou d'utiliser plus d'échantillons ou une zone d'échantillonnage plus grande.

Contact

Si vous avez des suggestions, des remarques, des compliments, des problèmes, des questions ou tout autres choses, je vous fourni quelques liens pour me contacter. Notez que je ne suis pas un développeur de logiciel, donc je ne peux pas promettre que je serai capable de vous aider si vous avez des problèmes lors de l'emploi de ce plug-in.

Naam, Happy Ship, Groningen, the Netherlands

email: naam@happyship.com

Site de ma compagnie: http://www.happyship.com (Vous pouvez trouver ici plein de liens pour me contacter)

site personnel: http://www.xs4all.nl/~naam

Toutes les images de cette page sont protégées par les droit d'auteurs de Naam/Happy Ship