Raydium 3D Game Engine
http://memak.raydium.org/

export blender vers tri
http://memak.raydium.org/viewtopic.php?f=3&t=623
Page 1 of 2

Author:  eric_38 [ Sun Feb 11, 2007 8:29 am ]
Post subject:  export blender vers tri

Bonjour
L'export d'une strucutre blender en filaire vers un fichier tri dure des heures.C'est vrai que le fichier blender est très "escarpé" (je l'ai obtenu à partir d'une image en niveaus de gris).
Dans la fenêtre console j'ai ceci : ok it's a mesh
frame 0
frame 1 etc...
Actuellement le fichier tri s'écrit sur le disque et il en est à une taille de 800Mo qui continue d'augmenter depuis à peu près 15 heures que j'ai lancé le script python fourni avec raydium.Je ne connais plus la taille exacte de mon fichier ter que j'avais à l'origine.
Merci de votre réponse.

Author:  ouille [ Sun Feb 11, 2007 1:05 pm ]
Post subject:  Aïe

Bonjour,

Je ne suis spécialiste des fichiers tri.

Cependant quelques remarques qui pourraient t'aider.

Le fichier tri est ensuite importé dans raydium pour assurer le rendu de la scène. Si le fichier fait 800Mo, je n'ose imaginer la carte video qu'il va falloir pour afficher quelque chose. Il doit y avoir un maillage beaucoup (c'est un faible mot beaucoup) trop fin.
A mon avis ton fichier ne te servira a rien.
De plus si tu as frame0 ... C'est que tu doit exporter une animation. Est ce bien la manipulation voulue ?

Essaye de décrire ce que tu veux faire. Et le fichier blender source.

Bonne journée
Jacques

Author:  eric_38 [ Sun Feb 11, 2007 1:54 pm ]
Post subject: 

De toutes facon j'ai laissé tomber la construction de ce fichier qui n'en finissait pas.Je pars d'un fichier ter (terragen) que j'exporte vers blender à l'aide d'un script trouvé sur internet .J'ai voulu recommencer la manip avec un fichier plus simple mais là je n'arrive même pas à l'importer dans blender. La console me dit "object shadow not found". Mon but est de finir par un fichier tri afin que je puisse m'en servir dans raydium.

Author:  ouille [ Sun Feb 11, 2007 2:02 pm ]
Post subject: 

Bonjour,

Fait attention a la taille du fichier avant export.

Lance un blender
efface tout a puis x
ajoute un plan
subdive (w) fractal 10 par exemple et rand (10) pour un terrain accidenté
transforme le tout en triangles ctrl-t
tu peux maintenant l'exporter en .tri ce ne durera que quelques secondes.

A+
Jacques

Author:  Xfennec [ Sun Feb 11, 2007 2:03 pm ]
Post subject: 

Salut,

Tu donnes peu d'infos, mais je pense que tu utilises le mauvais script d'export pour Raydium : sauf cas particulier (animation MD2), n'utilise pas triEXP-MD2-36.py mais bien triEXP-B2-36.py .

Pour info, 50 Mo pour un fichier .TRI, c'est déjà costaud :)

Author:  eric_38 [ Sun Feb 11, 2007 5:57 pm ]
Post subject: 

En utilisant le script triEXP-b2-36 j'obtiens ceci dans la console :
Ok it's a mesh
File " triEXP-b2-36.py" line 69, in fs_callback
File " triEXP-b2-36.py" line 41, in writefaces
Indexerror : list index out of range.
Je ne cherche pas à exporter d'animation. Mon fichier blender est en filaire.

Author:  ouille [ Sun Feb 11, 2007 6:06 pm ]
Post subject: 

Bonjour,

Verifie que tes faces sont bien mappées ou qu'une couleur leur a été affectée.

A+
Jacques

Author:  Xfennec [ Sun Feb 11, 2007 6:25 pm ]
Post subject: 

Le format .tri ne gère que les triangles, comme son nom le laisse penser :)

Je ne sais pas ce qu'est ton "mode filaire", mais tu doit avoir des faces triangulaires (éventuellement CTRL+T avec tous tes points sélectionnés). Fait nous passer un fichier d'exemple si tu galères trop.

Author:  ouille [ Sun Feb 11, 2007 7:18 pm ]
Post subject: 

nouveau script d'export.

Voici une version mise a jour du script d'export qui gere une couleur par defaut si il n'y a pas d'information de couleur pour une face.

Code:
#!BPY

"""
Name: 'Raydium Export (.tri format)'
Blender: 2.36"
Group: 'Export'
Tooltip: 'Export to .tri format with normals'
"""

#import rpdb2;
#rpdb2.start_embedded_debugger("test",True)

import Blender

from Blender import NMesh

class source:
   def __init__(self,filename):
      self.file=open(filename,"w")

   def writeFaces(self):
      scene=Blender.Scene.getCurrent()
      self.file.write("1\n") #tri version
      
      for object in scene.getChildren():
          objtype=object.getType()
          if objtype == "Mesh":
         print "ok, it's a mesh"
         mesh=object.getData()
         vlist=mesh.verts
         for face in mesh.faces:
            if len(face)!=3:
                print "ERROR: NOT A TRIANGLE ONLY MESH ! (select all vertices and use CTRL+T)"
                      for i in range(3): #triangles only ! (CTRL+T)
                          indx=vlist.index(face[i])
                if(face.image):
               u=face.uv[i][0]
               v=face.uv[i][1]
               self.file.write("%f %f %f %f %f %f %f %f %s\n" % (vlist[indx].co[0],vlist[indx].co[1],vlist[indx].co[2],vlist[indx].no[0],vlist[indx].no[1],vlist[indx].no[2],u,v,face.image.name))
                else:
                  if(len(face.col)==0):
                     self.file.write("%f %f %f %f %f %f 0 0 rgb(1,1,0)\n" % (vlist[indx][0],vlist[indx][1],vlist[indx][2],vlist[indx].no[0],vlist[indx].no[1],vlist[indx].no[2]))
                  else:
                     self.file.write("%f %f %f %f %f %f 0 0 rgb(%3.3f,%3.3f,%3.3f)\n" % (vlist[indx][0],vlist[indx][1],vlist[indx][2],vlist[indx].no[0],vlist[indx].no[1],vlist[indx].no[2],face.col[i].r/255.0,face.col[i].g/255.0,face.col[i].b/255.0))
               
# get the face normals
#         self.file.write("GLfloat normals[%d][3] = {\n" % len(mesh.normals) )
#         for normal in mesh.normals:
#            self.file.write("{ %ff, %ff, %ff },\n" % (normal[0],normal[1],normal[2]))
#         self.file.write("};\n\n")

# get the mesh colors
#         if mesh.colors:
#            self.file.write("char OBJ_HAVE_COLORS=1;\n")
#            self.file.write("GLfloat colors[%d][3] = {\n" % len(mesh.colors) )
#            for color in mesh.colors:
#               self.file.write("{ %ff, %ff, %ff },\n" % (color[0],color[1],color[2]))
#            self.file.write("};\n\n")
#         else:
#            self.file.write("char OBJ_HAVE_COLORS=0;\nGLfloat *colors;\n")


   def close(self):
         self.file.flush()
         self.file.close()

def fs_callback(filename):
   if filename.find('.tri', -4) <= 0: filename += '.tri'
   obj=source(filename)
   obj.writeFaces()
   obj.close
   print "Exported to %s. Textures must be .tga, uncompressed, origin NOT at lower-left.\n" % (filename)

#fs_callback("tt.tri")
Blender.Window.FileSelector(fs_callback, "Export Raydium Tri")


Fais un copié collé a la place de l'ancien script.
Fais en bon usage.

Jacques

Author:  Xfennec [ Sun Feb 11, 2007 7:48 pm ]
Post subject: 

ouille : Le problème d'eric n'est probablement pas celui là (pour l'instant :) ).
Cette version devrait cependant rejoindre le SVN (avec une couleur grise plus que du rouge) s'il a été testé.

Author:  ouille [ Sun Feb 11, 2007 8:02 pm ]
Post subject: 

Au cas ou.

Cette erreur je l'avais déjà eu, et le message d'erreur ressemblait bien a celui la.

Le script est corrigé, couleur grise (0.6,0.6,0.6).
Je fais la livraison.

A+
Jacques

Author:  eric_38 [ Sun Feb 11, 2007 10:27 pm ]
Post subject: 

Je vais essayer le script de ouille demain.Je suis bien en triangulaire (Crlt+T).Par contre je n'ai pas du tout compris ce qu'était les faces mapés.
Je vous tiens au courant.

Author:  eric_38 [ Mon Feb 12, 2007 10:23 am ]
Post subject: 

Ton code ne marche pas. Avant même de choisir un fichier à exporter j'ai l'erreur : "IndentationError:unindent does not match any outer indentation level"
Par contre je viens de m'apercevoir qu'au lancement de blender j'ai ceci : "Checking for installed Python...No installed python found
Only built-in modules are availables.Some scripts may not run"

Sinon comment ja fais pour vous passer le fichier blender.Il fait 6mo.

Author:  ouille [ Mon Feb 12, 2007 1:58 pm ]
Post subject: 

bonjour,

python a l'air sensible de l'indentation, le copier collé ne lui convient surement pas.

Essaye de récupérer le fichier dans la dernière mise à jour:
http://freeway.raydium.org/data/raydium_nightly_svn.tar.gz
Normalement le fichier corrigé a été importé hier.

"Checking for installed Python...No installed python found
Only built-in modules are availables.Some scripts may not run"
:
ce n'est pas grave, sur ma machine ca marche aussi. Les fonctions internes suffisent.

Sinon utilise l'ancien script.

Une fois ton objet crée et triangulé
Passe en mode uv face select
sélectionne bien toutes tes faces (A)
dans l'onglet texture face choisi une couleur et clique sur set vert color
ton objet doit changer de couleur.
passe en mode object et essaye l'export.

Tiens moi informé du résultat.

A+
Jacques

Author:  eric_38 [ Mon Feb 12, 2007 7:49 pm ]
Post subject: 

En faisant comme tu dis tout marche nickel J'ai pu ensuite charger ce fichier dans raydium et c'est ok'ai pris le dernier scipt que tu as donné en lien mais peut être qu'avec celui fiurni dans raydium c'était pareilEn tou.t cas c'était bien une question de couleur des faces.Merci encore

Page 1 of 2 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/