Actus GPU unbiased

samedi 15 janvier 2011

Making of hetre - jatoba - marty :: Octane render



Cela faisait quelques temps que je voulais rédiger un tutoriel sur l'utilisation de Octane render. Je profite d'avoir terminé les 3 images de mon post précédent pour expliquer les points clés pour préparer votre scène 3D avant de l'exporter et de la calculer dans Octane render.

Image finale


Concept

Je suis parti sur cette idée du triptyque pour que chaque image recèle un morceau du nombre 2011. sur la première image, la pendule indique 2 heures (le deux est écrit sur la pendule). Dans la seconde, le 0 est représente par le trou dans le mur. Et dans la dernière, les baguettes formes le 11. Dans chaque image, l’élément important est rouge, alors que les autres objets sont très neutres dans une gamme de gris. Au niveau composition, on part a gauche d'une image basée sur les horizontales et les verticales; on évolue ensuite sur deux cadrages plus obliques avec des points de vue montant. Cet effet symbolise la bascule d'une année vers l'autre, d'une année que l'on connait (direction stable) vers une nouvelle inconnue (oblique). Tous les objets importants sont placés dans le cadre selon la règle des tiers. Tout est donc très classique...

fig 1. Croquis préparatoire


Modélisation

Rien de bien particulier au niveau modélisation, voir même du très basique. Je voulais que tout soit sobre et épuré dans les formes.  J'ai surtout travaillé depuis des références de magazines. Les objets sont conçus à partir de box modeling ou de splines. J'ai modélisé d’après nature pour la pendule de "hêtre" et le tasse de "jatoba" car j'ai les originaux à la maison.
Les pièces ne comportent que le sol, un ou plusieurs mur et parfois le plafond pour avoir une ombre portée. Je ne les ai pas entièrement modélisé car l’éclairage principal vient d'une image HDRI. Les plans 3D que vous voyez dans les fig 2 à 4 sont des géométries qui deviendront des meshlights dans Octane pour précisez les éclairages au niveaux ambiances et couleurs.

fig 2. scène 3D image "hêtre"
fig 3. scène 3D image "jatoba"
fig 4. scène 3D image "marty"

Le seul objet qui ait demandé plus de travail est le divan en cuir puisque les coutures ont été sculptées dans Mudox (fig 6.). Après dépliage des UV, j'ai repéré la position des coutures en peignant sur le divan grâce à l'outil Viewport Canvas de Max (fig 5.). L'objet est ensuite exporté en OBJ vers Mudbox pour le scupt. Les volumes créés sont enfin calculés en texture de Normal mapping qui sera directement appliquée dans Octane (fig 7.).

fig 5. texture UV sur le divan avec ajout de repères en rouge avant sculpture dans Mudbox

fig 6. Visualisation temps réel dans Mudbox avec exposure, DOF et bloom

fig 7. normal map du corps du divan


Textures

La majorité des textures utilisées sont des photos retravaillées dans photoshop. Avant toute retouche, j'égalise l'image pour gommer les différences de lumière. Pour cela j'utilise un script que vous pouvez trouver ici.
Après je rajoute au besoin des calques d'ajustement pour la teinte, les niveaux... Je travaille au maximum avec des calques dynamiques, y compris pour les effets, pour garder l'historique des réglages et pouvoir intervenir de nouveau plus tard.
A partir de là, j'ai une image pour la map de diffuse. En passant ce canal en noir et blanc et en ajustant la courbe, le contraste...j'obtiens la map de spéculaire et de bump. Ces trois textures sont suffisantes dans la plupart des cas (fig 8.)
Si j'ai besoin d'une normal map j'utilise le script nDo qui convertie les images, les graphismes et les tracés vectoriels créés dans photoshop.

fig 8. les 3 maps du matériau parquet
Pour les parquets, comme je l'ai souvent cité dans mes posts, j'utilise le maxscript FloorGenerator. A partir d'une spline qui représente le contour de la pièce, il génère un parquet au lames paramétrables. Avant de texturer l'objet, je le convertie en editable poly et je vérifie et ajuste les UV avec un unwrapUVW. Pour chaque parquet des 3 images, j'ai utilisé 5 ID matériau qui correspondent à un multi sous matériau (fig 9.)

fig 9. multi sous matériaux de l'objet plancher

Matériaux

Avant de procéder a l'export des scènes vers Octane, il convient de vérifier l'assigner correctement les matériaux aux objets. En effet, Octane de gère pas les objets mais bien les shaders qui leurs sont attachés. C'est pourquoi on peut anticiper le réglages des matériaux dans 3ds max. Octane utilise trois types d'ombrage : diffuse, glossy et specular (fig 10.). Quel que soit le shader dans Octane, on crée un matériau standard dans max. Ce sont les réglages de ce dernier qui détermineront son type au rendu.

fig 10. les 3 shaders d'Octane render

_ Pour régler un shader Diffuse, renseignez la couleur diffuse (RVB ou texture) et veillez a garder la valeur de speculaire à 0. Les objets meshlights utilisent le shader diffuse.
_ Pour régler un shader Glossy, renseignez la couleur diffuse (RVB ou texture). La valeur de spéculaire doit etre supérieure à 0 et l'indice de réfraction égale à 1.
_ Pour régler un shader Glossy, renseignez la couleur diffuse (RVB ou texture). La valeur de spéculaire doit être supérieure à 0 et l'indice de refraction egale à 1,5.
_ Si vous n'appliquez pas de matériau dans max et juste une couleur wire par défaut, Octane génèrera un Glossy.


Pour gagner du temps dans Octane, on peut aussi assigner des textures sur les matériaux. Sont exportés la couleur de diffuse, la couleur de spéculaire et le bump (fig 11.)

fig 11. canaux de textures exportés vers Octane

Export

Octane render est un moteur de rendu independant des applications 3D mais il existe un exporter pour la plupart des packages. Sinon un export de votre scene est suffisant pour calculer dans Octane.
Mes paramètres sont très simples puisque je ne renseigne que la résolution de l'image et la caméra (fig 12.). Et c'est suffisant pour la majorité des cas.

fig 12. paramètres d'export

Éclairage

A partir de ce moment, tout ce fait dans Octane.
Avant d'aller plus loin, il est important de préciser que le logiciel intègre 4 moteurs de rendus plus ou moins rapides et réalistes. Le clay mode est un mode ambient occlusion. Le color clay mode donne de l'AO et des textures. Le direct lighting est un moteur unbiased tres rapide mais qui donne pas un résultat totalement réaliste  car il ne gère pas tous les paramètres (bleeding, multi rebonds...) . Le dernier, le path tracing est le plus réaliste et aussi le plus lent (fig 13.).

fig 13. les 4 moteurs de rendu
J'ai l'habitude de faire tous les réglages d’éclairage et de matériaux en direct lighting avec une petite résolution d'image. J'utilise le path tracing uniquement pour le rendu final.
Comme dit précédemment les scènes sont éclairées par une image au format HDRI, Apartment_Spherical_HiRes.hdr (fig 14.) et par des meshlights. Grâce aux options de rotations disponibles sur les images d’éclairage, j'ai orienté la lumière de la fenêtre selon mes besoins. Les aera lights s’obtiennent, elles, avec les matériaux.
A ce stade, je fais aussi un premier réglage de l'exposition; en particulier le gamma de l'image, dont dépend l’éclairage définitif. Pour ces images, le gamma est autour de 1.1 pour baisser le contraste du rendu et ainsi conserver des blancs lumineux.

fig 14. image d’éclairage

Matériaux Octane

C'est à mon gout la partie la plus riche dans Octane. L'apport du rendu temps réel change complètement les habitudes de travail, et avec le graph nodal expérimenter des matériaux est un vrai plaisir.
Pour créer des matériaux, on a le choix entre le node inspector et le graph editor. Quand il s'agit de modifier quelques couleurs ou de changer des textures de diffuse, bump...l'inspector est suffisant. Mais quand les shaders se complexifient le graph devient indispensable.
Dans le cas du parquet, vu plus haut, le shader glossy ne comporte que les 3 textures récupérer pendant l'export. L'inspector suffit (fig 15.)

fig 15. matériau bois au sol

Par contre sur l'image marty, les matériaux du plat rectangulaire et des abat jour sont des mix de deux shaders. Ces derniers sont créés dans le graph à l'aide de macros (fig 16.).

fig 16. réseau nodal à l’intérieur d'un macro material

Comme dit plus haut, les éclairages artificiels du type aeralights, s'obtiennent avec un shader. Il suffit de créer un diffuse et d'activer l'option émissive. Deux options possibles : blackbody et texture. La première considère la température de couleur et la puissance (fig 17.); et la deuxième éclaire simplement par rapport a l'image.
Dans les 3 scènes, j'ai utilisé des émissives blackbody.

fig 17. paramètres d’émission blackbody


Le rendu final

Une fois que tout est en place, je règle la profondeur de champ. Pour travailler, je mets l'aperture de la camera à 0 pour ne pas être dérangé par la profondeur de champ. Par défaut la camera est en mode auto focus (AF) et fait la mise au point au centre de l'image. Pour modifier le point focal, il suffit de cliquer dans la vue sur l'objet a mettre au point avec la pipette AF (fig 18.).

fig 18. réglages différents d'aperture et de point focal


Il ne reste plus qu'a régler la taille de l'image (ici du 2048x2048 px) et à activer le moteur pathtracing. Après environ 2 h 30 pour chacune des images, le grain est suffisamment faible pour arrêter le calcul. Il faut bien garder a l'esprit que les moteurs unbiased rendent sans limite de temps. L'utilisateur décide quand le calcul est terminé. Par contre, peut arrêter le processus en fixant au préalable un nombre de samples maximum par pixel à atteindre.

Post process

Les retouches se passent en deux temps. Une partie de correction d'exposition dans Octane. Et une post production proprement dite dans photoshop pour l'aberration chromatique (dans le cas présent). Cette fonction sera intégrée dans la prochaine version beta 2.4 qui doit sortir dans quelques jours.
La node d'exposition d'Octane (appelée Preview Imager) comporte des outils exposition de la pellicule, ainsi que le vigneting, la saturation et le hotpixel Removal, algorithme magique qui supprime les points blancs qui peuvent résulter des moteurs unbiased (fig 19.)
J'ai surtout modifié légèrement l'ouverture (fstop) et la sensibilité (ISO) pour arriver aux images finales. J'ai aussi rajouté du vignetting entre 0.3 et 0.5.
Je sauve ensuite plusieurs versions des rendus avec des responses différents, qui sont des filtres qui modifient l'ambiance de l'image en utilisant les caractéristiques techniques des pellicules argentiques.

fig 19. les paramètres d'exposition

Le mot de la fin

La fabrication des 3 images et l'assemblage pour la carte de voeux m'ont demandé une dizaine de jours à raison de 3 à 4 heures par jour. La date butoir du premier janvier, fixée pour terminer, m'a permis de travailler en quasi conditions de production.
Cette présentation de mon flux de travail et du fonctionnement d'Octane render arrive à sa fin. Merci d'avoir lu ce post jusqu'au bout (pour les courageux). Et je souhaite qu'il vous ait donné envie d'essayer ce logiciel très prometteur (classé parmi les 20 évènements 3D de 2010 par CGSociety).
N’hésitez pas à laisser un commentaire si vous désirez que je développe un aspect de son utilisation.

dimanche 2 janvier 2011

bonne année 2011!

version 300dpi

Je souhaite une bonne et heureuse année à tous les lecteurs habituels ou de passage de ce blog!
Et je souhaite à tous une année 2011 pleine de projets motivants et empreints de challenge.
Je voulais commencer cette année en me fixant moi même un petit challenge en créant ces trois images dans des domaines que j'affectionne : le graphisme, l’épure et le design.
Cela donne des rendus 3D qui rassemblés en triptyque pour ma carte de voeu donne l'occasion de créer un "puzzle allégorique".
Coté technique, les scènes ont été modélisées et texturées dans 3dsmax et rendues avec Octane render, qui ne me quitte plus pour mes travaux personnels.
Et comme j'aime bien glisser des objets de mon quotidien dans mes images, j'ai cette fois placé l’horloge Nava qui trône sur ma table de cuisine.
Au total, entre la modelisation des objets, la mise en scène, la création des textures et le rendu, la carte de voeux terminée  m'a demandé une dizaine de jours.
Les images avant retouches sur Photoshop (aberration chromatique et vignetting) ont été rendues en 2048x2048 px. Les versions définitives ci dessous sont en 1600x1600px.




total des pages vues