打开资产导入库(assimp)的python绑定

pyassimp的Python项目详细描述


使用ctypes访问 图书馆。需要python>;=2.6。

python 3的支持主要在这里,但没有经过很好的测试。

请注意,pyassimp不完整。许多assimp功能都丢失了。

用法

完整示例:3D查看器

pyassimp附带了一个简单的3d查看器,显示如何加载和 使用基于明暗器的opengl管道显示三维模型。

Screenshot

屏幕截图

要使用它,请从/port/PyAssimp

$ cd scripts
$ python ./3D-viewer <path to your model>

您可以将此代码用作应用程序中的起点。

编写自己的代码

要开始使用pyassimp,请检查更简单的sample.pyscripts/中编写脚本,说明了基本用法。全副武装 数据结构使用ctypes包装。所有数据+长度字段 在assimp的数据结构中(例如aiMesh::mNumVerticesaiMesh::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列表在等待您的条目。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从数组中打印int值?   prepared语句Java中奇怪的异常PreparedStatement:参数索引超出范围   封装如何在OOP Java中为主方法编码?   java某些手机显示快捷方式徽章需要什么权限?   java TextView不会随OnItemSelectedListener更改   java注释处理器不会自动触发吗?   java Spring JPA如何计算外键数   c#对于这个简单的OOAD问题,哪种设计最优雅?   java如何处理while循环中的异常?   Android Studio错误:进程'command'/home/draven/Downloads/安卓studio/jre/bin/java''结束,退出值为非零2   在使用Payara服务器的Vaadin应用程序中导航到根目录时,java将丢失上下文根目录   使用contentType application/json而不是application/jsonpatch+json的java修补程序   带有tomcat的java HAproxy连接不足   Java:在应用过滤器后创建一个简单的通用方法进行计数   java如何使用多态性创建一个实例化对象的方法,然后用它们高效地填充ArrayList?