PDA

Voir la version complète : Tut'Minutes© - Surface de planete et shader "colorisation"



tarlack
09/07/2006, 23h20
Faire des surfaces de planete 100% procedurales plus realistes grace au shader colorisation

Niveau : debutant, faut juste savoir copier coller des shaders (pour gagner du temps).
ce tuto est a faire de preference avec la 9 (pour le sub-polygon displacement) mais peut se faire avec versions plus anciennes en mettant un HN a 6 ou 7 ( :arg: ).

excusez moi piur les accents manquants, mais je suis avec un clavier qwerty, donc les accents... :S

Quand on veut faire une planete vue de loin et de pres, on a souvent un probleme avec les materiaux :
soit les textures pixellisent au bout d'un temps, soit on a un probleme pour associer un type de materiaux a une zone delimitee en altitude (par exemple de la neige en altitude, de l'herbe a l'intermediaire et du sable au fond de l'eau, et qui marche quelque soit la forme de base du relief (sphere, plan, etc).

Un moyen d'eviter tout cela est de passer par une utilisation un peu detournee du shader colorisation.
Attention : la suite ne marche que si la surface est faite avec une map de displacement (texture ou shader). Au pire, essayez de recuperer une telle map grace a la technique de doudou, xander et archeo (cf http://www.frenchcinema4d.com/forum/index.php?topic=14784.0 )

Donc l'objectif, c'est d'arriver a faire en moins de 10 minutes ce genre d'images :
http://tarlack.free.fr/fc4d/tuts/surface_planete/img_finale_layers_courbes.jpg

ici, on voit meme des courbes de niveau de dessinees en plus de la matiere de la surface.

Je sais que les shaders pour les differents niveaux sont un peu :puke:, mais j'ai fait ca vite fait, ce n'etait pas le but du tuto.

Voila, etape par etape, comment arriver a ce genre d'image.

1ere etape : modelisation.

Creez une sphere, parametres par defaut, et rendez la editable.
http://tarlack.free.fr/fc4d/tuts/surface_planete/sphere.jpg

La partie mod' est finie (ou presque). :mrgreen:

2eme etape : mise en place du deplacement

Creez un nouveau materiau, decochez specularite et activez le displacement, ainsi que le sous deplacemenet
http://tarlack.free.fr/fc4d/tuts/surface_planete/displacement.jpg

Pour creer le relief, on va utiliser une fusion de 2 bruits de types Nutous, pas a la meme echelle. Ceci permet de creer de gros reliefs et de mettre des details dans les grands reliefs crees.

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_displacement.jpg

Le mode de fusion est en lighten afin que le bruit du haut s'ajoute a celui qui est en bas (le mode add ne faisait pas ce que je voulais, donc j'ai pris celui la...)
Le bruit du bas est le bruit qui cree les grandes structures du relief, les continents, les oceans tout ca.
Le voici en plus detaille :
http://tarlack.free.fr/fc4d/tuts/surface_planete/det_disp_nutous_bas.jpg

On remarque l'echelle globale a 1000%.

Le bruit Nutous du haut a une echelle plus petite (10%) et possede de grandes plages de noir.
ceci est obtenu grace aux sliders 'low clip' et 'high clip'. Ici, le high clip est baisse, ce qui veut dire que les zones blanches sont plus rares
http://tarlack.free.fr/fc4d/tuts/surface_planete/det_disp_nutous_haut.jpg

Pour avoir de toutes petites structures sans un seul poly en plus, un bruit aleatoire a ete mis dans le canal bump, avec une intensite de 2% (pour que ce soit juste perceptible, sans amener des parasites non voulus)

En appliquant ce materiau en mode spherique a votre sphere, vous devez obtenir quelque chose dans cet esprit
http://tarlack.free.fr/fc4d/tuts/surface_planete/sphere_disp_bump.jpg

3eme etape : mise en couleur

Bon pour l'instant, on n'a pas trop vu le shader colorisation...Ben le voili le voila !
En effet, c'est lui qui va nous permettre d'assigner a telle plage d'altitude telle couleur. Le shader colorisation permet de changer la couleur d'un materiau par un autre. Le controle se fait via un degrade.
Copiez dans le canal couleur la fusion qui sert pour le deplacement. Creez ensuite un shader colorisation, la fusion devrait se retrouver dans la colorisation.

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_couleur.jpg

Et voici le degrade que j'ai :

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_coul_colorizer.jpg

le degrade remplace les couleurs en allant du noir (a gauche du degrade) au blanc (a droite).
Ainsi, les zones en noires de la map de deplacement, donc les plus basses en altitude sur ma planete, seront en jaune (comme le sable), et les plus hautes (celles en blanc dans la map de deplacement) seront en blanc, comme la neige.

ceci donne, apres un chtit rendu :

http://tarlack.free.fr/fc4d/tuts/surface_planete/sphere_dist_bump_coul.jpg

Pas mal hein ? on voit deja bien les differentes plages d'altitudes. Mais sur une planete y a de la flotte quand meme (enfin une planete habitable). ben allons-y !

4eme etape : modelisation bis, ca se complique :mrgreen:

Creez une deuxieme sphere, pas besoin de la rendre editable. glissez la dans un hypernurbs, parametres par defaut.
Retrecissez la sphere afin qu'elle soit legerement plus petite que la sphere de la planete (le displacement creera les trous qu'il faut)

Avec la sphere de l'eau selectionnee :

http://tarlack.free.fr/fc4d/tuts/surface_planete/sphere_eau_terre.jpg

Bon, la mod c'est finie (pour de bon cette fois-ci)

creez un materiau d'eau tout bete :
- couleur blanc a 10-20%,
- reflexion a 50%
- transparence a 20%
Pas besoin de bump ici, a l'echelle planetaire l'eau d'un ocean parait "plate".

Un petit rendu pour voir ?
pas de probleme :

http://tarlack.free.fr/fc4d/tuts/surface_planete/rendu_avec_eau.jpg

ouuuuuuuaaaaaahhhhhhhhhhh c'est boooooooo ! hum pardon, c'est l'emotion

(petite note historique : c'est a cet endroit de la redaction du tuto que la france a perdu la coupe du monde de foot :mrgreen: )

5eme etape :

Bon, c'est bien joli, mais des couleurs comme ca, c'est un peu fade, et a petite echelle de distance ca fait quand meme tres uni...
Si on utilisait la colorisation non pas pour donner les couleurs mais delimiter des shaders, qui eux pourraient etre aussi complexes que voulu ?
Et c'est la que le shader "calque" (layer en anglais, j'ai traduit "calque" de ca, si c'est pas le bon nom, c'est quoi le vrai ? :oops: ) nous vient en aide.
Une maniere de l'utiliser est d'intercaler des shaders de couleurs (en mode "normal") et des masques delimitant leurs zones d'actions (en mode "layer mask" donc).
La colorisation nous fournira des masques tout a fait correct. il suffit de faire des zones blanches pour les zones ou le materiau situe juste au dessus doit apparaitre, et des zones noires pour la ou il ne doit pas etre, avec des gris entre les 2 pour les zones de transitions.
voici un exemple de ce que ca peut donner :

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_couleur_layer.jpg

le detail du masque en dessous de la pelouse (oui bon, le truc vert-radioactif la :mrgreen; )

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_couleur_layers_colorizer_pelouse.jpg

et applique a notre planete :

http://tarlack.free.fr/fc4d/tuts/surface_planete/img_finale_layers.jpg

6eme etape (optionnelle) : lignes de niveaux

Pour ceux qui voudraient visualiser les lignes de niveaux, rien de plus simple, la encore avec le shader colorisation :
Je l'ai fait ici dans le canal luminescence, et il suffit de faire un degrade noir partout sauf aux zones correspondant aux altitudes que l'on veut.
Par contre, il ne faut prendre que le plus gros des bruits de deplacements (celui en bas de la fusion), sinon ca genere pas mal d'aliasing, et meme avec un AA au mieux ca ne part pas des fois :o

Ce qu'il y a dans la luminescence :

http://tarlack.free.fr/fc4d/tuts/surface_planete/det_lum_colorizer.jpg

et le rendu final :

http://tarlack.free.fr/fc4d/tuts/surface_planete/img_finale_layers_courbes.jpg

En esperant que ce soit assez clair et que ca puisse etre utile... :oops:
:odile:

kiteman
09/07/2006, 23h59
merci Tarlack :poucehaut:

Aurety
10/07/2006, 01h06
Excellent Tarlack ! :bounce:

ethylen
10/07/2006, 01h15
super, :poucehaut:
merci beaucoup .

tarlack
10/07/2006, 15h34
merci :oops: :oops:
bon, version 2 : j'ai corrige des fautes de frappes et corrige le lien vers une image qui manquait (le detail du masque de la pelouse)