Swift Assimp

macOS Linux license

这是对流行的、优秀的 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 的一个包装器,因此它显然依赖于它。
如果可以,请支持他们!

Open Asset Import Library (assimp)

来自 assimp/assimp/Readme.md

一个导入和导出各种 3d 模型格式的库,包括场景后处理,以生成缺少的渲染数据。

通过 PayPal 进行一次性捐赠
PayPal

☮️ 替代方案