See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: cherche moyen d'automatiser du .TXT de mesh  (Read 2907 times)

0 Members and 1 Guest are viewing this topic.

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
09 November 2011, 22:35:26
Voilà le problème : l'importation de fichier mesh depuis les .3ds depuis Google Sketchup nécessitent une étape essentielle pour l'afficher correctement dans Orbiter. Cette étape c'est de transformer ( comme expliqué dans la vidéo que vous connaissez ;)  )

ceci :

MATERIAL Tole2
0.000 0.000 0.000 1.000
0.243 0.471 0.455 1.000
0.329 0.329 0.329 1.000
0 0 0 1
MATERIAL _Beige_1
0.000 0.000 0.000 1.000
0.318 0.306 0.259 1.000
0.329 0.329 0.329 1.000

en cela :

MATERIAL Tole2
0.243 0.471 0.455 1.000
0.243 0.471 0.455 1.000
0.329 0.329 0.329 1.000
0 0 0 1
MATERIAL _Beige_1
0.318 0.306 0.259 1.000
0.318 0.306 0.259 1.000
0.329 0.329 0.329 1.000


le léger soucis est que je dois faire tout à la main ! C'est bête hein. Bon bien sûr j'ai trouvé une séquence rythmique
( ça fait un peu :
clic cic clic clic, clac..clac , clic.. clac.. KLAC clic cic clic clic, clac..clac , clic.. clac.. KLAC
clic cic clic clic, clac..clac , clic.. clac.. KLOC ... euh... ah, clic... euh KLAK, ... clic cic clic clic, clac..clac , clic.. clac.. KLAC
oui parce que parfois je me reprends, etc. )

mais j'imagine qu'on pourrait écrire un petit script à la noix pour remplacer la ligne du haut par celle du milieu, si l'entête du dessus ne commence pas par TEX_ ni par INVISIBLE.
Si ça commence par TEX (c'est donc une texture à afficher) ou par MAP donc,
à ce moment là il faudrait remplacer les 3 lignes par
1 1 1 1
1 1 1 1
1 1 1 1

ou alors pour le material "INVISIBLE" :
0 0 0 0
0 0 0 0
0 0 0 0


Cela faciliterait grandement la tâche d'export vers Orbiter !
je pourrais lui confier la partie du fichier texte à transformer, et hop ensuite plus qu'à réinjecter
mais je me demande si un truc aussi bête est faicilement faisable .............



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #1 - 09 November 2011, 23:52:11
Un simple script batch pourrait faire l'affaire, mais je ne m'y connais pas beaucoup. Si tu veux, je peux t'écrire ça en C++, faire un bel exécutable avec GUI, ça me ferrait plaisir (et ça ne devrait pas prendre beaucoup de temps). Il suffit de bien spécifier les différents options. Je le mets sur Orbit-Hangar ou je te le donne directement par MP.


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7678
  • Country: France fr
  • Karma: 658
  • Plus on rate, plus on a de chances de réussir !..
Reply #2 - 10 November 2011, 00:46:32
Quote
Bibi Uncle a écrit:
Un simple script batch pourrait faire l'affaire
En voilà, une idée qu'elle est bonne... :applause:


Mes add-ons sont là !

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #3 - 10 November 2011, 01:54:41
wow, sur Orbit Hangar et ça serait carrément super.

En fait alors et si c'est faisable :
le script devrait d'abord rechercher dans le fichier .msh, le mot clé "MATERIALS "
( bien avec l'espace ). Le chiffre qui suit est le nombre de MATERIALS (mot pour désigner soit simplement une définition de couleur simple, soit une couleur associée à un fichier texture .dds )

exemple :
MATERIALS 47
signifie qu'y a bien 47 machins à traiter par la suite.
Jute après cette ligne là, sont énumérés dans l'ordre les noms de chaque "MATERIAL", puis une fois cette énumération terminée ( je pense qu'ils auraient pu éviter cette redondence, vu qu'ensuite on les retrouve dans le même ordre. Enfin je dis ça), c'est là que commencerait à proprement parler les conditions du script à savoir un genre de SELECT CASE du style

SELECT chaine
   CASE "MATERIAL MAP***"
      traitement texture
   CASE "MATERIAL E_***"
      traitement enseignedemagasin
   CASE "MATERIAL TEX***" ou "tex***"
      traitement texture
   CASE "MATERIAL INVISIBLE"
      traitement invisible
   ELSE
      traitement couleur
END SELECT

Procédure traitement texture :
facile, les 3 lignes qui suivent doivent être remplacées par des
1 1 1 1
1 1 1 1
1 1 1 1

Procédure traitement invisible
hop on colle des 0 partout à ce garnement
0 0 0 0
0 0 0 0
0 0 0 0

Procédure traitement enseignedemagasin
Non seulement on colle les
1 1 1 1
1 1 1 1
1 1 1 1
mais la 4e ligne aussi sera joyeusement allumée toute la nuit avec des
1 1 1 1 partout   ( le jus étant fourni par l'alim du PC tant qu'Orbiter tourne. Pratique !)

Procédure traitementcouleur,
il faudra aller lire la ligne du milieu pour la recopier ensuite en remplaçant celle du haut.
( je pense que la 3e ligne du bas ne sert pas dans le cas d'une simple couleur dans Orbiter )

Bon après, lorsque des textures sont utilisés, donc fichiers .DDS à référencer, ceux ci sont référencés

exemple
MAP04.dds
MAP05.dds
MAP06.dds

mais je place ces textures dans des dossiers respectifs, donc j'indique :
SimplifiedPaname/MAP04.dds
SimplifiedPaname/MAP05.dds
SimplifiedPaname/MAP06.dds


Effectivement, les options pourraient être des chaines de caractères pour donner le nom du dossier de textures,
et pouvoir changer certains trucs.
Et par la suite, on pourrait sauvegarder ces options comme autant de "moulinettes" différentes s'appliquant à différents meshs.


Bien sûr, il faudra expliquer que cet utilitaire concerne la création de décors avec Google Sketchup, et qu'il faut une discipline DANS Google Sketchup, à savoir nommer correctement les matériaux dans le modèle (skp) ce qui est facile à faire, afin de pouvoir utiliser la moulinette de finalisation du mesh -> Orbiter.

Suggestion de nom pour cette moulinette :

GoogleSketchup .MSH 2 Orbiter .MSH Bibi Uncle moulinette
( Googlemsh_2_orbitermsh.exe )


Voilà qui serait carrément coooool  ;)









Edit :
exemple d'extrait de msh bien finalisé :

...
...
...
MATERIALS 47
CVERT1
CVERT2
E_boutX2
FrontCol
LogoSurc
MAP01
MAP02
MAP03
...
...
...
MATERIAL CVERT1
0.145 0.588 0.345 1.000
0.145 0.588 0.345 1.000
0.329 0.329 0.329 1.000
0 0 0 1
MATERIAL CVERT2
0.051 0.345 0.165 1.000
0.051 0.345 0.165 1.000
0.329 0.329 0.329 1.000
0 0 0 1
MATERIAL E_boutX2
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
MATERIAL FrontCol
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
MATERIAL E_Surcf
1 1 1 1
1 1 1 1
1 1 1 1
0.5 0.5 0.5 1
MATERIAL MAP01
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 1
MATERIAL INVISIBL
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 1
TEXTURES 19
SimplifiedPaname/MAP07.dds
SimplifiedPaname/MAP08.dds
SimplifiedPaname/MAP13.dds
SimplifiedPaname/LogoSurc.dds
SimplifiedPaname/E_boutX2.dds
...
...



Message modifié ( 10-11-2011 02:04 )


Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #4 - 10 November 2011, 23:06:14
Donc, tu voudrais que mon utilitaire demande pour chaque matériel si on veut qu'il soit :

-Texturé (normal)
-Invisible
-Illuminé la nuit
-Coloré selon la couleur ambiente (2me ligne)

Si on a 42 matériel, il demandera 42 fois ceci (dans une boîte de dialogue à 4 boutons) ?


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #5 - 10 November 2011, 23:58:19
euh, plus précisément, plutôt que de poser 42 fois la question, on lui indiquerait 4 types de chaines à trouver, et à traiter selon . Comme ça les questions ne seraient plus posées par la suite.
Ou même à la limite, les types de chaînes pourraient simplement s'indiquer dans un fichier .INI
Ainsi s'il trouve par exemple TEXtoits ou bien TEXavery ou bien TEXtuile, hop il comprendra que c'est une texture "normale" à traiter.
De même pour "MAP01" / "MAP022" ...
s'il trouve E_surcouf hop il comprendra qu'il faudra illuminer ça la nuit.
etc. etc.

donc les chaînes à indiquer dans le .INI seraient comme des noms DOS, à savoir avec les jokers *



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #6 - 11 November 2011, 01:46:46
Le layout basique est fait :



EDIT:
Le gros est maitenant fini. Je m'attaque à l'écriture dans le fichier (probablement demain, je commence à êter fatigué).



Message modifié ( 11-11-2011 03:14 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #7 - 12 November 2011, 13:03:40
waouh SUPER c'est absolument celà !



Subsidiaire :
je penserais même par la suite qu'on pourrait y intégrer un GUI similaire à celui de 3DS2MSH du frère de Mustard (Mustard's brother), faisant appel, finalement, à 3DS2MSH by Vinka, qui ainsi permettrait de partir directement des .3DS sortis de G-Sketchup. Le paramètre "Axix order" serait fixé à "xzy".
mais c'est subsidiaire.



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #8 - 14 November 2011, 01:51:17
1 CD de Johnny Cash et le début de Radio K.A.O.S de Roger Waters plus tard, et j'ai presque fini. Les corrections se font comme ils se doient (du moins, je crois...) et le programme ajoute le chemins vers les textures aux noms des textures.

La seule chose que j'aimerais bien faire (là je suis trop lâche... :badsmile: ) ce serait de sauvegarder dans un petit fichier INI les préfixes de l'utilisateur.

Je t'envoies la démo, Claude ?



Message modifié ( 14-11-2011 03:50 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #9 - 14 November 2011, 11:33:56
Ouais !



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #10 - 14 November 2011, 22:55:19
C'est dans ta boîte de réception du courriel indiqué sur ton site web.

C'est une pre-release, donc la redistribution est interdite. Une MessageBox va t'avertir de toute façon :badsmile:.


Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #11 - 14 November 2011, 23:43:00
Mince je n'ai rien !

Attends, je vais modifier juste un truc dans mon site : j'enlève l'antispam tant pis.
...
c'est fait



Offline Bibi Uncle

  • Legend
  • ******
  • Posts: 2264
  • Country: Canada ca
  • Karma: 17
Reply #12 - 15 November 2011, 00:17:19
Je viens de recevoir un message m'informant de l'échec de l'envoie. Je le renvoies à la même adresse. Si tu veux que je l'envoies à une autre adresse, écris-moi en MP.

EDIT:
L'envoie a encore échoué. Spécifie-moi ton adresse par MP afin que je puisse te l'envoyer.



Message modifié ( 15-11-2011 00:20 )

Émile

Pluton, Saturne et Jupiter
Entendez-vous monter vers vous le chant de la Terre?

- Luc Plamondon

Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #13 - 15 November 2011, 18:33:09
je pense que j'ai un réel problème sur cette page, et cela dure peut etre depuis des mois et de smois
je reçois certains emails, d'autres apparament jamais et c'est ton message qui me met la puce à l'oreille  !
J'ai modifié le lien je pense que tu peux ré essayer

http://www.cslevine.com/ECRIRE1.htm



Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #14 - 15 November 2011, 22:43:22




Message modifié ( 23-11-2011 13:21 )


Offline cslevine

  • Legend
  • ******
  • Posts: 3621
  • Karma: 17
Reply #15 - 16 November 2011, 19:51:27




Message modifié ( 23-11-2011 13:21 )

« Last Edit: 16 November 2011, 19:51:27 by cslevine »