Résumé de la leçon précédente :
vous avez 10 mn avant le ramassage des copies....
Elève Antoo, au tableau !
Pourquoi toujours moi, m'sieur ?
Retourne à ta place, zéro pointé ! Bon. Reprenons...
Donc la "rampe" est verte et n'a pas de texture...
.
Voyons pourquoi....
Commençons par éditer le fichier mesh avec notepad (ou blocnote) de vouinedô...
koikigna dans ce fichier ?
un peu de texte et beaucoup de chiffres...
Pas de panique, c'est relativement simple.
Alors au début on a ça :
MSHX1
GROUPS 1
MATERIAL 1
TEXTURE 0
GEOM 10998 8672 ;Group 0 Color_G10
48.8442 2.032033 1.004258 0 1 5.301962E-05 3846 24
-48.8442 2.032035 .9661577 0 1 5.301962E-05 0 25.5
(etc)
Alors explications :
MSHX1 est une sorte de balise qui fait comprendre à Orbiter (il faut tout lui dire à lui !!!) que ce fichier est un objet 3d.
il est donc indispensable.
GROUPS 1 veut dire que dans le fichier msh il y a 1 groupe.
Ben oui, il peut y en avoir plusieurs... cqfd !!!
A noter que si ce chiffre ne correspond pas au nombre de groupe, on aura des résultats bizarres dans Orbiter, voire un plantage.
Quand à Meshwizard, il nous répondra par une injure du genre "missmatch machin truc chouette" et nous jettera dehors, et c'est pas drôle !!!
Rappel :
Dans un fichier "msh" il peut donc avoir plusieurs éléments qui sont appelés "groups"
mais dans anim8or il sont appelés "objets".
On prendra donc l'habitude de parler de "group" (ou groupe ou groupes) même si cela ne plait pas à anim8or.
D'ailleurs dans un anim8or, les "groups" sont des objets que l'on peut "grouper" si l'on veut, mais lors de la conversion en "msh" "les groupes" sont transformés en group...
Heu.... pas compris ?
Imaginons (dans anim8or) que l'on "groupe" 4 objets en un seul (à ne pas confondre avec "join solids") eh bé lors de la conversion en msh on aura 4 "groups"....
Bon, laissez tomber, cela sera l'objet de la leçon n° 3918....
Allez, on continue... J'en vois un qui dort, au fond....
MATERIAL 1 veut dire que le "groupe" - ça y est vous avez compris - a la couleur de fond définie par le "material" n°1
si on a MATERIAL 0 ben y a pas de couleur, mais on s'éloigne du sujet....
TEXTURE 0 .... veut- dire quoi ???
oui, bravo élève Papyref : y a pas de texture....
Sinon, on aurait TEXTURE 1 (ou 2 ou 3 etc...)
Les lignes suivantes : n'y touchez pas !!!! ce sont les points, triangles, coordonnées des UV (non, pas des ultra-violets, mais des applications de texture.
Maintenant, voyons la fin du fichier.msh.
Non, ce n'est pas l'heure de la récré!!!
on a ça :
(etc...)
10982 10983 10984
10983 10982 10985
78 80 10986
MATERIALS 2
Color_G10
--1
MATERIAL Color_G10
0 0 0 1
.478431 .6 .478431 1
.329412 .329412 .329412 1 0
0 0 0 1
MATERIAL --1
.878431 .878431 .878431 1
.878431 .878431 .878431 1
1 1 1 1 75
0 0 0 1
TEXTURES 0
alors, on détaille :
les chiffres, ce sont les triangles. On ignore... (pas toucher !)
MATERIALS 2
déclaration du nombre de "material". ici, il y en a 2.
Vous remarquerez qu'ils sont déclarés dans le même ordre que la suite. (sinon MeshWizard ne vous le pardonnera pas) !!!
MATERIAL Color_G10
0 0 0 1
.478431 .6 .478431 1
.329412 .329412 .329412 1 0
0 0 0 1
C'est donc ici le "material" n°1 qui s'appelle "color_G10" et même si le nom est bizarre, ça marche.
(le "matérial" n°2 s'appelle --1 c'est encore plus bizarre mais pourquoi pas)...
les lignes suivantes définissent les couleurs etc. On y reviendra plus tard grâce à meshwizard, l'indispensable.
D'ailleurs, ouvrons ce fichier avec MeshWizard :
On va avoir ça :
il y a donc un problème. Heureusement cela ne gène pas MeshWizard. Ouf !
En fait il nous informe que le "material" n°2 n'est pas utilisé.
Il est à noter qu'il ne le dit que si le "material" se trouve en fin de liste.
S'il y avait 6 "materials" et que le n°3 n'est pas utilisé, il ne nous le dirait pas, ce qui n'est pas sympa.
On peut le savoir autrement. De toute façon, ce n'est pas le problème.
Si on veut, on peut enlever le material inutile.
on aura ça :
(etc...)
10982 10983 10984
10983 10982 10985
78 80 10986
MATERIALS 1
Color_G10
MATERIAL Color_G10
0 0 0 1
.478431 .6 .478431 1
.329412 .329412 .329412 1 0
0 0 0 1
TEXTURES 0
Ok ?
Avant toute modification du fichier msh, je vous conseille vivement de le sauver avant !
En effet, une erreur de copiage/collage ne pardonne pas, et c'est pas toujours facile de trouver l'erreur.
Vous voilà prévenu.
Alors c'est koikoi la couleur "Color_G10" ???
Alors dans Meshwizard on fait "i" puis "materials" puis sélectionner "Color_G10" et cliquer sur le bouton "Edit material"
Alors voici :
Bon sang mais c'est bien sûr !!!
Explications:
- Diffuse (couleur de fond) c'est tout noir !!! i pas bon, ça....
- Ambient (couleur de réflexion par l'astre, en fait la Terre envoie cette couleur sur l'objet) c'est tout vert.... beurk...
- Specular (couleur du reflet provoqué par le soleil) ici moyennement lumineux (si RGB=1 c'est au maxi blanc)
- Emissive (lumière émise par l'objet) ici pas d'émissions.
- specular power : règle la "taille" du reflet défini dans "Specular". Donc ici =0.
Tout ceci c'est bien beau, mais ça veut dire quoi ???
Ben en fait l'objet est noir, avec des reflets verts provoqués par la lumière réfléchie par la Terre, ne brille pas, et n'est pas lumineux.
Pas logique tout ça...
L'objet étant destiné à être texturé, il vaut mieux que le fond de couleur soit blanc.
idem pour la réflexion, mais on peut varier. Mais restons simple.
Spécular, c'est selon, et emissive, une faible valeur (0.1) permet de voir un peu l'objet la nuit, sinon il est tout noir.
Alors on va modifier tout ça.
Voilà par exemple :
On aura donc l'objet tout blanc, avec pas de couleur "ambiante", un peu limineux mais pas trop, et des reflets blancs provoqués par la lumière du soleil.
Démonstration :
Autre exemple à méditer :
Bon. Allez, on remet le blanc. Et les textures où sont-elles ???? me direz-vous (pour ceux qui n'ont pas disjoncté)...
Aha bonne question, on s'approche du VRAI problème.
Rappelez-vous : à la fin du fichier "msh" on avait ça :
TEXTURES 0
Donc textures, yapa !!!
Alors on va mettre ça à la place :
TEXTURES 1
Hawxx\beton.dds
Explication :
cela veut dire que la texture "beton.dds" se trouve dans le dossier Orbiter 2016\Textures\Hawxx.
Si elle n'y est pas cela ne gênera pas Orbiter, elle sera tout simplement ignorée, sans plantage.
N'oubliez pas le "dds" sinon Orbiter ne comprendra pas....
Ah oui, mais c'est pas fini : il faut affecter le groupe avec cette texture.
Pour cela 2 méthodes:
- soit directement dans le fichier.msh comme ceci :
MSHX1
GROUPS 1
MATERIAL 1
TEXTURE 1GEOM 10998 8672 ;Group 0 Blanc
48.8442 2.032033 1.004258 0 1 5.301962E-05 3846 24
(etc...)
- soit avec MeshWizard comme ceci :
double clic sur le groupe, puis régler la texture (ici il n'y en a qu'une pour le moment)
Et on va avoir ceci :
Et si on remplaçait la texture "beton" par "metal" (maintenant vous devriez savoir le faire tout seul) allez je vous aide:
TEXTURES 2
Hawxx\beton.dds
Hawxx\metal.dds
et bien sûr pour l'objet "TEXTURE 2" (au lieu de "1") ça va ?
on aura ça :
Mais, là, si vous êtes un tantinet observateurs vous remarquerez 2 choses :
- au niveau des textures et de la définition... peut mieux faire !
- mais surtout : le mesh ne prends qu'une texture alors qu'il en faudrait 2... heu... en fait 2 zones différentes d'un même fichier.dds de texture.
Voilà ce que
Hawxx voudrait obtenir :
On voit bien sur cette image qu'il y a 2 parties distinctes :
1) les rails et traverses, avec la texture "metal"
2) le support avec une texture "beton".
En appliquant une texture qui aurait les 2 (beton + metal) cela ne sera pas terrible : on ne peut le faire que en projection "plane" donc ça va être moche...
Regardez plutôt :
il s'agit d'une projection "plane" avec un axe "x".
Parenthèse : on peut faire avec UVMapper
que une application "plane", "boite", "cylindrique" (avec ou sans fond/couvercle) et "sphérique".
Sinon, achetez 3DMax, mais c'est pas si simple là aussi.... et c'est plus cher !
Ou alors il faut convertir directement ton objet-3D bien texturé directement en msh. Mais il faut le plugin qui va bien. Et encore, il y aura d'autres soucis à régler.
Celui de anim8tor est finalement bien fait (sauf pour les "matérials" je vous expliquerai plus tard).
Fermons la parenthèse, les nuits sont encore fraîches....
Idem si on avait fait une projection selon l'axe des "z" et pareil en "y".
Une projection "cylindre" ne règle pas le problème : comment séparer les rails des parties en béton ???
Et la projection "boite" (box) fera des confettis partout, je vous dis pas la patience pour retrouver où sont placées tous les Lego...
Alors comment faire ? Simple, mais cela va prendre du temps. Pas d'autre alternative....
Il va donc falloir séparer ce mesh en 2 morceaux... du travail de découpage nous attend !!!
Dans la prochaine leçon, je vais vous expliquer :
- comment découper le mesh (séparer les rails du support en béton... et même plus !!!)
- comment texturer les morceaux
- comment recoller tout ça
- et bien sûr comment exporter le tout en fichier msh texturé et accepté par Orbiter.
Vous pouvez sortir en rang par 3 en vous tenant la main et en silence.Ouf! Pas trop tôt !!! Pour la prochaine leçon, je sonnerai la cloche.