(1) 2 3 4 »


Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
05/03/2007 21:49
De Lorraine
Post(s): 672
Salut à tous, ça faisait un bail !

parallax_2-49.blend (clic droit > enregistrer-sous)

Voilà, du parallax mapping with offset limiting grâce aux nodes de matériaux.

Amis du GameEngine, passez votre chemin pour l'instant. L'application de normal maps à un matériau, via les nodes, n'est pas encore prise en compte. Toutefois l'effet de parallax fonctionne. On peut lui trouver d'autre applications.

Vue d'ensemble :
vue_nodes_parallax.png

C'est encore la soupe de nouille... J'hésite à dupliquer certains nodes pour simplifier visuellement l'ensemble, en faisant des groupes.

La seule astuce est de récupérer les normales modifiées de l'objet, pointant vers U et V (à l'aide de deux textures Tangent Space).
Ce qui nous sort la tangente et la binormale. On peut donc désormais convertir notre View vector en tangent space, et ainsi de suite.

On peut mettre plusieurs passes bout à bout pour atténuer les défauts.

L'application de la normalmap (via nodes) n'étant pas compatible GLSL pour le moment, une sortie "debug" est disponible pour mieux percevoir le volume dans le viewport.
(à brancher directement sur l'Output)

Détail du groupe nodal Parallax :
node_parallax.png
Le groupe Parallax qui se contente de modifier les UV en fonctions du View vector (tangent space) et de deux paramètre donné par l'utilisateur : scale et bias.
La "hauteur" de l'effet dépend de l'échalle "scale".
Diviser cette échelle par le nombre de passes.
1 passe en scale 0.1 donne la même "hauteur" que 2 passes en scale 0.05

Résultats :
render_parallax.jpg

La normal map sans l'effet de parallax, pour comparer :
render_normal.jpg

Suite à une remarque de LadeHerias : la spec est "cramée" car cet exemple ne possède pas de map de spécularité.
Il suffit de connecter un node Texture à la sortie du Parallax, jusqu'à l'entrée Spec du node de Material.

Le parallax ne déformant pas le mesh. Les ombres portées seront toujours planes. D'où l'utilisation de soft shadows
Peut être serait-il intéressant de reprendre ça dans les Composite Nodes; pour déformer les textures, mais aussi les ombres portées.


-------

C'est plus par trip que j'ai fait ça, mais ça peut avoir son utilité, pour ceux qui voudrait aller plus loin en l'adaptant à des algos plus poussés.

Cela peut surement aussi alléger le rendu d'animations...

-------

La référence sur laquelle j'ai pompé l'algo :
http://wiki.gamedev.net/index.php/D3DBook:%28Lighting%29_Per-Pixel_Lighting

Contribution le : 10/06/2010 02:24
_________________
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
Touriste
Inscrit:
10/06/2010 09:34
Post(s): 7
Salut !

ca marche bien ! Dis tu as l'aire d'avoir bien couvert le shading node dans Blender. Pour moi il y a pas de chose qui reste flou. Je suis un peu perdu par les output de normal, je ne sais jamais si ils sont en view, object ou world. Il me semble que la plus part sont en view m'enfin. Et je t'avoue n'avoir jamais vraiment pris le temps de bien regarder tous ca!

Est ce qu'il est possible à ton avis, d'obtenir les normals World et/ou object avec le node shader ?

Contribution le : 10/06/2010 09:39
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
24/07/2008 00:45
De Paris
Post(s): 3447
Ah tiens il est cool cet exemple.
Dommage que ça ne marche pas pour le GLSL, mais il me semble avoir vu un exemple avec shader qui n'était pas mal...Enfin bon, c'était moins beau qu'un rendu, évidemment

Sinon, je crois que je vais utiliser ton blend pour me mettre un peu aux nodes, parce que je n'y ait pas vraiment touché encore (juste pour quelques retouches, quoi) et je sais que c'est vraiment puissant et utile...Surtout que le principe de node, je le connais bien avec MaPZone...

Donc merci Zelouille et bon retour sur le

Contribution le : 10/06/2010 11:05
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2819
Ca à l'air intéressant tout ça! Tu pourrais faire un comparatif avec une normal map sans parallax pour voir la différence? Ce serait bien utile je pense.
Merci à toi en tout cas!

Contribution le : 10/06/2010 12:25
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
05/03/2007 21:49
De Lorraine
Post(s): 672
Citation :
Je suis un peu perdu par les output de normal, je ne sais jamais si ils sont en view, object ou world. Il me semble que la plus part sont en view m'enfin.

L'entrée et la sortie Normal des nodes Material sont en View space.

C'est pour celà que je convertis à la main la normal map TangentSpace en ViewSpace, juste avant de l'appliquer au material.

Citation :
Est ce qu'il est possible à ton avis, d'obtenir les normals World et/ou object avec le node shader ?

Oui. Pour comprendre comment je procède :
J'obtiens ma Tangente (vecteur U de l'UV) en ViewSpace en créant un material nor_u, sur lequelle j'applique une normalmap TangentSpace, de couleur RVB(1.0 ; 0.5 ; 0.5) = +X
L'output Normal de ce material, me donnera donc ma tangente en view space.

Je procède de la même manière pour la binormale (vecteur V de l'UV) avec une normalmap TangentSpace de couleur RVB(0.5 ; 1.0 ; 0.5) = +Y

De la même manière, on peut donc obtenir les vecteurs XYZ du world en ViewSpace. En remplacement simplement ces normalmap TangentSpace en WorldSpace (panel de texture). Juste penser à rajouter un troisième material + texture pour l'axe Z (quoiqu'on peut le calculer à l'aide des deux autres).

À partir de là, on a une matrice complète pour passer des vecteurs ViewSpace en WorldSpace, et inversement en transposant la matrice.

Avec ça on pourrait gérer la réflexion d'une skybox (sur 360°)... ou un éclairage complet qui ne serait pas view dépendant...

Toujours de la même manière, on peut aussi récupérer l'ObjectSpace.

J'essaierai tout ça ce soir, ça promet d'être passionnant :)

Citation :
Dommage que ça ne marche pas pour le GLSL

Ouep, l'application de la normalmap n'est pas encore compatible... Mais rien n'empêcherait de calculer un éclairage dans les nodes, à l'aide du WorldSpace ci-dessus.

Citation :
Tu pourrais faire un comparatif avec une normal map sans parallax pour voir la différence?

Ouep, c'est noté. Je ferais ça dans la soirée (je ne suis pas sur le bon ordi à l'heure qu'il est).
Pour voir l'effet sans le parallax, il suffit de mettre le scale à 0.

Contribution le : 10/06/2010 13:24
_________________
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
Touriste
Inscrit:
10/06/2010 09:34
Post(s): 7
Citation :

Zelouille a écrit:
Citation :
Est ce qu'il est possible à ton avis, d'obtenir les normals World et/ou object avec le node shader ?

Oui. Pour comprendre comment je procède :
J'obtiens ma Tangente (vecteur U de l'UV) en ViewSpace en créant un material nor_u, sur lequelle j'applique une normalmap TangentSpace, de couleur RVB(1.0 ; 0.5 ; 0.5) = +X
L'output Normal de ce material, me donnera donc ma tangente en view space.

Je procède de la même manière pour la binormale (vecteur V de l'UV) avec une normalmap TangentSpace de couleur RVB(0.5 ; 1.0 ; 0.5) = +Y

De la même manière, on peut donc obtenir les vecteurs XYZ du world en ViewSpace. En remplacement simplement ces normalmap TangentSpace en WorldSpace (panel de texture). Juste penser à rajouter un troisième material + texture pour l'axe Z (quoiqu'on peut le calculer à l'aide des deux autres).

À partir de là, on a une matrice complète pour passer des vecteurs ViewSpace en WorldSpace, et inversement en transposant la matrice.

Avec ça on pourrait gérer la réflexion d'une skybox (sur 360°)... ou un éclairage complet qui ne serait pas view dépendant...

Toujours de la même manière, on peut aussi récupérer l'ObjectSpace.

J'essaierai tout ça ce soir, ça promet d'être passionnant :)


Cool ! enfaite je t'expliquerais bien l'idée que j'en ai, cependant je veux pas bouziller ton thread qui n'a pas grand chose à voir. Si tu veux on peut en discuter à coté ?

Contribution le : 10/06/2010 13:55
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
05/09/2006 10:53
De la forêt de Shlipak, pret de la taverne des nains
Post(s): 1822
Je pense que tu devrais en faire un article pour le BAM 29 et le proposer à Sandra. Il se trouve que je suis en train de scinder mon article sur le relief en deux et que la partie réimportation du Tracking 3D + Chroma Key fera l'objet d'un autre article dans le BAM 29.

Je pense que ce que tu proposes pourrait-être une véritable continuité de ma partie, vu que je vais aborder le Light Baking pour accélérer les calculs.

Encore merci à toi pour tes recherches très instructives !

Contribution le : 10/06/2010 14:11
_________________
François "CoyHot" Grassard
Web : http://www.coyhot.com
Blog : http://coyhot.blogspot.com/
Mail : francois@coyhot.com
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
11/11/2007 10:33
Post(s): 1749
Tiens françois ! C'est fou ça justement je lui ai donné l'adresse de ton blog hier soir sur le chat alors qu'on discutait des nodes (après qu'il m'ait montré son .blend sur le parallax), c'est beau comme le hasard fait bien les choses (d'ailleurs zelouille était intéressé par l'article dont il était question sur ton blog à propos du "relighting"

Et sinon pour revenir dans le sujet ça marche vraiment bien, surtout par rapport au temps de rendu ... très efficace donc

Contribution le : 10/06/2010 16:04
_________________
La Tortue se meut !
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
18/09/2009 20:52
De Paris
Post(s): 1859
J'avais déjà posté ça à Zelouille, mais je vous le mets aussi ici :
http://blenderartists.org/forum/showthread.php?t=182316
Ça marche aussi dans le BGE/Viewport, néanmoins la méthode calcul est différente et moins réaliste.

@Zelouille : tu m'avais pas montré une image sur le bidirectional lighting aussi ?

LadeHeria

Contribution le : 10/06/2010 16:37
Créer un fichier PDF de la contribution Imprimer


Re: Parallax mapping avec les nodes de matériaux (internal : ok | GLSL : partiel)
OverdOzed
Inscrit:
26/04/2009 21:26
De Avignon
Post(s): 500
Citation :
Oui. Pour comprendre comment je procède : J'obtiens ma Tangente (vecteur U de l'UV) en ViewSpace en créant un material nor_u, sur lequelle j'applique une normalmap TangentSpace, de couleur RVB(1.0 ; 0.5 ; 0.5) = +X L'output Normal de ce material, me donnera donc ma tangente en view space. Je procède de la même manière pour la binormale (vecteur V de l'UV) avec une normalmap TangentSpace de couleur RVB(0.5 ; 1.0 ; 0.5) = +Y De la même manière, on peut donc obtenir les vecteurs XYZ du world en ViewSpace. En remplacement simplement ces normalmap TangentSpace en WorldSpace (panel de texture). Juste penser à rajouter un troisième material + texture pour l'axe Z (quoiqu'on peut le calculer à l'aide des deux autres).


Pour ceux qui aurait un peu de mal avec ce passage (comme moi hé, hé), voici un tuto du clan qui expliquait comment générer des normal maps tangent space dans blender avant que ça ne devienne possible automatiquement dans le panneau "baking" (d'ailleurs rédigé par zelouille). Il revient sur les différents types de normal maps (world, object, tangent) et la notion de texel :

http://blenderclan.tuxfamily.org/html/modules/content/index.php?id=117

Contribution le : 10/06/2010 17:04
_________________
Quand tu poses une question tu peux avoir l'air bête 5 minutes, si tu n'en poses jamais tu seras bête toute ta vie
Créer un fichier PDF de la contribution Imprimer



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




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 [terminé] court métrage 2020 3 80 Aujourd'hui 20:55:21
flahaut 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Première version disponible !    [1][2][3]...[56] 559 92909 Aujourd'hui 17:08:42
Bibi09 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[9] 80 8870 Aujourd'hui 16:58:20
Bibi09 
Questions & Réponses Knife tool a arrêté de fonctionner 1 27 Aujourd'hui 16:29:51
Rimpotche 
Hors Sujet !! Système solaire open source 5 1505 26/12/2019 12:46
Bibi09 
Questions & Réponses [non résolu] Ecran bleu 2 73 Hier 18:35:32
alexmge 
Questions & Réponses [non résolu] va et vient entre sculpt et layout impossible    [1][2] 11 176 Hier 09:56:50
manondup 
Le coin des geeks carte graphique Intel(R) HD Graphics et OpenGL    [1][2][3] 24 833 04/07 22:47:15
Bibi09 
Questions & Réponses shader 5 160 04/07 20:23:23
Rimpotche 
[WIP] et travaux terminés Le Tigre 4 228 04/07 11:19:09
lastrodamo 
Questions & Réponses [non résolu] le Rendu de preview et le rendu final ne sonts pas pareils 2 96 03/07 23:18:27
Pinguinax 
Questions & Réponses [non résolu] Particules system dynamique 0 69 03/07 13:27:09
Ramar 
[WIP] et travaux terminés bas sculpture corps    [1][2] 18 362 01/07 18:57:21
prometheusx 
[WIP] et travaux terminés Générateur d'oreille - Beta testeurs bienvenus 8 468 30/06 10:28:08
Rimpotche 
Le coin des geeks Vieilles cartes graphiques : Quadro FX5800 ou Quadro 4000 ? 3 213 30/06 07:48:42
Poutrator 
Questions & Réponses Changement de caméra 2 201 28/06 19:10:40
prometheusx 
Questions & Réponses Faire pousser des cheveux 2 191 28/06 16:01:40
Rimpotche 
Questions & Réponses convertir un mesh en hair et le relier 2 142 28/06 11:11:44
prometheusx 
Questions & Réponses feu rapide 2 201 28/06 07:22:23
francerf 
Questions & Réponses collision de tissu 1 144 27/06 23:54:35
prometheusx 

Qui est en ligne
205 utilisateur(s) en ligne (dont 167 sur Forums)

Membre(s): 1
Invité(s): 204


ebrain, plus...
Nouveaux membres
Jennifer98 6/7/2020
PattySpeeg 6/7/2020
LacyHarry 6/7/2020
RamonaFiel 6/7/2020
PattiCarli 6/7/2020
RobinLazar 6/7/2020
LLEMinna32 6/7/2020
singinzerin 6/7/2020
Dartank 5/7/2020
manondup 3/7/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Jui 11
BUG de Lyon
Jui 23
Anniv du BlenderClan !
Aou 7
anniversaire Cem47
plus 269 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