assimp/assimp
GitHub: assimp/assimp
一个成熟的开源3D资产导入导出库,将40多种3D文件格式统一到一套干净的内存结构中,并提供丰富的网格后处理功能。
Stars: 12779 | Forks: 3152
# Open Asset Import Library (assimp)
Open Asset Import Library 是一个库,用于将各种 3D 文件格式加载到共享的内存格式中。它支持超过 __40 种文件格式__ 的导入,并支持越来越多的导出文件格式。
## 当前项目状态

[](https://www.codacy.com/gh/assimp/assimp/dashboard?utm_source=github.com&utm_medium=referral&utm_content=assimp/assimp&utm_campaign=Badge_Grade)
[](https://sonarcloud.io/summary/new_code?id=assimp_assimp)
[](http://isitmaintained.com/project/assimp/assimp "Average time to resolve an issue")
[](http://isitmaintained.com/project/assimp/assimp "Percentage of issues still open")
[](https://gurubase.io/g/assimp)
[](https://opencollective.com/assimp)
该库提供 C 和 C++ 的 API。还存在针对其他语言的各种绑定(C#、Java、Python、Delphi、D)。Assimp 也可以在 Android 和 iOS 上运行。 此外,assimp 具有各种 __网格后处理工具__:法线和切线空间生成、三角化、顶点缓存局部性优化、移除退化图元和重复顶点、按图元类型排序、合并冗余材质以及许多其他功能。 ## 项目活动  ## 开发者快速入门 ``` git clone https://github.com/assimp/assimp cd assimp cmake -G Ninja -DASSIMP_BUILD_TESTS=off -DASSIMP_INSTALL=off -S . -B build cd build ninja ``` ## 文档 阅读[我们的最新文档](https://the-asset-importer-lib-documentation.readthedocs.io/en/latest/)。 ## 预编译二进制文件 从[我们的 Itch 项目空间](https://kimkulling.itch.io/the-asset-importer-lib)下载二进制文件。 ## 测试数据 克隆[我们的模型数据库用于测试](https://github.com/assimp/assimp-mdb)。 ## 社区 - 在 [Assimp 讨论板](https://github.com/assimp/assimp/discussions)提问。 - 在 [discord](https://discord.gg/kKazXMXDy2) 上找到我们 - 在 [Reddit 上的 Assimp 社区](https://www.reddit.com/r/Assimp/)提问。 - 在 [StackOverflow 上使用 assimp 标签](http://stackoverflow.com/questions/tagged/assimp?sort=newest)提问。 - 以上都没用?在 [Assimp 问题跟踪器](https://github.com/assimp/assimp/issues)提交问题或报告 ## 支持的文件格式 查看[支持格式的完整列表](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md)。 ## 构建 首先阅读[我们的构建说明](https://github.com/assimp/assimp/blob/master/Build.md)。我们可在 vcpkg 中获取,并且我们的构建系统是 CMake;如果您以前使用过 CMake,很可能知道该怎么做。 ## 移植版本 * [Android](port/AndroidJNI/README.md) * [Python](port/PyAssimp/README.md) * [.NET](https://github.com/Saalvage/AssimpNetter) * [Pascal](port/AssimpPascal/Readme.md) * [Javascript (Alpha)](https://github.com/makc/assimp2json) * [Javascript/Node.js 接口](https://github.com/kovacsv/assimpjs) * [Unity 3d 插件](https://ricardoreis.net/trilib-2/) * [Unreal Engine 插件](https://github.com/irajsb/UE4_Assimp/) * [JVM](https://github.com/kotlin-graphics/assimp) 完整的 JVM 移植(当前[状态](https://github.com/kotlin-graphics/assimp/wiki/Status)) * [HAXE-Port](https://github.com/longde123/assimp-haxe) The Assimp-HAXE-port。 * [Rust](https://github.com/jkvargas/russimp) ## 其他工具 [Qt5-ModelViewer](https://github.com/sharjith/ModelViewer-Qt5) 是一个基于 Qt5 和 Assimp 导入导出功能的强大查看器。
[Assimp-Viewer](https://github.com/assimp/assimp_view) 是一个基于 ImGUI 和 Assimp 的资源查看器实验性实现(实验性)。 ### 仓库结构 Open Asset Import Library 是用 C++ 实现的。目录结构如下: ``` code Source code ├── AssetLib/ The asset-importer and exporter lib ├── CApi/ C-API files ├── Common/ Common code used from all modules ├── Geometry/ Geometry utilities ├── Material/ Common materials ├── Pbrt/ Physical based materials ├── PostProcessing/ Post-processing steps ├── res Resouce files contrib Third-party libraries doc Documentation (Doxygen source and pre-compiled docs) fuzz Contains the test code for the Google Fuzzer project include Public header C and C++ header files scripts Scripts are used to generate the loading code for some formats port Ports to other languages and scripts to maintain those. test Unit- and regression tests, test suite of models ├── headercheck Implements headerchecks ├── models-nonbsd Non-BSP licensed headers ├── models BSP-licensed models ├── unit Unit tests tools Tools (old assimp viewer, command line `assimp`) samples Small number of samples to illustrate possible use cases for Assimp ``` ## 许可证 我们的许可证基于修改后的 __3-clause BSD__ 许可证。 一个 _非正式_ 的总结是:做任何你想做的事,但在你的产品中包含 Assimp 的许可证文本——如果我们的代码不工作,不要起诉我们。请注意,与 LGPL 代码不同,您可以静态链接到 Assimp。 有关法律详细信息,请参阅 `LICENSE` 文件。
该库提供 C 和 C++ 的 API。还存在针对其他语言的各种绑定(C#、Java、Python、Delphi、D)。Assimp 也可以在 Android 和 iOS 上运行。 此外,assimp 具有各种 __网格后处理工具__:法线和切线空间生成、三角化、顶点缓存局部性优化、移除退化图元和重复顶点、按图元类型排序、合并冗余材质以及许多其他功能。 ## 项目活动  ## 开发者快速入门 ``` git clone https://github.com/assimp/assimp cd assimp cmake -G Ninja -DASSIMP_BUILD_TESTS=off -DASSIMP_INSTALL=off -S . -B build cd build ninja ``` ## 文档 阅读[我们的最新文档](https://the-asset-importer-lib-documentation.readthedocs.io/en/latest/)。 ## 预编译二进制文件 从[我们的 Itch 项目空间](https://kimkulling.itch.io/the-asset-importer-lib)下载二进制文件。 ## 测试数据 克隆[我们的模型数据库用于测试](https://github.com/assimp/assimp-mdb)。 ## 社区 - 在 [Assimp 讨论板](https://github.com/assimp/assimp/discussions)提问。 - 在 [discord](https://discord.gg/kKazXMXDy2) 上找到我们 - 在 [Reddit 上的 Assimp 社区](https://www.reddit.com/r/Assimp/)提问。 - 在 [StackOverflow 上使用 assimp 标签](http://stackoverflow.com/questions/tagged/assimp?sort=newest)提问。 - 以上都没用?在 [Assimp 问题跟踪器](https://github.com/assimp/assimp/issues)提交问题或报告 ## 支持的文件格式 查看[支持格式的完整列表](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md)。 ## 构建 首先阅读[我们的构建说明](https://github.com/assimp/assimp/blob/master/Build.md)。我们可在 vcpkg 中获取,并且我们的构建系统是 CMake;如果您以前使用过 CMake,很可能知道该怎么做。 ## 移植版本 * [Android](port/AndroidJNI/README.md) * [Python](port/PyAssimp/README.md) * [.NET](https://github.com/Saalvage/AssimpNetter) * [Pascal](port/AssimpPascal/Readme.md) * [Javascript (Alpha)](https://github.com/makc/assimp2json) * [Javascript/Node.js 接口](https://github.com/kovacsv/assimpjs) * [Unity 3d 插件](https://ricardoreis.net/trilib-2/) * [Unreal Engine 插件](https://github.com/irajsb/UE4_Assimp/) * [JVM](https://github.com/kotlin-graphics/assimp) 完整的 JVM 移植(当前[状态](https://github.com/kotlin-graphics/assimp/wiki/Status)) * [HAXE-Port](https://github.com/longde123/assimp-haxe) The Assimp-HAXE-port。 * [Rust](https://github.com/jkvargas/russimp) ## 其他工具 [Qt5-ModelViewer](https://github.com/sharjith/ModelViewer-Qt5) 是一个基于 Qt5 和 Assimp 导入导出功能的强大查看器。
[Assimp-Viewer](https://github.com/assimp/assimp_view) 是一个基于 ImGUI 和 Assimp 的资源查看器实验性实现(实验性)。 ### 仓库结构 Open Asset Import Library 是用 C++ 实现的。目录结构如下: ``` code Source code ├── AssetLib/ The asset-importer and exporter lib ├── CApi/ C-API files ├── Common/ Common code used from all modules ├── Geometry/ Geometry utilities ├── Material/ Common materials ├── Pbrt/ Physical based materials ├── PostProcessing/ Post-processing steps ├── res Resouce files contrib Third-party libraries doc Documentation (Doxygen source and pre-compiled docs) fuzz Contains the test code for the Google Fuzzer project include Public header C and C++ header files scripts Scripts are used to generate the loading code for some formats port Ports to other languages and scripts to maintain those. test Unit- and regression tests, test suite of models ├── headercheck Implements headerchecks ├── models-nonbsd Non-BSP licensed headers ├── models BSP-licensed models ├── unit Unit tests tools Tools (old assimp viewer, command line `assimp`) samples Small number of samples to illustrate possible use cases for Assimp ``` ## 许可证 我们的许可证基于修改后的 __3-clause BSD__ 许可证。 一个 _非正式_ 的总结是:做任何你想做的事,但在你的产品中包含 Assimp 的许可证文本——如果我们的代码不工作,不要起诉我们。请注意,与 LGPL 代码不同,您可以静态链接到 Assimp。 有关法律详细信息,请参阅 `LICENSE` 文件。
标签:3D建模, 3D文件解析, 3D模型处理, assimp, Bash脚本, C++库, C#绑定, FBX格式, glTF格式, iOS开发, JS文件枚举, OBJ格式, Python绑定, 几何处理, 可视化界面, 场景图, 安卓开发, 开源库, 搜索引擎爬虫, 数据结构, 文件格式转换, 模型优化, 法线计算, 渲染引擎, 游戏开发, 纹理坐标, 网格处理, 计算机图形学, 资产导入库, 逆向工具