Actus GPU unbiased

mercredi 26 août 2009

Mental Ray progressive rendering

J'ai déjà a plusieurs reprises évoqué le rendu temps réel que l'on peut aussi appelé rendu progressif. Dans ce domaine, Vray communique depuis de nombreux mois sur ses capacités de rendu en temps réel qui sont maintenant intégrées a Vray 1.5SP3.
Dernièrement, Chaosgroup a même fait une démonstration assez impressionnante en utilisant CUDA, technologie GPU développée par Nvidia (qui soit dit en passant est propriétaire de Mental Image!).
De son coté, Autodesk communique moins sur ce point, et pourtant le rendu progressif existe dans MR pour Maya. Mais (car on a toujours des Mais avec Autodesk :\ ) si la techno est disponible dans Mental Ray 3.7, elle n'est pas accessible par les utilisateurs de Maya...
Pour palier a ce contretemps, Sylvain Berger (TD a Montréal) a écrit un script pour utiliser cette fonctionnalité. Le rendu progressif devient alors actif en rendu image, par zone et aussi en IPR (interactive photorealistic rendering). Pour l'utiliser, il vous faudra Maya 2010 et le script que vous trouverez sur le blog de l'auteur ou sur Highend3D

Essayer c'est adopter :)


lundi 10 août 2009

Indigo Shaders (part3) -- Specular


Par specular, Indigo entend matériau diélectrique.
Si vous n'êtes pas habitués à ce terme, voici ce que wikipedia nous en dit :
Un matériau est diélectrique si...
Pour faire simple, le shader Specular sert à représenter les matériaux transparents (eau, verre, plastiques...)
Du fait de leur nature transparente, ces matériaux se différencient par leur capacité de réfraction de la lumière, qui une fois de plus, dépend de l'IOR.

_ Le premier paramètre du Specular est la transparence. on peut en effet créer des objets diélectriques opaques. Sur mon rendu, il sort en noir. A vérifier si le résultat est conforme.
Si la transparence est cochée, le matériau est totalement transparent.

_ Vient ensuite l'indice de réfraction.
Pour exemple, voici l'effet de déformation de la lumière à travers des objets transparents d'IOR différents (source 2cos3d.net) :

_ Ensuite, la couleur du matériau est définit par la valeur d'absorption, qui est traduite par une couleur RVB.

_ Pour finir, une part du réalisme des matériaux diélectriques repose sur le coefficient Cauchy B, qui définit la réfraction dispersive, effet que l'on voit sur les diamants par exemple.
Attention, ce paramètre est très gourmand en temps de rendu pour obtenir une dispersion suffisamment définie...

A noter, que lorsque l'on rend un matériaux diélectrique, Indigo gère automatique les caustiques qui en résultent.

Pour information :
Verre:
IOR: autour de 1.45, communément 1.5 (pas en dessous de 1.4, pas plus de 1.7 pour du verre classique.)
Cauchy: approx entre 0.001 et 0.008
Eau:
IOR: 1.33 +-0.01
Cauchy: autour de 0.0013 (+ -0.0005)

Pour un complément d'images et de références sur les IOR et les Cauchy B des Specular vous pouvez consulter ce post de Flipcode

vendredi 7 août 2009

Indigo Shaders (part2) -- Phong


Deuxième partie de ma revue des shaders Indigo
Parlons maintenant du Phong
Comme vous le voyez sur l'image ci dessus, c'est le modèle surfacique qui définit les objets réfléchissants.
Le phong repose sur deux variables principales, l'indice de réfraction (IOR) et le degré de reflectance (Exponent). On obtient donc des réflexions physiquement justes, plus ou moins floues.
Le Shader phong peut être décrit de 3 manières différentes :
_ IOR (indice de réfraction)
_ Specular reflectivity
_ NK data

Phong [IOR]
A chaque matière correspond un indice de réfraction.
Vous trouverez plus d'informations en suivant le lien ci dessus.
Pour référence, l'indice de l'air est 1; l'indice de l'eau est 1.33; et l'indice du verre est 1.5.
Ces valeurs seront plus utiles pour le Shader Specular, mais gardez a l'esprit qu'un Phong IOR est de plus en plus réfléchissant si l'indice augmente; et la réflexion est plus nette quand l'Exponent augmente.
Un Exponent en dessous de 1000 est flou; au dessus de 1000 ça devient net; On peut monter la valeur jusqu'à 1 million ou plus pour les matières extrêmement réfléchissantes.

Specular reflectivity

Cette méthode permet de représenter des matériaux avec réflexion métallique.
Dans ce cas, on ne règle que la couleur (nommée specular reflectivity) et l'exponent.
Ce shader sert souvent de base au Carpaint Shaders qui s'obtiennent par mélange.

NK data

Ce mode, aussi puissant qu'il est spécial, reproduit des matériaux métalliques physiques en les piochant dans une base de donnée.


Vous voulez rendre du chrome, de l'or, de l'aluminium...inutile de régler un shader; il suffit de récupérer sa définition dans la liste!
Dans ce cas, les réglages sont extrêmement simplifiés mais vous laissent la possibilité de modifier l'Exponent et donc la quantité de flou de la réflexion
Le lien suivant indique les matériaux NK disponibles et compatibles avec indigo.
NK materials in Indigo

Le phong, très large dans ses réglages, vous permet de reproduire un très grande quantité de matériaux, métalliques ou non. Outre les objets mats, seuls les objets en verre demandent un shader spécifique. C'est ce que nous verrons la prochaine fois...

Indigo Shaders -- Diffuse



Je profite de mes vacances :) pour faire le tour des matériaux Indigo avec la version bêta du prochain exporter MtI 1.1.
Pour ceux que ca intéresse, je vous invite a consulter les sujets relatifs sur Mayalounge et sur le forum Indigo. Vous pouvez obtenir une version de MtI en envoyant un message prive a CTZn, le développeur de l'exporter.

Dans Indigo il existe 6 types de matériaux :
_ Diffuse
_ Phong
_ Specular
_ Glossy Transparent
_ Oren Nayar
_ Null
A l'exception de Null, qui ne sert qu'a mélanger les matériaux, ils ont tous des caractéristiques physiques distinctes qui couvrent les grandes familles de shaders nécessaires en rendu 3D.
On peut considérer un septième matériau, le Blend, qui sert justement a mélanger plusieurs Shaders entre eux, pour obtenir des surfaces complexes.

Aujourd'hui, on commence par le shader Diffuse.

Diffuse
L'ombrage Diffus, qui peut être considéré comme standard, repose sur l'algorithme Lambert.
Il est principalement définit par la couleur de l'objet, appelé Albedo dans Indigo. Comme on est dans un moteur physique, on peut, en théorie, entrer n'importe quelle couleur du spectre lumineux exprimée en longueur d'onde.
Pour plus d'informations sur la physique des couleurs, reportez vous a ces articles Wikipedia :
Albedo
Spectre électromagnétique
Le diffus sert a simuler les objets mats comme les murs, le papier...
Il supporte le bump et le displacement

Une option des diffus, Transmitter, permet de simuler la dispersion de la lumiere sous la surface de l'objet. Cela permet, en évitant les temps de calcul trop long, d'imiter un SSS sur les surfaces planes.
Plus d'infos sur le BSDF

total des pages vues