这是对流行的、优秀的 Open Asset Import Library 库的 轻量级 Swift 封装。
它提供了一个 swifty 和 类型安全 的 API。
Open Asset Import Library (简称: Assimp) 是一个可移植的开源库,用于以统一的方式导入各种著名的 3D 模型格式。最新版本还知道如何导出 3D 文件,因此适合作为通用 3D 模型转换器。可将 40 多种 3D 文件格式加载到一个统一且干净的数据结构中。
~ www.assimp.org
以下说明将帮助您在本地机器上启动并运行该项目,并提供代码示例。
Swift Assimp 适用于所有支持 Swift 5.3 及更高版本以及 Swift Package Manager (SPM) 的平台。
使用以下行扩展您的 Package.swift
文件,或使用它创建一个新项目。
对于使用 Swift 5.3+ 工具链的包清单,请使用
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "YourPackageName",
dependencies: [
.package(name: "Assimp", url: "https://github.com/ctreffs/SwiftAssimp.git", from: "2.1.0")
],
targets: [
.target(
name: "YourTargetName",
dependencies: ["Assimp"])
]
)
由于它是一个系统库的包装器,您需要通过以下方式安装 assimp 库 (>=5.0.0):
brew install assimp
或
apt-get install libassimp-dev
取决于您的平台。
import Assimp
let scene: AiScene = try AiScene(file: <path/to/model/file.obj>,
flags: [.removeRedundantMaterials, .genSmoothNormals]))
// get meshes
let meshes: [AiMesh] = scene.meshes
// get materials
let matrials: [AiMaterial] = scene.materials
// get the root node of the scene graph
let rootNode: [AiNode] = scene.rootNode
有关更多示例,请参阅单元测试。
本项目尚处于早期阶段,需要大量的完善。如果您有兴趣贡献,请随时参与!
需要完成的事情包括:
我们使用 SemVer 进行版本控制。有关可用版本,请参阅 此存储库上的标签。
另请参阅参与此项目的贡献者列表。
本项目根据 3-Clause BSD 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
由于 Swift Assimp 仅仅是 assimp 的一个包装器,因此它显然依赖于它。
如果可以,请支持他们!
一个导入和导出各种 3d 模型格式的库,包括场景后处理,以生成缺少的渲染数据。