打开资产导入库(assimp)的python绑定
pyassimp的Python项目详细描述
使用ctypes访问 图书馆。需要python>;=2.6。
python 3的支持主要在这里,但没有经过很好的测试。
请注意,pyassimp不完整。许多assimp功能都丢失了。
用法
完整示例:3D查看器
pyassimp附带了一个简单的3d查看器,显示如何加载和 使用基于明暗器的opengl管道显示三维模型。
屏幕截图
要使用它,请从/port/PyAssimp:
$ cd scripts $ python ./3D-viewer <path to your model>
您可以将此代码用作应用程序中的起点。
编写自己的代码
要开始使用pyassimp,请检查更简单的sample.py 在scripts/中编写脚本,说明了基本用法。全副武装 数据结构使用ctypes包装。所有数据+长度字段 在assimp的数据结构中(例如aiMesh::mNumVertices, aiMesh::mVertices)被简单的python列表替换,因此您可以 对它们调用len(),以获取它们各自的大小和访问成员 使用[]。
例如,加载名为hello.3ds的文件并打印第一个 第一个网格的顶点,你可以做(正确的错误处理 用断言代替……:
frompyassimpimport*scene=load('hello.3ds')assertlen(scene.meshes)mesh=scene.meshes[0]assertlen(mesh.vertices)print(mesh.vertices[0])# don't forget this one, or you will leak!release(scene)
另一个列出场景中“顶级节点”的示例:
frompyassimpimport*scene=load('hello.3ds')forcinscene.rootnode.children:print(str(c))release(scene)
安装
运行以下命令安装pyassimp:
$ python setup.py install
pyassimp需要一个assimp动态库(DLL在windows上,.so 在Linux上,.dynlib在MacOS上)以便工作。默认搜索 目录是:
- 当前目录
- 另外在Linux上:^{TT17}$,^{TT18}$, /usr/lib/x86_64-linux-gnu
要构建该库,请参阅assimp masterINSTALL 说明。要查找更多位置,请编辑./pyassimp/helper.py。 有一个additional_dirs列表在等待您的条目。