#vfx #pxr #unsafe-bindings #usd

sys pxr_sys

OpenUSD的Rust接口

4个版本

0.2.0 2024年4月27日
0.1.2 2024年1月9日
0.1.1 2024年1月8日
0.1.0 2024年1月5日

400模拟 中排名

Download history 260/week @ 2024-04-22 28/week @ 2024-04-29 3/week @ 2024-05-06 33/week @ 2024-05-13 43/week @ 2024-05-20 20/week @ 2024-05-27 14/week @ 2024-06-03 13/week @ 2024-06-10 16/week @ 2024-06-17 19/week @ 2024-06-24 45/week @ 2024-07-15 13/week @ 2024-07-22 9/week @ 2024-07-29 19/week @ 2024-08-05

每月下载量 86
4 个库中使用 (通过 pxr)

MIT/Apache

210KB
5.5K SLoC

pxr_rs

crates.io Rust Docker deps.rs codecov.io

Rust接口用于 OpenUSD

状态

此项目处于早期开发阶段,尚未准备好用于生产。目前并未完全暴露OpenUSD API。

目前缺乏文档和示例,但将在crate更加稳定后成为重点。

目前,通过pxr_sys的默认功能编译的OpenUSD 22.11是项目开发的主要目标。

概述

工作区包含以下包

  • pxr_build: 建立OpenUSD绑定的辅助crate
  • pxr_sys: OpenUSD的Rust不安全绑定
  • pxr: OpenUSD的Rust安全绑定(WIP)

大多数绑定都是使用autocxx从OpenUSD头文件自动生成的,而一些则是通过rust-cpp以及pxr_build内的宏手动编写的。如果启用了vendored功能,OpenUSD的C++库可以在cargo构建过程中自动下载和编译。

依赖项

完整的依赖项列表可以在Dockerfile中找到。

启用其他非默认功能可能需要额外的依赖项。这目前尚未测试/记录。

说明

Rust

pxr 添加为Rust依赖项到您的 Cargo.toml 清单。

[dependencies]
pxr = { version = "0.2" }

请注意,第一次构建可能需要50分钟,因为OpenUSD将被自动下载并使用vendored功能编译。生成的工件将缓存在OUT_DIR中,并在后续构建中重用。

或者,您可以通过以下环境变量指定现有OpenUSD安装目录的路径。

export OPENUSD_PATH=/path/to/pxr/openusd

强烈推荐使用lldmold链接器,因为ld可能目前无法正常工作。

Docker

要在您的系统上安装Docker,您可以通过运行以下命令来配置Docker以支持NVIDIA GPU:.docker/host/install_docker.bash

.docker/host/install_docker.bash

构建镜像

要从Dockerfile构建新的Docker镜像,您可以运行以下命令:.docker/build.bash

.docker/build.bash ${TAG:-latest} ${BUILD_ARGS}

运行容器

要运行Docker容器,您可以运行以下命令:.docker/run.bash

.docker/run.bash ${TAG:-latest} ${CMD}

运行开发容器

要运行开发模式下的Docker容器(将源代码挂载为卷),您可以运行以下命令:.docker/dev.bash

.docker/dev.bash ${TAG:-latest} ${CMD}

作为替代,熟悉Dev Containers的VS Code用户可以修改包含的.devcontainer/devcontainer.json以适应其需求。为了方便,还提供了.devcontainer/open.bash脚本来在VS Code中将此存储库作为Dev Container打开。

.devcontainer/open.bash

连接容器

要从另一个终端连接到正在运行的Docker容器,您可以运行以下命令:.docker/join.bash

.docker/join.bash ${CMD:-bash}

免责声明

本项目与OpenUSD联盟(AOUSD)无关。

许可

本项目双许可以兼容Rust项目,可在MITApache 2.0许可证下使用。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在工作中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~3.5–9MB
~169K SLoC