(1) 2 3 4 5 »


[Mini-tuto] Découvrir LuxRender (+GPU)
Fou Furieux du Clan
Inscrit:
17/10/2003 19:24
Post(s): 263
Salut, je me suis mis à Luxrender et je pense que cela peut être intéressant de rassembler collectivement des informations et nos trouvailles sur ce moteur de rendu, ainsi qu'aider les gens (non anglophones) qui voudraient s'y mettre..

Luxrender est un moteur intéressant à plus d'un titre. Malgré l'avènement de Cycles, encore balbutiant, il reste indétrônable de par sa maturité, ses nombreuses fonctionnalités et la qualité de ses rendus. Luxrender est activement développé et a de nombreuses fonctionnalités dont le rendu en réseau et la gestion interactive du dosage des lumières lors du rendu (via sa GUI externe).

Cerise sur le gâteau, le support OpenCL fait son chemin mais pour le moment sous forme d'hybridation (à la différence de Cycle et SLG2) ce qui permet de préserver les fonctionnalités tout en offrant un gain de puissance avec l'espoir que le photoréalisme devienne encore plus accessible et viable en pratique. Enfin l'exporteur (bien qu'encore en béta) pour Blender 2.6 est de plus abouti.

Voici un mini tuto que je complèterai au fil du temps, grâce à votre aide j'espère, étant donné qu'on a jamais fini de découvrir ce fantastique moteur de rendu.

---------------------------

0) Présentation
Luxrender est un moteur de rendu issu de PBRT (Physically Based Ray Tracing), un projet académique, avec pour intention d'offrir en pratique un moteur utilisable par le plus grand nombre. Le concept initial est de modéliser au mieux les lois physiques des phénomènes lumineux, au niveau spectral et non plus dans un simple espace RGB comme Cycles ou SLG2. Il n'y a par ailleurs pas à se soucier comment imiter l'illumination globale (GI) comme sur Blender (avec l'indirect lightning) car celle-ci découle naturellement de l'application des lois de la physique. Les caustiques apparaissent également naturellement, ainsi que bien d'autres "à-cotés" qu'on a tendance à oublier.

Luxrender est pour cette raison dit "non biaisé" car il n'utilise pas de truquage (ce qui bien sûr se paye en temps de rendu plus élevé), mais ce que l'on sait moins est qu'il peut fonctionner aussi en mode biaisé (même si toujours spectral en interne), si on le veut pour des previews ou des effets spéciaux par exemple, le temps requis est alors plus court. Il y a différents algorithmes de rendu disponibles à choisir selon les exigences, certains peuvent parfois mieux convenir à une scène d'intérieur ou une scène d'extérieur, à la présence de caustiques, etc...

Un dernier avantage est de pouvoir prendre en compte les volumes (mais homogène pour le moment).

1) Installation
L'installation est à cette date relativement facile et consiste en fait à installer un add-on.

D'ailleurs avant de vous lancer, vérifier sur Graphicall.org s'il n'existe pas des builds avec Luxrender tout intégrés (exécutables et scripts). C'est déjà le cas pour la plateforme Win 64bit:
http://www.graphicall.org/lux

Pour les autres:

Première étape: Téléchargez et décompactez l'archive binaire depuis le site.
(Souvenez vous bien où vous décompactez cette archive, vous devrez spécifier l'emplacement plus tard dans Blender pour qu'il puisse trouver les exécutables) :
http://www.luxrender.net/en_GB/download

Si vous voulez un binaire très récent de la branche en cours de développement (quelque soit l'OS), on trouve des weekly builds ici:
http://www.luxrender.net/forum/viewforum.php?f=30&sid=4dfc56261b16cf079a36aa89f8fe9b0d

Si vous tenez à compiler une version vous même (sous nux), il y a un petit tuto très bien pour Ubuntu mais qui peut être utile pour les autres distribs (il explique aussi comment "fetcher" luxblend25):
http://www.luxrender.net/wiki/index.php?title=Building_on_Ubuntu_10.10

Si vous avez récupéré un binaire "stable" depuis le site principal, vous pouvez dors et déjà tester le moteur de rendu, car l'archive contient:
-un répertoire d'exemple avec une scène de test
-parfois un script pour blender 2.4 (à oublier donc)
-pylux pour blender 2.5 (installation optionnelle cf. plus bas)
-3 applications dont:
-luxrender (la GUI)
-luxconsole
-luxmerge

Faisons un petit test pour vérifier qu'il n'y a pas de problème de compatibilité avec le système (libs manquantes, etc..). Lancez l'appli "luxrender" depuis une console, une GUI apparait (ou un message d'erreur qui vous sera utile pour demander de l'aide, souvent c'est que vous n'avez pas téléchargée la bonne archive), ouvrez le fichier d'exemple contenu dans le répertoire et lancez le rendu. Vous devez voir une ville de nuit, éclairée par des lampadaires.
L'image est assez sombre. C'est l'occasion d'essayer les réglages chromatiques, attention la mise à jour peut prendre un peu de temps. Voici une capture de l'interface, avec le fichier d'exemple et des réglages "maison" pour rendre l'image moins sombre:


Deuxième étape: Installer l'add-on LuxBlend2.5
On trouve le fichier ici:
http://src.luxrender.net/luxblend25
Il faut cliquer sur zip ou bzip ou le format de son choix en bleu en haut. Décompactez l'archive et copiez le répertoire "luxrender" là où est installé blender 2.6.x, plus précisément dans "scripts/addons". (Attention sous Windows, le répertoire "script" est un fichier caché ".scripts" qui peut se trouver à un emplacement différent).

(La page web en anglais pour plus d'informations).


Voilà le principal est fait, donc plutôt simple. Une fois qu'on a lancé Blender, dans "User preferences", cliquez Add-ons et dans la catégorie Render on voit l'option Luxrender qu'il faut cocher. N'oubliez pas de sauver vos préférences (Ctrl+U).

Troisième étape (optionnelle): Pylux
Copiez le fichier pylux qu'on trouve dans l'archive de Luxrender dans le répertoire "luxrender" qui vient d'être copié dans "scripts/addons".

Pylux sert à plusieurs choses, la première est d'autoriser la preview en temps réel des matériaux comme fait Blender avec l'internal, la deuxième est de permettre la totale intégration du moteur en interne depuis Blender pour les rendus (on aura pas l'impression qu'un moteur externe est utilisé car tout se fera depuis Blender).


2) Premiers pas et configuration

Quand on a activé l'add-on, on doit voir en haut (dans la scène principale du cube par exemple) dans le menu déroulant Luxrender disponible en plus des autres moteurs. Il suffit de le choisir et on verra que les panneaux sur la droite changeront.

La chose la plus importante à faire à présent est de choisir la façon dont Blender va appeler LR. A l'écran des rendus (icône appareil photo) aller à l'onglet "Luxrender Engine Configuration", on a le choix dans "Rendering mode", entre Internal ou External. Le premier permet l'intégration totale du moteur, le deuxième se comporte comme simple un exporteur. Il va exporter la scène et accessoirement lancer LR soit en mode GUI indépendante et persistante soit en mode console. Le mode GUI à l'avantage de permettre de faire joujou avec les réglages lumineux interactivement. On ne peut pas faire cela depuis Blender malheureusement.

A noter:
-il faut bien cliquer "Run renderer" en blanc sinon le script se comporte comme un exporteur passif et on doit alors lancer LR en manuel et charger les fichiers exportés.

-si on interrompt la rendu depuis Blender (touche Esc) en mode External le processus LR n'est pas interrompu et continu à tourner en toile de fond. C'est juste que Blender arrêtera de mettre à jour l'image. Il faudra donc fermer soit même LR.

Dernière chose d'importance et primordiale avant de lancer un premier rendu, il faut bien indiquer le chemin vers le dossier ou vous avez décompacté LR dans "Path to luxrender"

Très important également, LR étant basé sur la physique il est impératif de travailler en respectant la taille réelle des objets, 1 BlenderUnit = 1 mètre. Et il faut régler Scale à 1 dans Scenes/Units.

Voilà, à partir de cette étape vous êtes normalement paré.


3) Setups d'exemple
Si on essaye de rendre directement le cube celui ci apparaitra en noir et blanc, ça vient du fait que LR (nous utiliserons cette abréviation pour Luxrender) gère l'éclairage différemment que Blender. Il n'y a pas (encore dans luxblend) de couleur d'environnement, le fond est par défaut toujours noir (cependant on peut utiliser une source type "Sun" qui a un réglage générant un ciel, ou "Hemi" avec une image HDRI en fond).

Pour les faces noires du cube, comme il n'y a aucun corps réverbérant la lumière, celles ci apparaissent noires comme cela serait le cas dans l'espace par exemple. Il suffit d'ajouter un plan en dessous pour les faire ressortir. Bien que supportée la lampe par défaut est déconseillée (dixit la doc un simple point lumineux étant une singularité non présente dans la réalité) et il faut utiliser plutôt des surfaces comme les Areas. Autre particularité on peut rendre un mesh lumineux et l'utiliser comme lampe. Cependant plus le mesh a de face, plus les calculs seront longs.

Il y a quelques exemples sur le wiki pour démarrer bien qu'ils se réfèrent encore a blender2.4
http://www.luxrender.net/wiki/index.php?title=Creating_a_soap_material

Sinon pour importer une image OpenEXR et obtenir un éclairage depuis un fond HDRI il faut choisir "Hemi" comme type de lampe, une ligne "HDRI map" apparait qui permet de choisir une image. Le type de fichier peut être soit "angular" (sphère) ou latlong (pour les images longitudinales en 180x360°), le format jpeg marche mais le .exr est recommandé.

(à compléter)
J'essayerai de poster quelques blends d'exemple..


4) Les différents modes de rendu
A l'onglet "Surface Integrator" se trouve le réglage le plus stratégique car il permet de sélectionner le type de rendu que l'on souhaite, ce qui va influer bien-sûr sur les temps de calculs, de nombreuses options supplémentaires peuvent ensuite apparaitre.

Il faut différencier en premier lieu les algos biaisés et ceux non biaisés.

Ex-Photon Map: Biaisé. Il s'agit de la technique classique du photon mapping (je crois utilisé par Yafaray). Le "Ex" était ici pour "expérimental", mais à ce jour cet algo n'est plus considéré comme tel. (ceci dit, chez moi j'ai eu quelques plantages dans les tests, peut-être un pbm de RAM insuffisante). Ce moteur convient bien aussi pour les animations, mieux que le "distributed path" selon certains.

Instant Global Illumination: Un algo issu de PBRT qui est pour l'instant biaisé car il n'implémente pas les derniers développements de PBRT2. Cet algo se base sur un ensemble de lumières virtuelles générées lors de l'initialisation de la scène qui permettent de simuler l'illumination globale.

Distributed Path: Non biaisé. C'est un algo dérivé du classique algo de Path tracing. A l'origine cet algo est non biaisé mais la doc stipule qu'on peut grandement le régler pour le rendre biaisé. L'avantage étant de permettre un bon compromis temps/qualité pour les animations. C'est celui que j'ai le plus utilisé.

Direct Ligthning: Biaisé, c'est une sorte d'algo de test pour les preview, aucun caustique ou illumination globale n'apparaitra. Logiquement c'est l'algo le plus rapide, rendu type ratraycer primitif donc, aspect très synthétique.

Path: Non biaisé, algo classique de path tracing. (et aussi le seul algo permettant l'OpenCL pour l'instant).

Bi-directionnal: Non biaisé, algo de path tracing plus évolué car le chemin de la lumière est pris en considération dans les deux sens, depuis la caméra et la lumière, ce qui permet des optimisations. C'est je crois l'algo à utiliser en préférence (c'est d'ailleurs l'algo par défaut). Note: les caustiques se formeront plus vite avec cet algo.

SPPM: Stochastic Progressive Photon Mapping. Cet algo est en cours d'implémentation et ne sera disponible que sur les prochaines version de LR. Il deviendra probablement l'algo par défaut, il a les avantages du photon mapping sans les inconvénients.


5) Petites choses à savoir
-Par défaut il n'y a pas de fin à un rendu et LR va tourner indéfiniment jusqu'à ce que vous le stoppiez. Les images sont constituées par la somme des échantillons (samples) calculés. Plus on en obtient, plus l'image est nette. On peut cependant cocher et spécifier dans Blender le paramètre "SPP halt" qui correspond au nombre de samples par pixel auquel le rendu sera arrêté (très utile dans le cadre des animations).

-Par défaut avec le tonemappeur Reinhard, LR s'adapte au niveau d'éclairage comme la pupille de l'oeil humain. Ainsi changer la puissance d'une lampe si elle unique dans la scène ne changera rien au niveau du rendu, car LR compensera pour afficher une scène avec toujours la même luminosité. Cela peut être changé toutefois, pour les animations par exemple, en choisissant un autre type de tonemappeur (cf. plus bas).

-Les algo Ex Photon Map et Instant Global Illumination ne supportent pas les light groups.

-Il existe un certains nombres de différences ou limitations entre l'internal et LR (pas de SSS mais certains matériaux permettent de l'imiter), le script luxblend25 n'est pas encore finalisé (certaines particules et les hairs ne fonctionnent pas, les NURBS ne sont pas supportés,...).

-pour utiliser un PC en mode serveur tapez "luxconsole -s" dans un terminal. Il se met alors en attente et pour utiliser cette ressource il suffit de rentrer dans Blender l'IP de cette machine à l'onglet (option chochée) "Use Networking".

-"luxmerge" permet de fusionner des rendus dispersés sur différents ordinateurs. Les "films" sont fusionnés pour donner une image finale moins bruitée.

-on peut interrompre, quitter LR et reprendre un rendu plus tard, et ce à tout moment à condition de sauver le "film" (fichier .flm), et de le restorer par la suite.

-Les scènes exportées sont décrites dans un langage dont on peut connaitre les spécifications ici:
http://www.luxrender.net/wiki/index.php?title=Scene_file_format

-il existe plusieurs projets de fermes de rendu free ou commerciaux: vswarm, une initiative utilisant Boinc en développement, un projet commercial greenbutton:
http://support.vswarm.com/wiki/AppLuxrender
http://www.luxrenderfarm.de/luxfarm/
http://www.greenbutton.net/apps/luxrender

-le lien du wiki pour la doc:
http://www.luxrender.net/wiki/index.php?title=Main_Page

-une vidéo en anglais principalement sur l'installation de luxblend2.5
http://www.blendercookie.com/2010/11/11/introduction-to-luxrender-in-blender-2-5/

6) Utiliser le GPU et OpenCL
Quelques petites conditions sont nécessaires, la première pour utiliser OpenCL il faut une version >= 0.8 compilée AVEC le support OpenCL. Vous devez impérativement avoir installé "pylux", sinon vous ne verrez pas les options pour sélectionner le mode GPU. Vous aurez peut-être en plus à installer les derniers drivers ATI ou Nvidia.

Pour les cartes ATI, il faut installer le ATI Stream SDK:
http://developer.amd.com/gpu/ATIStreamSDK/downloads/Pages/default.aspx

Ensuite dans l'onglet "LuxRender Engine Configuration" à Renderer choisir le mode Hybrid:


Enfin à l'heure où nous écrivons ces lignes, seul l'algo "Path" peut exploiter le GPU, donc il convient de le sélectionner à l'onglet "Surface Integrator", ensuite cliquez "Advanced" et mettez "Light strategy" à "One".

Dans les dernières builds de LR, il y a une jauge GPU qui permet de connaître la part de la carte graphique dans le rendu.

David Bucciarelli est le principal contributeur du support OpenCL, ce travail a été d'abord incarné sous une forme experimental de raytracer appelé "SLG". Mais l'effort porte à présent sur le support OpenCL au sein même de LR v0.8.

Dans le futur différents modes seront disponibles, soit on pourra travailler en Hybride, c'est à dire CPU+GPU, soit en full GPU.

Un topo sur OpenCL et LR:
http://www.luxrender.net/wiki/index.php?title=Luxrender_and_OpenCL

Contribution le : 14/11/2010 18:55
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir et maîtriser Luxrender (+GPU)
Fou Furieux du Clan
Inscrit:
17/10/2003 19:24
Post(s): 263
Voici une nouvelle partie consacrée aux matériaux et aux textures, à l'éclairage dans LR, et aux réglages finaux.

1)Les matériaux
La philosophie générale de LR est de modéliser au mieux la réalité. En interne la lumière est calculée spectralement, chaque bande de fréquences reçoit des traitements propres et ce qu'on voit est le résultat recomposé de ces traitements séparés.

Dans Blender et avec "l'internal", l'utilisateur est habitué à imiter l'aspect de divers matériaux présents dans la réalité en agissant sur des paramètres de shading. Mais dans la réalité les matériaux renvoient la lumière selon des lois physiques complexes et ce petit nombre de réglages n'est pas suffisant pour rendre compte de toutes ces propriétés. Dans LR, les matériaux sont donc "pré-codés" selon leur nature et disponibles sous formes de "macros" ayant parfois des réglages optionels. Ce sont les programmeurs qui ont codé en amont sous formes de routines complexes ces matériaux pour coller au mieux à la réalité physique.

L'utilisateur final a donc une macro pour le métal, une autre pour la peinture de voiture, etc.. Pour le verre, il y a deux macros, glass1 et glass2, cette dernière permettant en plus de régler les propriétés d'absorption de la lumière le traversant. Il y a 12 matériaux de base plus 2 matériaux utilitaires (null et mix). Voir la liste et leur aspect, ici:
http://www.luxrender.net/wiki/index.php?title=LuxRender_Materials

Bien que ce ne soit pas encore possible avec la version actuelle de luxblend25, il existera la possibilité d'importer des exemples d'usage de ces matériaux disponibles dans une bibliothèque sur le site:
http://www.luxrender.net/lrmdb/en/

Le panneau des matériaux permet aussi de rendre un mesh lumineux (cliquer "Use Emission"), et aussi de définir des matériaux volumiques par exemple pour le liquide contenu par une bouteille en verre.

2)Les textures
Le panneau des textures offre au chois les deux systèmes de textures, celui de Blender et celui propre à LR. Quand vous voulez utilisez une texture Blender, il faut penser à sélectionner en plus "Use Blender Texture" dans la liste "LuxRender Type", elle, propre à LR.

A noter que pour utiliser une image il faut sélectionner "imagemap" dans la liste LR et non "Image or Movie" de Blender qui sera ignoré.

Voici la liste des textures LR:


Vous noterez qu'il y à droite un groupe "Fresnel Textures" servant à la caméra.

Il reste donc un groupe de 17 textures propres à LR dont:
-4 textures pour les lampes: blackbody, equalenergy, gaussian spectrum, lampspectrum. Elles permettent de simuler le contenu spectral d'un éclairage donné (ex: les lampes à filament avec la texture blackbody). Cf. cette page du wiki sur les éclairages.
-13 textures pour les matériaux, dont 4 sont utilitaires (scale, mix, null, uv)

La "philosophie" des options pour assigner les textures aux différents paramètres des shaders est également un peu différente qu'avec Blender.

Pour régler l'influence d'une normalmap par exemple il faut revenir au panneau des matériaux et cliquer sur "T" (pour texture) à droite de "Bump Map". Il en est de même pour d'autres paramètres de mapping qu'on est habitué à régler dans le panneau des textures.

Attention avec les textures, il y une différence de type (float ou int) à respecter avec les champs de LR. On ne peut donc pas toujours directement les assigner où on voudrait (c'est là que le matériau "mix" entre en jeu).

Toutefois la règle est simple:
-Si le "T" est à côté d'un rectangle "couleur", cela veut dire que la texture doit produire du RGB 24bit (3x8bit int) et donc des "entiers".
-Si le "T" est à côté d'un champ numérique alors la texture doit renvoyer des nombres en virgule flottante.

Là où ça devient un peu rocambolesque, c'est que les textures Blender sont en "float", on ne peut donc pas les assigner à la couleur diffuse mais par contre aucun problème pour le "Bump Map".

Pour pouvoir assigner une texture Blender à la couleur diffuse et mélanger ainsi 2 couleurs, il faut créer un materiau "mix" et assigner votre texture Blender au "Mix Amount". Ensuite créer deux autre matériaux qui seront ceux mélangés par la texture. Entrer dans le materiau Mix les noms des 2 matériaux que vous venez de créer, et voilà !

Les textures LR sont parfois plus flexibles car ils peuvent être réglés pour produire soit des flottants (float) soit des entiers (colors).

La page wiki de LR sur les textures.

Concernant les options de certaines textures:
-Pour "Metal", il y a différents presets (gold, silver) et aussi la possibilité d'utiliser des fichiers ".nk" qui sont des tableaux de données contenant l'IOR pour chaque bande spectrale des différents métaux connus. On trouve ces fichiers ici

-Pour Glass et Glass2, cochez "architectural" si vous comptez utiliser le verre pour le vitrage d'un bâtiment, cela simplifiera grandement les calculs (l'IOR ne sera pas pris en compte).


3)L'éclairage
Les différentes lampes de Blender sont prises en compte.
-Point et Spot sont des "singularités lumineuses" dans la mesure où ce sont des points infiniment petits dont on ne voit pas la source sur le rendu, et les ombres sont trop marquées pour être réalistes.
-Area affiche un carré ou un rectangle lumineux visible dans la scène (à la différence de Blender). Il n'émet que d'un seul côté. A utiliser de préférence pour tout éclairage.
-Hemi permet d'utiliser les map HDRI pour l'éclairage global d'une scène. Notez que l'angle du "Hemi" va influer sur l'orientation de la map.
-Sun est un peu comme Blender, même si ses réglages sont moins nombreux, il est visible et peut afficher un "sky".

Une autre possibilité est enfin de rendre lumineux n'importe quel mesh, pour cela il faut créer un matériau (genre Matte par exemple) et cocher "Use Emission" dans l'onglet "LuxRender Material Emission" du Material. Plus il y a de faces, plus les calculs seront longs.

les "Areas" et les meshs lumineux ont en commun 3 paramètres pour régler leur intensité:
-gain: il s'agit d'un simple multiplicateur
-power: la puissance en watt d'une lampe (100 par défaut)
-efficacy: le nombre de lumen par watt, 17 étant la valeur à défaut pour une lampe à filament

Ces 3 paramètres sont en fin de compte de la forme a*b*c, vous pouvez donc en utiliser qu'un seul. Les deux derniers s'utilisent conjointement quand on veux modéliser un éclairage réaliste selon les caractéristiques des différentes lampes:
http://www.mts.net/~william5/library/sources.htm

Utiliser les "Light Groups", c'est l'enfance de l'art, il suffit de remplacer "default" par le nom du groupe de votre choix pour chaque lampe (ou mesh lumineux) dans le champ Light Group. Seul la GUI de LR permet actuellement de régler interactivement le dosage de chaque groupe.

On peut enfin altérer le contenu spectral d'un source lumineuse en utilisant les 4 textures spéciales dont je parle plus haut.

On peut aussi agir sur la forme de la diffusion lumineuse (le cône de lumière) en utilisant des fichiers IES (de Illuminating Engineering Society, un groupement d'intérêts industriels collectant et offrant des données sur chaque type d'éclairage).

(partie à compléter sur l'usage des IES, rajouter un topo sur les éclairages volumétriques).

A noter que les lampes ont aussi un paramètre "Importance", il n'agit pas sur l'intensité lumineuse mais sert conjointement avec le paramètre "Light Strategy" de l'onglet "Scene/Surface Integrator" (visible en cliquant sur "advanced"). Plus une lampe a une importance élevée plus le moteur de rendu passera du temps à calculer ses réflexions lumineuses. Cela permet donc de définir une hiérarchie dans les lampes et éviter qu'une petite diode lumineuse profite du même temps de calcul que la lampe principale.

Dernière chose, si vous voulez éclairer une scène d'intérieur depuis la lumière du jour (externe donc), il est conseillé de placer des plans "Portal" sur les ouvertures pour indiquer au moteur de rendu d'où viendra la lumière. Cela forcera LR à calculer en priorité les rayons qui rentrent dans le bâtiment. Créez un simple plan qui recouvre votre fenêtre (ou groupe de fenêtre si il y en a plusieurs, c'est inutile de faire un plan par fenêtre et peut être contre-productif) et cochez "Exit Portal" dans "LuxRender Mesh Options" du panneau Mesh.
Attention les "portals" nécessitent une version de Luxrender >= v0.8

4)Les volumes
Depuis finalement pas si longtemps on peut utiliser un système de volume dans Luxrender.

En préambule, il est important de souligner que LR ne sait pas encore gérer les volumes hétérogènes (ç-à-d avec une densité variable). L'intérieur d'un objet sera donc fait de la même matière uniformément répartie.
Notez également que la majorité des matériaux prémodélisés (métaux, velours, glossy, matte, etc) sont opaques et donc pour que l'on puisse voir le volume intérieur de l'objet il faut les rendre partiellement transparents en spécifiant une valeur d'alpha.

Ces matériaux pré-modélisés concernent donc uniquement le revêtement extérieur en 2D d'un objet, et n'ont aucun lien avec le volume qui se trouve à l'intérieur. Les volumes n'héritent pas des propriétés des matériaux, et vice versa, et on peut donc avoir un cube de gaz recouvert de métal semi-transparant, et oui c'est un peu foufou. :)

Il y a deux types de volume (mais toujours "uniformes") gérés par LR, les volumes "clear" et ceux "homogenous". Le premier étant simplement une version simplifiée du second.

Les "clear" servent principalement pour les verres et les liquides qui ne contiennent pas de particules en "suspens". Le paramètre principal est l'absorption lumineuse. Dans un verre coloré par exemple les parties fines apparaîtront totalement transparentes et seules les parties épaisses se coloreront progressivement en fonction de l'épaisseur. En gros, plus la lumière transite dans le matériau plus elle est filtrée.

Les "homegenous", ou volumes homogènes en bon français, proposent comme réglage supplémentaire la dispersion lumineuse (scattering). Il faut imaginer présent dans le volume une quantité uniforme de particules en suspens qui vont disperser les photons entrant, le rendant progressivement opaque. Les usages sont multiples, on peut faire du brouillard (les particules d'eau ayant cette fonction de dispersion), des eaux boueuses, du lait, et en fait toute sorte d'effet de "Subsurface scattering" comme la peau ou le corps d'une bougie.

Il est important de comprendre que les volumes ont en outre chacun un réglage d'IOR (indice de réfraction), et que pour que Luxrender puissent combiner les différents volumes (par exemple un verre, son liquide et l'atmosphère de la pièce), il faut définir un "ordre". A savoir qui contient qui, qui est l'intérieur et qui est l'extérieur.

Comment faire du Subsurface Scattering avec n'importe quel matériau ?
Pour cela c'est très simple définissez lui un volume interne(ce que vous voudrez avec les bonnes valeur IOR/absorption/scattering) et un externe (en général l'air de la pièce) et régler la valeur d'alpha à votre souhait. De faible valeur d'alpha vont permettre de rendre une oreille légèrement translucide, plus d'alpha et votre objet deviendra transparent et sera probablement non réaliste, mais qui sait plus artistique.


Comme je le disais en préambule, à ce stade il n'y a pas de volume "heterogenous", c'est à dire des volumes dont les particules internes auraient une densité variable (avec un système de voxels par exemple).
Il y a donc pas possibilité de faire de la fumée de cette façon, il existe cependant un système "volumegrid" qui est encore utilisable mais à considérer comme déprécié même si luxblend25 permet de l'utiliser. Le support des volumes hétérogènes est prévu, mais pas pour tout suite.


Dernière remarque, Utilisez l'intégrateur "single" quand vous faites un effet atmosphérique et "multi" quand vous faites un objet translucide, pour avoir de meilleurs performances. Vous pouvez également consulter la documentation du wiki:
http://www.luxrender.net/wiki/LuxRender_Volumes


5)Rendu Final et Animation
Firefly Rejection= Cette option est dans l'onglet quand on sélectionne la caméra, elle permet de réduire le phénomène des lucioles (*). Une valeur de 2 à 3 est suffisante pour commencer, 10 est considéré comme très fort. Attention il y a un coût en temps de calcul.

Clay Render= Tout récent ce mode substituant tous les matériaux par un unique matériau blanc mat est pour le moment dans Test/Debugging Options du panneau Scene/Render.

Le Tonemapper est responsable du traitement de l'image finale, par défaut le mode "Reinhard" est comme un oeil humain qui s'adapte à la luminosité et fait en sorte que l'image soit bien exposée. Cela peut dérouter quand on fait une scène sombre car si on baisse les lumières le tonemapper va contrebalancer en montant la luminosité globale, ce qui va à l'encontre de l'effet voulu. Dans ce cas là il faut agir sur Pre/Post ou Burn. "Burn" a un léger effet sur le constraste en même temps qu'il agit sur la luminosité globale, et il faut jouer en conjonction soit avec "Pre" ou "Post" qui eux sont de simples multiplicateurs (la différence est où il se situe dans la chaîne).

Dans une animation, l'automatisme du mode Reinhard risque de poser des problèmes, ou alors on souhaite se rapprocher des caractéristiques d'un appareil photo. Pour cela on peut utiliser le mode "Linear" qui propose les réglages suivants:

Sensivity: la sensibilité du film en ASA/ISO
Exposure : le temps d'exposition en fraction de seconde
Fstop : la fermeture du diaphragme
Gamma : une mesure de correction globale

Note: il serait intéressant de savoir si Fstop joue aussi sur la profondeur de champ comme un vrai appareil.

Enfin il existe d'autres modes, comme "Autolinear" qui semble être un mode automatique, un peu comme "Reinhard", "Contraste" qui dispose que d'un seul paramètre "magique" et "MaxWhite".

Un petit mot sur les animations, on peut en faire, malgré que cela soit en pratique très difficile à cause du temps de rendu propre à LuxRender (il y a toutefois des modes biaisés qui peuvent rendre la chose possible). Pour cela il faut mettre une limite à chaque image de deux façons au choix dans le paneau Render à l'onglet Sampler, soit avec SPP (Samples par pixel) soit Halt time tout simplement.


Lexique
(*)Lucioles= Traduction de Firefly en anglais, ce terme désigne les points blancs qui apparaissent au cours du rendu, et logiquement disparaissent au bout d'un petit paquet d'heures (sinon de jours). Les lucioles représentent des cas où la lumière a rebondi sur chaque objet comme sur des miroirs sans perdre en luminosité. Ce sont des singularités imprévues qui finiront par disparaître avec le nombre des échantillons par pixel.

Subsurface Scattering = Dispersion lumineuse ayant lieu sous la surface de certains matériaux translucide comme la peau ou la cire d'une bougie. Une oreille devient légèrement rouge si une une lampe est derrière.

Liens divers
Sur Blendercoockie une très bonne introduction pour faire un verre avec un liquide:
http://www.blendercookie.com/2011/05/03/rendering-a-liquid-filled-glass-in-luxrender/
Texturer et éclairer une scène d'intérieur:
http://www.blendercookie.com/2011/07/07/texturing-lighting-and-rendering-a-interior-scene-with-luxrender/

Contribution le : 18/11/2010 02:24
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
OverdOzed
Inscrit:
18/09/2009 20:52
De Paris
Post(s): 1859
Très intéressante présentation. Il me semble que pour lancer Lux en mode serveur; c'est luxconsole -s (et non Linuxconsole; tu devais être fatigué).
Sinon; pour utiliser Luxrender + GPU (mode hybride), tous les algos de rendu ne sont pas encore supportés, c'est assez contraignant...

LadeHeria

Contribution le : 18/11/2010 07:55
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
Touriste
Inscrit:
11/12/2009 09:20
Post(s): 9
L'algorithme SPPM est en cours d'intégration dans LuxRender. C'est un algorithme qui a les avantages du photon mapping sans en avoir les inconvénients. Il est fort probable qu'il devienne à terme l'algorithme par défaut de LuxRender.

Jeanphi

Contribution le : 18/11/2010 09:28
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
OverdOzed
Inscrit:
20/06/2009 14:39
De vinette
Post(s): 1170
Ton tuto est bien expliqué, mais tu devrais faire des screenshot pour présenter l'interface, et faire le rendu d'une même scène avec les différents types rendu.

Sinon tu peux le proposer a Ebrain, mais il n'y a pas de section de moteur de rendu externe (peut-être à créer ou alors ce sujet à déjà été débattu sur le clan).

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


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
Fou Furieux du Clan
Inscrit:
17/10/2003 19:24
Post(s): 263
Merci LadeHeria, tu as l'oeil camarade, en effet je m'étais trompé, lol. Rectifié ! (et linuxmerge aussi, même bourde, fatigué oui et puis dimanche = alcool de poire en fin de repas, mais chut..) :)

J'ai pas mal réédité le premier post depuis sa création..

Merci pour vos retours positifs. Je dois pas mal absorber de nouveaux concepts d'un coup et je vais peaufiner tout ça..

Maixem, oui il serait bon de rajouter quelques screenshots (pas encore eu le temps). Et je passerai sur le chat pour en toucher un mot au patron.

Contribution le : 18/11/2010 14:13
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
Fou Furieux du Clan
Inscrit:
17/10/2003 19:24
Post(s): 263
Yo, j'ai relu l'ensemble et développé la deuxième partie.

Il me reste quelques points à préciser, je compte rajouter une partie sur les éclairages, la GUI et peut-être les animations...

Et un mini-lexique (fireflies, dispertion, caustiques, absorbtion, brefringence).


EDIT du 25/11: ait rajouté un chapitre sur l'éclairage.

Contribution le : 22/11/2010 03:02
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
Clan Afficionado
Inscrit:
19/04/2010 16:39
Post(s): 45
Est-ce que LuxRender propose le rendu par GPU ?

Contribution le : 22/12/2010 17:44
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
OverdOzed
Inscrit:
18/09/2009 20:52
De Paris
Post(s): 1859
La version de développement 0.8 oui.

LadeHeria

Contribution le : 22/12/2010 17:58
Créer un fichier PDF de la contribution Imprimer


Re: [Mini-tuto] Découvrir LuxRender (+GPU)
Clan Afficionado
Inscrit:
19/04/2010 16:39
Post(s): 45
J'avais testé LuxRender mais apparemment, il utilisait que le CPU. Le mieux serait d'utiliser le CPU et le GPU en même temps.

Contribution le : 22/12/2010 18:03
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 3 4 5 »




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
[WIP] et travaux terminés [WIP] Scène de Pti dej à la Française - EVEE a donf - 2.9 Blender    [1][2] 16 173 Aujourd'hui 11:42:49
moonboots 
Questions & Réponses hdri en mode ombrage 2 88 Aujourd'hui 10:27:06
kimlicrea 
Questions & Réponses Modifier les attribue de plusieurs objet en même temps (lumière) 3 51 Aujourd'hui 10:21:47
kimlicrea 
[WIP] et travaux terminés [terminé] Moderno 404    [1][2] 13 460 Hier 20:26:41
moonboots 
Questions & Réponses Lissage de face 4 66 Hier 19:43:53
Maxence34 
[WIP] et travaux terminés [terminé] Chaussures Très Réalistes (.bend disponible) 4 107 Hier 18:21:58
meltingman 
Mes premières images sous Blender (débutants) Première réalisation    [1][2] 15 8963 Hier 02:13:26
Talason 
The Blender Clan 'tchat Addon convertisseur d'images en courbes 2 64 22/10 20:29:31
Rimpotche 
The Blender Clan 'tchat Pour les arboriculteurs 3D 1 68 22/10 18:05:18
moonboots 
Hors Sujet !! Faire parler son personnage en 5 minutes - tutoriel Francais - Blender 2.9 4 118 22/10 13:03:28
meltingman 
GIMP Faire un drégradé selon la forme sous gimp 9 97 22/10 12:49:57
Thewada 
Questions & Réponses [résolu] Perte des Vertex lors d'un Separate 7 96 21/10 21:45:05
debutant 
[WIP] et travaux terminés [terminé] Pantin articulé    [1][2] 12 6739 21/10 18:53:51
meltingman 
Hors Sujet !! Une citrouille en 13 clics - Tutoriel - Blender 2.9 2 158 19/10 23:40:15
meltingman 
Hors Sujet !! un banc de dauphin - tutoriel - workflow sculpte > bake - 2.9    [1][2] 12 449 19/10 23:36:41
meltingman 
Questions & Réponses [résolu] Particule réaliste pour un sprite    [1][2] 12 669 19/10 13:39:34
Redstar 
Questions & Réponses Eevee : chevauchements en profondeur 4 184 19/10 11:46:51
meltingman 
Questions & Réponses Dans Blender 2.9, rendre une animation avec seulement la réflexion    [1][2] 16 596 19/10 11:08:45
ludo66 
Questions & Réponses Besoin de vos retours ici sur les changements 2.9    [1][2][3] 20 635 18/10 16:02:23
meltingman 
The Blender Clan 'tchat Moniteur endommagé 2 369 18/10 11:59:42
Rimpotche 

Qui est en ligne
186 utilisateur(s) en ligne (dont 115 sur Forums)

Membre(s): 0
Invité(s): 186


plus...
Nouveaux membres
Christoph 24/10/2020
CherieSchi 24/10/2020
FallonAlve 24/10/2020
GordonB93 24/10/2020
TysonLoyd 24/10/2020
AmeeTaber4 24/10/2020
Sylv07 23/10/2020
Maxence34 23/10/2020
Talason 23/10/2020
mahaa 22/10/2020
Dernier Ajout
mirages-preview~0.jpg

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