Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
astronaute.jpg
Publicité
Formation Blender ElephormBlender 3d Elephorm


     






Test cheveux 2.69 !
OverdOzed
Inscrit:
15/06/2006 11:11
De Rennes
Post(s): 759
[edit] mes excuses, je voulais mettre ça dans la section WIP...


Bonjour le Blender Clan,

Ca faisait un moment que je n'avais pas touché à Blender (depuis les 2.5x) et ces derniers jours je m'y suis remis fiévreusement car j'ai jugé qu'il était temps de me former à Cycles quand même. Et à peine prises en main les dernières fonctionnalités de rendu, je vois arriver la 2.69 RC1 avec les BSDF's de cheveux. Du coup j'ai passé la nuit dernière à faire mumuse pour reproduire un shader complet de cheveux. J'arrive à un truc comme ça sans vraiment chercher l'esthétisme (clic droit -> ouvrir l'image) :



Ils ont pas l'air en bonne santé mais c'est 1) parce que je les ai peignés n'importe comment et 2) parce que j'ai quelques textures pour "randomiser" un peu la couleur et l'angle d'offset donc on est loin de la chevelure lisse et fluide de l'Oréal.

A part ça, le shader est construit pour coller autant que possible au modèle le plus complet / récent qui existe (à ma connaissance) : Light Scattering from Human Hair Fibers (Marschner et al., 2004) http://www.cs.cornell.edu/~srm/publications/sg03-hair-lr.pdf

-> une "hair BSDF" blanche mise en "reflection" pour les reflets principaux (réflexion directe qu'ils appellent lobe "R" dans le paper) avec un angle d'offset autour de 5° (= 2 fois l'inclinaison des cuticules du cheveu).
-> une "hair BSDF" teintée mise en "reflection" pour les reflets secondaires (lobe "TRT" dans le paper pour transmission entrante -> réflexion interne -> transmission sortante qui fait sortir du même côté qu'initialement), avec des paramètres de "roughness" 2 fois plus larges que le lobe R (la réflexion interne étale le cône de réflexion) et un angle d'offset de -1.5 fois celui du lobe R (pour des raisons géométriques encore)
-> une "hair BSDF" teintée mise en "transmission" (lobe "TT" dans le paper pour transmission entrante -> transmission sortante de l'autre côté) avec des paramètres de "roughness" 2 fois plus petits que le lobe R (ça refocalise) et un offset d'angle de -0.5 fois celui du lobe R.
Un peu confus tout ça je sais, mais je vous assure tout s'éclaire avec le premier schéma du paper

Bref, tout ça pour dire que le but de la manoeuvre c'était de partir sur une base "physique", ça donne des valeurs de départ pour les paramètres, après on est libre de sortir de ce cadre strict.

Voilà, si vous voulez je file le .blend, mais je suis prêt à parier que vous êtes déjà arrivés à des résultats similaires sans vous prendre la tête à lire un paper du genre

Allez-y montrez vos tests ça m'intéresse !

Contribution le : 10/10/2013 16:38
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
20/10/2012 06:53
Post(s): 485
Citation :

Pixelvore a écrit:
... Light Scattering from Human Hair Fibers (Marschner et al., 2004) http://www.cs.cornell.edu/~srm/publications/sg03-hair-lr.pdf ...

... vous êtes déjà arrivés à des résultats similaires sans vous prendre la tête à lire un paper du genre



Mazette! Non j'ai pas tout lu... mais ça a l'air passionnant. Et d'ailleurs ça me fait penser à un sujet sur lequel j'ai fait quelque succinte recherche cet après-midi: le langage glsl en général, et son utilisation dans blender en particulier.

La réflexion que j'en tire au point où j'en suis c'est que ça a l'air passionnant, mais faut quand même être bien motivé pour s'y mettre (l'apprendre et l'utiliser).


Pas mal ton rendu sinon! Hormis le peignage qui certe laisse à désirer, la texture fait très réaliste.


Edit: glsl tuto -> http://www.lighthouse3d.com/tutorials/glsl-tutorial/

et le site du bousin -> http://www.opengl.org/documentation/glsl/

Contribution le : 10/10/2013 19:31
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
15/06/2006 11:11
De Rennes
Post(s): 759
Citation :
La réflexion que j'en tire au point où j'en suis c'est que ça a l'air passionnant, mais faut quand même être bien motivé pour s'y mettre (l'apprendre et l'utiliser).


Je trouve pas le langage en soi difficile (j'ai eu une petite expérience là dessus en stage), ce qui demande de l'investissement c'est tout ce qu'il faut engranger pour savoir précisément ce qu'on fait. L'infographie ça demande 1) d'être à l'aise en "physique de la lumière" pour pouvoir broder et "inventer" de nouveaux shaders, et 2) d'être à l'aise en maths (surtout géométrie) pour ne pas s'y prendre comme un manchot au moment de coder lesdits shaders. Le reste c'est surtout de la syntaxe et du bon sens

Bon sinon petit up, j'ai uploadé la vidéo qui s'est rendue cette nuit

https://vimeo.com/76609109

Assez rapide le rendu finalement, je suis à 10 spp (clamp fireflies à 1.00 quand même) et les 800 x 600 se calculent en 1'30".

Contribution le : 10/10/2013 21:09
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
01/11/2004 22:14
Post(s): 6567
Je mettais amusé à faire des tests dans le viewport mais je n'ai rien sauvegardé.
J'ai bien mixé les deux types de shaders mais je n'ai pas cherché à utiliser 2 réflections.
Mais c'est vrai que je trouve excellent le fait d'avoir ce nouveau shader transmission.
Ce n'est pas un lourd SSS qui prend des plombes au rendu.
Et ça donne des rendus, toute suite, plus réalistes avec cette translucence.
En tout cas, quand on cherche plus à tirer vers la fourrure voire vers la peluche, le bénéfice est saisissant.

Contribution le : 10/10/2013 21:42
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
15/06/2006 11:11
De Rennes
Post(s): 759
@zeauro : oui la transmission est bien plus rapide que le SSS car elle ne simule pas la "marche aléatoire" du rayon à l'intérieur des fibres (encore heureux), il tape le cheveu et passe avec une seule déviation.
Faut pas être trop dur avec les devs pour le SSS, en Monte Carlo complet faut simuler le zigzag complexe du rayon à l'intérieur du volume, car le rayon change continûment de direction (à notre échelle) donc c'est largement pire que des rebonds d'une surface à l'autre (GI habituelle avec des matériaux opaques et transparents sans diffusion). Après justement, l'approximation diffusion isotrope + dipôles lumineux en surface (le truc codé dans Cycles) permet d'éviter de simuler tous ces rebonds en calculant approximativement pour chaque point de la surface la contribution lumineuse des autres points de la surface (donc plus besoin de regarder volumétriquement ce qui se passe). Tout ça en saupoudrant d'une structure d'accélération du genre Octree pour regrouper ensemble les points lorsque l'erreur est tolérable.
Donc faut bien voir que oui, le SSS de Cycles est lent, mais c'est bien le plus rapide (et basique...) qui soit dans le cadre d'un moteur lancer de rayons. C'est à ma connaissance la méthode la plus populaire pour avoir du SSS pas cher. Si on faisait du Monte Carlo intégral là les temps de calculs se compteraient minimum en heures (rappelez vous quand fallait lancer le calcul pendant la nuit sur Indigo pour une scène bidon avec un peu de SSS...), là c'est en quelques dizaines de minutes au lieu de quelques minutes, ça pourrait être pire. Et faut savoir aussi qu'il existe des raffinements de cette méthode d'intégration du SSS qui permettront dans le futur d'avoir un meilleur SSS dans Cycles sans avoir à changer complètement de "paradigme" (à l'opposé d'autres méthodes du genre approximation par une grille 3D à l'intérieur du volume). Par exemple, pour du SSS multicouche on généralise la méthode avec des "multipôles" et ça fait juste un peu plus de termes dans l'addition pour le calcul des contributions lumineuses, mais le principe reste le même et les résultats sont très supérieurs. Ce qui me rassure c'est que le paper qui décrit ça je l'ai vu (lui et d'autres) dans la liste des papers repérés par Brecht http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/Papers donc je sais qu'il a ça en tête.
Voilà tout ça pour dire "patience, ça vient"

Et sinon, je me suis fait un rendu high res avec des cheveux mieux peignés, on voit clairement la séparation entre le reflet principal (blanc) et le secondaire (teinté), vraiment essentiel pour tous types de cheveux du coup sauf les bruns évidemment (transmission négligeable car absorption quasi complète à l'intérieur. C'est géré tout seul par le shader de toute façon, une BSDF noire donne juste du noir partout sans aucun reflet.)



(clic droit -> afficher image)

Contribution le : 11/10/2013 00:47
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
01/11/2004 22:14
Post(s): 6567
Citation :

Pixelvore a écrit:

Faut pas être trop dur avec les devs pour le SSS


Ce n'est pas mon intention.
Je parlais de façon générale.

Je ne connais pas un seul soft où le SSS ne ralentisse pas notablement le rendu.
C'est pour ça que dans la plupart, il y a un FakeSSS comme celui de l'internal.

Contribution le : 11/10/2013 10:11
Créer un fichier PDF de la contribution Imprimer


Re: Test cheveux 2.69 !
OverdOzed
Inscrit:
15/06/2006 11:11
De Rennes
Post(s): 759
Citation :
C'est pour ça que dans la plupart, il y a un FakeSSS comme celui de l'internal.


C'est la même méthode qui est utilisée dans Cycles La seule différence c'est que dans Cycles les points échantillonnés sur la surface pour estimer l'irradiance incidente sont mieux répartis dans toutes les directions car les rayons sont susceptibles d'arriver de partout donc faut assurer, alors que dans l'Internal on prend juste les points "vus de face" + ceux "vus de dos" (et on se limite à l'éclairage direct dans le calcul d'irradiance). C'est pour ça que lors du pre-pass on aperçoit l'objet en rendu clay à la fois de face et de derrière. Mais sur le fond c'est pas "fake", c'est juste une approximation dans le sens où ça donne la solution exacte dans certains cas idéaux et en pratique, sur des vrais cas, ça donne une solution approchée. Du SSS "vraiment fake" par exemple c'est la technique de texture space diffusion qui consiste à flouter l'illumination dans l'espace texture ; même en floutant selon de vrais profils de diffusion, c'est faux physiquement même si ça colle à peu près perceptuellement. Mais ça fait du temps réel c'est sûr.

Mais en tout cas, agreed. Quel que soit le soft, le SSS et le rendu volumétrique sont toujours des problèmes épineux et y'aura jamais de méthode miracle.

Contribution le : 11/10/2013 14:28
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses [résolu] Duplication de groupe dans Blender 2.8? 6 87 Aujourd'hui 15:40:49
Fracoris 
Questions & Réponses [non résolu] Scale "mode objet" ne tient pas compte des axes du repère personnalisé    [1][2] 15 138 Aujourd'hui 13:50:21
paquetdemouchoirs 
Questions & Réponses [WIP] Comment modifier le diamètre d'un cercle    [1][2] 15 133 Aujourd'hui 13:05:39
busanga 
Questions & Réponses Où mettre un Tutoriel? 0 21 Aujourd'hui 11:14:36
Fracoris 
Questions & Réponses [résolu] Faire apparaître les boutons de la souris sur l'écran ? 4 76 Aujourd'hui 10:15:42
Fracoris 
[WIP] et travaux terminés [WIP] Bataille Navale // Animation 3d    [1][2] 18 417 Hier 23:59:02
ju 
The Blender Clan 'tchat Présentation OlivierL. 3 75 Hier 11:58:05
Gilead_Maerlyn 
[WIP] et travaux terminés [terminé] VFX Harry Potter 4 92 16/10 23:02:19
busanga 
The Blender Clan 'tchat [Recrutement] 3D artists & animateurs pour jeu de simulation spatiale 3 291 15/10 22:55:21
ThePioneers 
Questions & Réponses Transférer une chevelure 0 64 15/10 13:44:40
Horemheb 
Questions & Réponses [résolu] Ne pas voir une partie d'un objet lors du rendu 9 155 15/10 13:07:02
Horemheb 
Questions & Réponses Blender 2.8 et Unity 4 132 14/10 13:30:42
Hook 
Python & Plugins [résolu] Comparaisons d'un ensemble de valeurs    [1][2] 10 292 14/10 09:31:56
makhaon 
Questions & Réponses [résolu] Rendu avec eevee, scène toujours lumineuse même sans lights. 2 146 12/10 22:17:48
Obaemon 
Questions & Réponses [non résolu] renderman Blender problème de connexion 2 167 12/10 19:18:54
tokoji 
[WIP] et travaux terminés [WIP] Nécromancienne sur sanglier    [1][2][3]...[6] 55 14178 10/10 18:45:51
Gilead_Maerlyn 
Moteur de jeu GameBlender et alternatives [résolu] BGE - son 3D, cône inner angle 1 197 10/10 15:35:54
Redstar 
Questions & Réponses Enlever les wireframes en object mode 1 135 10/10 02:29:52
Rimpotche 
Questions & Réponses [non résolu] Problème de normal baking 0 124 09/10 15:41:29
Irreel 
Questions & Réponses carte graphique pour cycles 1 271 09/10 14:50:50
Sphere3d 

Qui est en ligne
89 utilisateur(s) en ligne (dont 59 sur Forums)

Membre(s): 2
Invité(s): 87


Gilead_Maerlyn, PasqualeLa, plus...
Nouveaux membres
KingMackin 18/10/2019
Ladonna246 18/10/2019
Carol0778 18/10/2019
DarylWagne 18/10/2019
PasqualeLa 18/10/2019
JulietaCkt 18/10/2019
OlivierL 16/10/2019
Obaemon 12/10/2019
ALK-chimiste 12/10/2019
Sinus 12/10/2019
Dernier Ajout
Forky-3D-ToyStory BC.png

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 11
BUG de Lyon
plus 278 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2019 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445