 | |  |
| afanissiev
| bon j'ai commencé une démo sous nova 2008
http://www.studio-namo.biz.st/images/test.exe
par contre là directx reste un gros mystère pour moi :
pourquoi ces coupures entre les uv dès que j'applique la normal map?? même avec une normal map neutre toute bleue les coupures apparaissent... (surtout sur le visage). cet effet n'est pourtant pas présent sur les shaders précal de 3ds max... je ne comprend pas... quelqu'un peut m'aider? |
afanissiev
| après quelques tests/recherches j'en conclus qu'il s'agit d'un problème de "normales d'UVs". Mais à priori on en peut pas éditer ces normales d'UVs depuis 3ds max. Quelqu'un sait comment faire? |
nobrainnobrain pilier de bar de 3dvf
| normales d'UV ?? tu veux dire que c'est les coordonnées des normales générées qui sont selon un mauvais repère ?
ça m'étonnerai pas qu'il existe un utilitaire pour changer ça, ça se code en 20 minutes avec des cures-dents dans les yeux |
afanissiev
| bin en fait pour le rendu en directx, apparemment le moteur superpose les normales des uv (pour determiner le sens à afficher je suppose) puis rajoute la normal map par dessus... ce qui créé un artéfact sur les "seams" bin à priori la solution est là, sauf que je sais pas du tout comment marche ce truc... http://developer.nvidia.com/object/NVMeshMender.html et surtout impossible de le télécharger, ça veut pas... ça marche chez vous? |
clanker | C'est un peu ennuyeux que les coupures apparaissent mm avec une normal map neutre. Sinon, j'aurais eu tendance à dire que ton shader nova ne bosse pas dans le même repère que ta normal map (l'axe y flippé ptet) Il n'y a pas de standard dans la génération et l'utilisation des normal map, chaque soft fait ça un peu à sa sauce. Regarde si il y a une option dans ton shader pour flipper les valeurs de la normal map selon un axe, sinon, il faut générer la normal map avec d'autres options. Peut-être que nova pete le smoothing selon les uv à l'export, ça je sais pas, et là, je vois pas ce que tu pourrais faire =)
Message édité par clanker le 02-06-2008 à 16:01:53
|
afanissiev
| merci clanker pour tes conseils mais oui j'ai bien testé de flipper ma normal map dans tous les sens et ça fait pareil. Si je converti ma normal map en local space, le problème disparait, mais comme c'est un modèle skinné ça ne pourrra pas fonctionner.
nova est WYSIWYG (What You See Is What You Get): j'ai quasiment le même rendu dans le viewport 3ds et dans le moteur final et il ne fait pas peter les smoothing groups. Mais l'outil de Nvidia a l'air de pouvoir règler ce problème. je teste dès que possible. Message édité par afanissiev le 02-06-2008 à 16:23:08
|
afanissiev
| découverte : c'est en fait un bug de 3dsmax :
encore du nouveau mais là je desespère : http://bcloward.blogspot.com/2005/ [...] max-8.html
mais pas règlé depuis la version 8. donc c'est triste pour moi...
mais :
"If I transform the eye vector and light vector to world space in the vetex shader instead and then transform the tangent space normal map to world space in the pixel shader (doing all math in world space instead of tangent space), the issue goes away."
si j'arrive à comprendre ce qui se dit là dedans, j'aurai règlé mon problème! hahaha sauf que c'est un peu compliqué!! help! |
clanker | Moué enfin ça c'est un pb dans le viewport de max, pas celui de nova,non ? J'ai pas de pb de normal dans virtools, et y a pleins de gens qui font des exports vers d'autres moteurs sans soucis quand mm. |
afanissiev
| oui Clanker mais comme je l'ai dit plus haut, Nova est WYSIWYG donc même rendu dans le viewport 3ds et dans Nova! ce bug se retrouve donc dans Nova.
mais HAhAHhAhAhA!!
j'ai trouvé une gruge vachement plus simple pour mon problème car j'y comprenais vraiment rien à son système à l'autre gus sur son blog là.
donc j'ai modifié mon shader en rajoutant un canal de texture que j'ai appellé "uv seams correction" dans lequel je met un masque noir et blanc (64*64pixels) qui determine quand utiliser les normales de la normal map et quand prendre les normales du modèle 3d. je vais peut-être faire une version vertex color pour que ce soit plus optimisé.
bref ça marche, je suis super content, ouf mon petit projet est sauvé.
|
| |
| | |