Bonjour,
je suis en train de faire un maxscript, pour exporter une scene selon un format proche du .obj.
Et je n'arrive pas a récuperer le material appliqué a une face, j'essaie avec la fonction getFaceMatId , et ca me renvoi un nombre dont je ne c que faire.
Ce nombre est aléatoire pour tout les faces d'un objet ou je n'assigne pas de material, mais semble correspondre a qqch lorsque je commence a assigner des textures.
Par exemple, si j'assigne une meme texture a toutes les face d'un cube, ben j'obtiens 6 fois le meme nombre.
Mais seulement je c pas du tout a quoi ca correspond, j'esperais que se soit l'id dans le tableau meditmaterial, mais apperement non, ca matche pas.
qqn aurait une idée?
Voici l'etat actuel du script:
Code :
- i = 1
- for op in meditmaterials do
- (
- format "%\n" op.name
- format "%\n" op.diffuse.r
- if op.diffuseMap != undefined then
- format "%\n" op.diffuseMap.filename
- i += 1
- )
- i = 1
- while true do
- (
- if isValidNode selection[i] then
- (
- tmesh = snapshotAsMesh selection[i]
- format "o#%$\n" selection[i].name
- format "p#p#%/%/%$\n" selection[i].position.x selection[i].position.z -selection[i].position.y
- num_verts = tmesh.numverts
- num_tverts = tmesh.numTverts
- num_nverts = tmesh.numverts
- num_faces = tmesh.numfaces
- ground = getUserProp selection[i] "ground"
- breakable = getUserProp selection[i] "breakable"
- if ground == undefined then ground = 0
- if breakable == undefined then breakable = 0
- format "p#g#%$\n" ground
- format "p#b#%$\n" breakable
- for v = 1 to num_verts do
- (
- vert = getVert tmesh v
- format "v#%/%/%$\n" vert.x vert.z -vert.y
- )
- for t = 1 to num_tverts do
- (
- vert = getTVert tmesh t
- format "t#%/%/%$\n" vert.x vert.y vert.z
- )
- for n = 1 to num_nverts do
- (
- vert = getNormal tmesh n
- format "n#%/%/%$\n" vert.x vert.z vert.y
- )
- pwold = -1
- midold = -1
- for f = 1 to num_faces do
- (
- pw = getFaceSmoothGroup tmesh f
- if(pw != pwold) then
- (
- format "s#%$\n" pw
- pwold = pw
- )
- face = getFace tmesh f
- matid = getFaceMatId tmesh f
- jj = meditmaterials[matid]
- format "m#%\n" matid
- midold = mid
- face2 = getTVFace tmesh f
- face3 = getFaceNormal tmesh f
- x = face.x as integer
- y = face.y as integer
- z = face.z as integer
- x2 = face2.x as integer
- y2 = face2.y as integer
- z2 = face2.z as integer
- format "f#%/%/%&%/%/%&%/%/%$\n" x x2 x y y2 y z z2 z
- )
- format "\n"
- )else
- (
- format "-->fin<--\n"
- exit
- )
- i = i + 1
- )
|
Merci d'avance
Message édité par Nico5779 le 28-01-2005 à 11:37:41