|
@@ -1,67 +1,71 @@
|
|
|
-#-*- coding: UTF-8 -*-
|
|
|
-
|
|
|
-"""
|
|
|
-This module demonstrates the functionality of PyAssimp.
|
|
|
-"""
|
|
|
-
|
|
|
-
|
|
|
-from pyassimp import pyassimp
|
|
|
-import os
|
|
|
-
|
|
|
-#get a model out of assimp's test-data
|
|
|
-MODEL = os.path.join(os.path.dirname(__file__),
|
|
|
- "..", "..",
|
|
|
- "test", "models", "MDL", "MDL3 (3DGS A4)", "minigun.MDL")
|
|
|
-
|
|
|
-def main():
|
|
|
- scene = pyassimp.load(MODEL)
|
|
|
-
|
|
|
- #the model we load
|
|
|
- print "MODEL:", MODEL
|
|
|
- print
|
|
|
-
|
|
|
- #write some statistics
|
|
|
- print "SCENE:"
|
|
|
- print " meshes:", len(scene.meshes)
|
|
|
- print " materials:", len(scene.materials)
|
|
|
- print " textures:", len(scene.textures)
|
|
|
- print
|
|
|
-
|
|
|
- print "MESHES:"
|
|
|
- for index, mesh in enumerate(scene.meshes):
|
|
|
- print " MESH", index+1
|
|
|
- print " material:", mesh.mMaterialIndex+1
|
|
|
- print " vertices:", len(mesh.vertices)
|
|
|
- print " first:", mesh.vertices[:3]
|
|
|
- print " colors:", len(mesh.colors)
|
|
|
- tc = mesh.texcoords
|
|
|
- print " texture-coords 1:", len(tc[0]), "first:", tc[0][:3]
|
|
|
- print " texture-coords 2:", len(tc[1]), "first:", tc[1][:3]
|
|
|
- print " texture-coords 3:", len(tc[2]), "first:", tc[2][:3]
|
|
|
- print " texture-coords 4:", len(tc[3]), "first:", tc[3][:3]
|
|
|
- print " uv-component-count:", len(mesh.mNumUVComponents)
|
|
|
- print " faces:", len(mesh.faces), "first:", [f.indices for f in mesh.faces[:3]]
|
|
|
- print " bones:", len(mesh.bones), "first:", [b.mName for b in mesh.bones[:3]]
|
|
|
- print
|
|
|
-
|
|
|
- print "MATERIALS:"
|
|
|
- for index, material in enumerate(scene.materials):
|
|
|
- print " MATERIAL", index+1
|
|
|
- properties = pyassimp.GetMaterialProperties(material)
|
|
|
- for key in properties:
|
|
|
- print " %s: %s" % (key, properties[key])
|
|
|
- print
|
|
|
-
|
|
|
- print "TEXTURES:"
|
|
|
- for index, texture in enumerate(scene.textures):
|
|
|
- print " TEXTURE", index+1
|
|
|
- print " width:", texture.mWidth
|
|
|
- print " height:", texture.mHeight
|
|
|
- print " hint:", texture.achFormatHint
|
|
|
- print " data (size):", texture.mWidth*texture.mHeight
|
|
|
-
|
|
|
- # Finally release the model
|
|
|
- pyassimp.release(scene)
|
|
|
-
|
|
|
-if __name__ == "__main__":
|
|
|
- main()
|
|
|
+#!/usr/bin/env python
|
|
|
+#-*- coding: UTF-8 -*-
|
|
|
+
|
|
|
+"""
|
|
|
+This module demonstrates the functionality of PyAssimp.
|
|
|
+"""
|
|
|
+
|
|
|
+
|
|
|
+from pyassimp import pyassimp
|
|
|
+import os, sys
|
|
|
+
|
|
|
+#get a model out of assimp's test-data if none is provided on the command line
|
|
|
+DEFAULT_MODEL = os.path.join(os.path.dirname(__file__),
|
|
|
+ "..", "..",
|
|
|
+ "test", "models", "MDL", "MDL3 (3DGS A4)", "minigun.MDL")
|
|
|
+
|
|
|
+def main(filename=None):
|
|
|
+ filename = filename or DEFAULT_MODEL
|
|
|
+ scene = pyassimp.load(filename)
|
|
|
+
|
|
|
+ #the model we load
|
|
|
+ print "MODEL:", filename
|
|
|
+ print
|
|
|
+
|
|
|
+ #write some statistics
|
|
|
+ print "SCENE:"
|
|
|
+ print " meshes:", len(scene.meshes)
|
|
|
+ print " materials:", len(scene.materials)
|
|
|
+ print " textures:", len(scene.textures)
|
|
|
+ print
|
|
|
+
|
|
|
+ print "MESHES:"
|
|
|
+ for index, mesh in enumerate(scene.meshes):
|
|
|
+ print " MESH", index+1
|
|
|
+ print " material:", mesh.mMaterialIndex+1
|
|
|
+ print " vertices:", len(mesh.vertices)
|
|
|
+ print " first 3 verts:", mesh.vertices[:3]
|
|
|
+ #if len(mesh.normals):
|
|
|
+ # print " first 3 normals:", mesh.normals[:3]
|
|
|
+ print " colors:", len(mesh.colors)
|
|
|
+ tc = mesh.texcoords
|
|
|
+ print " texture-coords 1:", len(tc[0]), "first3:", tc[0][:3]
|
|
|
+ print " texture-coords 2:", len(tc[1]), "first3:", tc[1][:3]
|
|
|
+ print " texture-coords 3:", len(tc[2]), "first3:", tc[2][:3]
|
|
|
+ print " texture-coords 4:", len(tc[3]), "first3:", tc[3][:3]
|
|
|
+ print " uv-component-count:", len(mesh.mNumUVComponents)
|
|
|
+ print " faces:", len(mesh.faces), "first:", [f.indices for f in mesh.faces[:3]]
|
|
|
+ print " bones:", len(mesh.bones), "first:", [b.mName for b in mesh.bones[:3]]
|
|
|
+ print
|
|
|
+
|
|
|
+ print "MATERIALS:"
|
|
|
+ for index, material in enumerate(scene.materials):
|
|
|
+ print " MATERIAL", index+1
|
|
|
+ properties = pyassimp.GetMaterialProperties(material)
|
|
|
+ for key in properties:
|
|
|
+ print " %s: %s" % (key, properties[key])
|
|
|
+ print
|
|
|
+
|
|
|
+ print "TEXTURES:"
|
|
|
+ for index, texture in enumerate(scene.textures):
|
|
|
+ print " TEXTURE", index+1
|
|
|
+ print " width:", texture.mWidth
|
|
|
+ print " height:", texture.mHeight
|
|
|
+ print " hint:", texture.achFormatHint
|
|
|
+ print " data (size):", texture.mWidth*texture.mHeight
|
|
|
+
|
|
|
+ # Finally release the model
|
|
|
+ pyassimp.release(scene)
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ main(sys.argv[1] if len(sys.argv)>1 else None)
|