Cet importateur calcul les dimensions du meshs (largeur, hauteur et profondeur) mais malheureusement ça ne fonctionne pas avec certains meshs peut etre un peu complexe. Quoique je me demande si ça vient bien de la complexité du mesh.
J'ai sorti ce code d'Open Space 3D pour l'intégrer dans un autre projet : Ogre Assimp Viewer.
Ce code ne fait que sélectionner des fichiers meshs ainsi qu'une texture associé ou un fichier materiel et affiche le résultat. Je me sert de l’exécutable OgreAssimpConverter disponible sur le forum anglais en cliquant sur ce lien.
Le calcul des dimensions du mesh se trouve dans cette partie du code.
Code : Tout sélectionner
Mesh = LoadMesh(#PB_Any, FilePart)
;-Calcul largeur, hauteur et profondeur (Ne fonctionne pas avec certains meshs)
If IsMesh(Mesh)
XMin=0
XMax=0
Ymin=0
YMax=0
ZMin=0
ZMax=0
ReDim MeshData.PB_MeshVertex(0)
For j=0 To SubMeshCount(Mesh)-1
GetMeshData(Mesh, j, MeshData(), #PB_Mesh_Vertex|#PB_Mesh_Color, 0, MeshVertexCount(Mesh, j)-1)
For i = 0 To ArraySize(MeshData())
If MeshData(i)\x < XMin
Xmin = MeshData(i)\x
EndIf
If MeshData(i)\x > XMax
XMax = MeshData(i)\x
EndIf
If MeshData(i)\y < YMin
Ymin = MeshData(i)\Y
EndIf
If MeshData(i)\y > YMax
YMax = MeshData(i)\y
EndIf
If MeshData(i)\z < ZMin
Zmin = MeshData(i)\Z
EndIf
If MeshData(i)\z > ZMax
ZMax = MeshData(i)\Z
EndIf
Next
Next
;Affichage des dimensions du mesh
Width = XMax-Xmin
Height = YMax-Ymin
Depth = ZMax-Zmin
Radius = MeshRadius(Mesh)
Vous trouverez aussi le code complet ainsi que tout ce qui est nécessaire au fonctionnement de l'application en cliquant sur le lien suivant :
OgreAssimpViewer.zip (20 Mo)
Une fois ce dossier décompressé, vous trouverez :
■ Les exécutables nécessaires à la conversion des meshs vers ogres.
OgreAssimpConverter.exe, OgreMeshUpgrader.exe et OgreMain.dll
■ Le code source et son exécutable qui permet de sélectionner les meshs à convertir.
Ogre Assimp Viewer.pb et Ogre Assimp Viewer.exe
■ Un dossier exemples qui permet de tester l'application.
PureBasic.mesh
uh60.mesh
Dossier Camera (Exemple OBJ)
Dossier Cascade (Script Material)
Dossier Zombie Dog (Exemple DAE)
et surtout
Dossier UH-60(Exemple qui ne fonctionne pas)
Ce dernier dossier contient l'obj qui pose problème au moment du calcul des dimensions. Pourtant si vous cherchez à visualisez le mesh qui sera quand même converti, les dimensions sont bien calculés.
■ Quelques touches de raccourcis.
Rotation du mesh
Left, Right, Up, Down
Déplacement et zoom de la caméra.
Haut bas : PageUp, PageDown
Zoom: - et +
J'espére que quelqu'un me trouvera une solution