[CG从零开始] 3. 安装 pyassimp 库加载模型文件
assimp 是一个开源的模型加载库,支持非常多的格式,还有许多语言的 binding,这里我们选用 assimp 的 python 的 binding 来加载模型文件。不过社区主要是在维护 assimp 的 C++ 代码,对于这些 binding 可能更新的不够及时,比如 python 版本的就存在一些问题。
1. 安装 pyassimp#
官方的编译的指南,有些坑还是需要踩一下。
pyassimp 只是 assimp 的一个 wrapper,所以计算上还必须有 assimp 的库才行,还是免不了要去编译 assimp。
这里推荐采用 vcpkg 的进行管理,windows 上需要装一下 visual studio,mac 需要装一下 xcode,这些软件也是标配了。我的电脑是 macOS,这里有个坑需要注意一下,vcpkg 这个默认编译是静态库 .a,我们需要编译动态库,所以需要改一下 vcpkg 的编译选项。如下 vcpkg/triplets/x64-osx.cmake
中将如下选项改为 dynamic
set(VCPKG_LIBRARY_LINKAGE dynamic)
依次执行以下命令即可。
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install assimp
等待编译完成,即可在 vcpkg/packages/assimp_x64-osx/lib
中找到动态库 .dylib 文件,windows 应该也是差不多的路径。
然后可以用 pip 来安装 pyassimp
注意! 这里有个坑,pyassimp 的 4.1.4 版本,现在默认最新版本,存在 bug,加载模型可能会随机 crash,github 上有个 issue 在讨论这个事情,大家目前的解决方案就是回退到 4.1.3 所以在安装的时候,我们指定一下版本。
pip install pyassimp==4.1.3
2. 调用 pyassimp API 加载模型#
这个时候如果直接调用加载 API 加载模型,会报找不到库的错误:
raise AssimpError("assimp library not found")
pyassimp.errors.AssimpError: assimp library not found
因为 vcpkg 安装的 assimp 的库不在 pyassimp 的搜索路径下,看了一下 pyassimp 搜索库的路径,基本上常用的库的路径他都搜索来,我们有两种方法,1. 创建一个软链接到搜索路径中, 2. 将 assimp 库的路径加入环境变量 LD_LIBRARY_PATH
中。
为了方便我创建一个软链接到系统库中
ln -s {你的 assimp 库的路径} /usr/local/lib
然后我们执行下面的代码,主要 path 换成你的模型文件,这下就可以找到库文件了。
import pyassimp
path = "box.fbx"
scene = pyassimp.load(path)
print(scene.meshes[0].vertices.shape)
3. 总结#
- 用 vcpkg 编译得到 assimp 的库,注意修改编译选项;
- 安装 pyassimp 的 4.1.3 版本!!;
- 将 assimp 库放到 pyassimp 可以找到的地方
作者:芒果和小猫
出处:https://www.cnblogs.com/WAoyu/p/16747941.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律