3 个版本

0.1.2 2023 年 11 月 16 日
0.1.1 2023 年 11 月 15 日
0.1.0 2023 年 11 月 15 日

#372 in 渲染

每月 21 次下载
2 个crate中使用(通过 delight

Apache-2.0…

15KB
165

delight-sys

为 Illumination Research 的 3Delight 渲染器实用 API 自动生成的 Rust 绑定。

除非以下两种原因,您不需要直接使用此 crate。您可能是

  • 一个想直接从 Rust 使用 C-API 的受虐狂。

  • 对我的高级 Rust 绑定不满意(见下文)- 考虑在这里打开一个问题

高级绑定

此 API 的高级 Rust 绑定在 delight crate 中。

编译-与-运行时

此 crate 使用默认功能编译。

然而,在运行时,此 crate 需要一个实现相应 C-API 的库/渲染器来链接。目前唯一做到这一点的渲染器是 3Delight

Cargo 功能

  • download_lib3delight -- 从 Linux、macOS 或 Windows 获取 3Delight 的动态库版本。这可以用作后备方案,以构建,如果您没有在系统上安装渲染器。但它是一个旧的 3Delight 版本,首先是一个 CI 功能。

    建议您下载适用于您的平台的 3Delight 软件包并安装它。这将设置构建脚本正在寻找的 DELIGHT 环境变量,以找到要链接的本地库。

    这将还安装 3Delight Display,您可以将渲染输出到其中,逐步--这对于调试很有用。

    免费版本最多使用 12 个核心进行渲染。

  • link_lib3delight -- 在构建过程中静态链接到 `lib3dlight`。

    这需要 3Delight 安装,除非设置了 download_lib3delight。另请参阅下一节。

链接样式

在构建过程中可以将 3Delight 动态库(lib3delight)链接到,或在运行时加载。

  • 默认情况下,lib3deligh 在运行时加载。这有几个优点

    1. 如果您分发应用程序或库,您可以不包含库进行分发。它仍然可以运行,如果库无法加载,将会打印出信息性错误。

    2. 用户可以安装渲染器的更新版本,一切将“正常工作”。

  • 动态链接到 lib3delight

    • 该功能称为 link_lib3delight。在这种情况下,您应该禁用默认功能(它们不需要/使用)

      [dependencies]
      delight-sys = {
          version = "0.8",
          default-features = false,
          features = ["link_lib3delight"]
      }
      
    • lib3delight 成为依赖项。如果在运行时系统动态链接器找不到它,您的库/应用程序将无法加载/启动。

依赖项

~0.1–2.2MB
~39K SLoC