Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
dom107

Export Blender 2.6 pour TS2012

Recommended Posts

Erakis    123

Mmmh, je me suis TRÈS mal exprimé. :)

 

Dominique, je voulais simplement savoir si ton plug-in pour Blender offrait la même fonctionnalité que le plug-in officiel pour 3DS Max en ce qui concerne les "snap points".

 

En d'autres termes, si je crée un empty dans Blender et que je le nomme #ss_kekchose, #st_kekchose ou #sd_kekchose, est-ce que ton plug-in va les identifier comme étant des "snap points" dans l'IGS ?

 

Je pose simplement la question parce qu'apparemment il y a des générations de plug-ins qui supportent cette fonctionnalité, d'autres non. Mais je ne sais pas si c'est dû à des limitations liées aux vieux plug-ins (par exemple le support du caractère "#"), auquel cas ton plug-in n'est peut-être pas touché, ou bien si cette limitation est due au fait qu'il manque des lignes de code, auquel cas ton plug-in ne supporterai-il peut-être pas (encore ?) cette nouvelle fonctionnalité de TS2015.

 

De la façon dont c'est tourné dans le PDF je pencherais malheureusement pour la 2nde solution, mais tu vas peut-être me répondre qu'il faut juste essayer. ;)

Share this post


Link to post
Share on other sites
dom107    142

J'ignorai complètement l'existence d'un répertoire RailWorks\dev\Docs avec des descriptions d'évolutions de TS...

 

La dernière mise à jour de l'export date de mi 2014... donc aucun traitement spécifique pour les snaps points.

Si ça fonctionne, tu auras de la chance :)

Share this post


Link to post
Share on other sites
Erakis    123

OK, merci pour ton retour. J'essaierai donc.

 

Sinon pour les PDF dans dev\Docs ça fait peu de temps que je m'en suis aperçu, pourtant ça date apparemment de fin février 2015. J'avais un peu décroché à cette période...

 

Ces documents renforcent encore mon impression que TS est bourré de talents cachés que les créateurs ont du mal à exploiter faute de connaissances des outils, shaders et autres blueprints...

  • Like 1

Share this post


Link to post
Share on other sites
Erakis    123

Bonsoir Dominique,

 

Encore une question : sais-tu si le format IGS stocke le vecteur directeur de la normale en chaque vertex, ou bien si celui-ci est calculé après coup par le moteur du jeu en faisant la moyenne des normales aux faces coïncidentes (bref, le smoothing de base) ?

 

Ce serait principalement pour résoudre des soucis de shading de grandes faces dont les vertices sont partagés avec des faces nettement plus petites (donc en "smooth"), typiquement les bevels. Le problème c'est que par défaut la contribution de la petite face sur l'orientation de la normale est aussi importante que celle de la grande face (suivant la bissectrice, pour schématiser), ce qui fait que l'illumination de la grande face n'apparaît pas homogène. Vois ci-dessous comment le parapet apparaît plus clair à gauche qu'à droite à cause du smoothing des bevels situés dans les angles de la niche, lesquels ne subissent pas le même éclairement :

 

2016-01-05_00021.jpg

 

Le fait de pouvoir par exemple modifier l'orientation de la normale au prorata de l'aire des faces coïncidentes (moyenne pondérée), voire carrément de la contraindre à être perpendiculaire à la face la plus grande permettrait un rendu plus réaliste sans avoir à rajouter des petites faces intermédiaires coplanaires avec la grande face.

 

J'ai trouvé ce petit plug-in qui est taillé sur mesure pour ce que je voulais : http://blenderartists.org/forum/showthread.php?372785-Addon-Weighted-Normals-Calculator

C'est redoutable sur les rendus avec Blender, malheureusement TS ne semble en avoir cure...

 

Et puis après tout c'est peut-être moins gourmand en mémoire vidéo d'avoir des faces supplémentaires plutôt que des normales personnalisées à chaque vertex. :)

Share this post


Link to post
Share on other sites
juju49    356

Bonsoir Erakis,

 

En voyant ta question, je suis allé vérifier dans le code. Et oui, les normals de chaque vertice sont stockée (Dans le cas contraire, l'autoSmooth ne marcherais pas correctement avec les arrêtes déterminées comme saillantes d'ailleurs).

Le problème doit surement plutôt venir de TS en lui même et de son vieux moteur graphique.

 

Quant au snap points, ils sont irréalisable pour le moment: du nom Blender sont tirées trois infos séparées par des underscores: 2 sur les LODs et une pour le nom. En suivant la convention de nommage, il manque une valeur pour le nom et des valeurs interdites sont entrées dans les champs pour les LODs. C'est pour cela que l’exporteur ne le permet pas. En revanche je me demande ce que donne "1_0000_#sb_SnapOut1"...

 

à plus,

Julian M.

  • Like 1

Share this post


Link to post
Share on other sites
dom107    142

Bonsoir,

 

Je ne sais pas si ça réglera ton problème de "smoothing" mais voici ce que j'utilise :

1) Smooth sur toute la pièce

2) Modificateur edge split en réglant l'angle selon le résultat attendu. Les 2 options sont cochées.

  • Like 1

Share this post


Link to post
Share on other sites
Erakis    123

Bonsoir Erakis,

 

En voyant ta question, je suis allé vérifier dans le code. Et oui, les normals de chaque vertice sont stockée (Dans le cas contraire, l'autoSmooth ne marcherais pas correctement avec les arrêtes déterminées comme saillantes d'ailleurs).

Le problème doit surement plutôt venir de TS en lui même et de son vieux moteur graphique.

 

Quant au snap points, ils sont irréalisable pour le moment: du nom Blender sont tirées trois infos séparées par des underscores: 2 sur les LODs et une pour le nom. En suivant la convention de nommage, il manque une valeur pour le nom et des valeurs interdites sont entrées dans les champs pour les LODs. C'est pour cela que l’exporteur ne le permet pas. En revanche je me demande ce que donne "1_0000_#sb_SnapOut1"...

 

à plus,

Julian M.

Bonsoir Julian,

 

Ah, étonnante constatation ! Donc 2 solutions :

  • soit le problème vient effectivement du moteur de TS qui recalcule les normales en chaque vertex (ce qui n'aurait aucun intérêt puisqu'elles peuvent être précalculées dans le fichier IGS, mais ça ne m'étonnerait qu'à peine),
  • soit le plug-in d'export ne permet pas, aujourd'hui, de personnaliser les normales aux vertices ; ce qui serait relativement compréhensible puisque Blender lui-même ne propose pas d'outils de manipulation des vertex normals dans sa distribution de base (ce n'est que tout récemment que quelques plug-ins non-officiels permettent de le faire).

Pour le savoir il suffirait de changer à la mano les coordonnées de quelques vertex normals où l'effet est flagrant et regarder si ça change quelque chose in-game. Tu penses que ce serait faisable ?

 

PS - Tu dois être l'un de ceux de notre petit communauté qui connaît le mieux les circonvolutions de notre bon vieux simulateur. Ah, si seulement le wiki avait pu compter toute une petite armée de juju49, il n'aurait peut-être pas été aussi pauvre... :) (Malgré l'effort très louable de ses quelques contributeurs.)

 

Bonsoir,

 

Je ne sais pas si ça réglera ton problème de "smoothing" mais voici ce que j'utilise :

1) Smooth sur toute la pièce

2) Modificateur edge split en réglant l'angle selon le résultat attendu. Les 2 options sont cochées.

 

Bonsoir Dom,

 

Oui j'utilise habituellement la même méthode, mais dans la plupart des cas une arête vive (type "flat") n'offre pas un rendu satisfaisant parce que les arêtes vives sont rares dans la nature. Une arête lissée à la façon "smooth" traditionnelle est souvent préférable, mais si on a une arête "smooth" entre 2 faces jointives de tailles très différentes alors le shading sera peu conforme au résultat souhaité (voir l'image du parapet dans mon message précédent).

 

Ci-dessous 2 images qui expliquent bien :

 

1) A gauche : rendu flat par défaut d'un cube chanfreiné. Au milieu : rendu smooth par défaut du même cube. A droite : rendu smooth avec vertex normals personnalisées au moyen d'un plug-in tiers.

modifier_data_transfer_normals_example.p

 

2) Tout bien expliqué en anglais :

ikZjE2B.png

Share this post


Link to post
Share on other sites
one1504    236

Pour ma part, sous Max j'évite de trop utiliser le smooth, les résultats ne sont pas toujours "probants", il faut vraiment qu'il y est peu de polys à la base, sinon les résultats sont parfois curieux :)

Share this post


Link to post
Share on other sites
Erakis    123

Voici comment obtenir de beaux arrondis sur les arêtes d'un cube (généralisable à toute arête vive).

 

[EDIT] J'ai remplacé la fonction Inset Faces par Loop Cut and Slide qui donne des résultats bien plus probants.

 

La méthode est décrite pour Blender mais je ne vois pas pourquoi ce serait différent avec d'autres programmes type 3DS Max.

 

1) Appliquer un modificateur bevel sur le cube de base (Ctrl+ B) :

 

001.PNG

 

2) Résultat avec un shading type Smooth, c'est définitivement laid :

 

003.PNG

 

3) Résultat avec un shading type Flat, on conserve donc des arêtes vives, le progrès n'est pas flagrant :

 

002.PNG

 

4) L'astuce : en mode Edit, utiliser la fonction Loop Cut and Slide :

 

008.PNG

 

5) Ce qui est important c'est que les normales soient redressées dès qu'on sort de l'arrondi souhaité :

 

009.PNG

 

6) Résultat avec un shading type Flat, ça ne change rien (normal, puisque les faces qu'on a ajoutées sont coplanaires avec les grandes faces) :

 

002.PNG

 

7) Résultat avec un shading type Smooth, normalement c'est beaucoup mieux :

 

010.PNG

 

Et voilà !

Share this post


Link to post
Share on other sites
dom107    142

Bonjour,

 

Petite mise à jour :

 

Archive 1.4.8

igs 1.4.8 :
- Vérification si un mesh n'a pas de triangle.
- Quelque soit le shader, vérifier la valeur de ViewFacing en paramètre (Même s'il n'est pas sûr que ça produise l'effet attendu)
- Correction de TrainBumpSpec.fx : Un contrôle vérifiait s'il y a 1 canal de texture. Il en faut 2 (texture principale et normal map).


ia 1.2.6: inchangé

Share this post


Link to post
Share on other sites
pierreg    1,448

Bonjour Dom107,

 

Un grand merci pour tout ce travail de fond très encourageant pour la pérennité de nos modèles. :)

J'essaie de passer ma 141TA sous Blender car je suis convaincu que j'aurais moins de problèmes d'anim que sous 3DC...

A+

PierreG

 

 

 

 

Share this post


Link to post
Share on other sites
Erakis    123

Bonsoir Dom,

 

Sais-tu s'il est possible de spécifier le chemin de chaque texture, via le xxx_IGSExpModFile2.txt ou autrement ? L'argument TargetTexturesDirectory=chemin des textures dans [Miscellaneous] suppose qu'on a le même chemin pour toutes les textures, mais j'aimerais pouvoir les dispatcher entre un dossier commun et un dossier spécifique.

 

Par exemple j'ai essayé la syntaxe suivante mais ça ne marche pas.

 

[Textures:TargetTexturesDirectory]
BrickMedievalBlocks0144_1_S=..\..\..\Commun\Textures
Angles=..\..\..\Commun\Textures
ConcreteBare0022_2_S_sat-30=..\..\..\Commun\Textures
ConcreteLeaking0080_1_Seamless_sat-30=..\..\..\Commun\Textures
SoilSand0197_1_S=..\..\..\Commun\Textures
FR_Viaduc_Crueize_8x25m_droit_AO=Textures

 

Une idée ?

Share this post


Link to post
Share on other sites
dom107    142

Bonsoir,

 

Effectivement ce n'est pas la syntaxe attendue.

Comme tu le dis, TargetTexturesDirectory=chemin des textures dans [Miscellaneous] suppose qu'on a le même chemin pour toutes les textures.

Share this post


Link to post
Share on other sites

×