#vfx #houdini #graphics #gamedev #game-engine

hapi-rs

Rust对Houdini Engine API的绑定

10个版本 (5个破坏性版本)

0.10.0 2024年3月14日
0.9.3 2023年12月19日
0.9.2 2023年3月27日
0.8.0 2022年11月20日
0.1.0 2021年8月3日

#138 in 游戏开发

Download history 37/week @ 2024-03-08 51/week @ 2024-03-15 7/week @ 2024-03-22 56/week @ 2024-03-29 14/week @ 2024-04-05

每月359次下载

MIT 许可证

460KB
13K SLoC

Rust对Houdini Engine API的绑定

Cargo Documentation MIT/Apache 2.0

SideFX Houdini 遇见 Rust!

SideFx Houdini 是世界领先的用于创建电影和游戏惊人视觉效果的软件。除了用C++和Python编写的默认图形界面外,Houdini还提供了一个名为 Houdini Engine 或简称为HAPI的C接口。其目标是将Houdini的强大功能带到其他DCC(数字内容创建)软件和游戏引擎中。

这个crate旨在提供Houdini Engine的惯用Rust接口,并建立在 hapi-sys 之上。

❗ 使用此crate需要有效的 商业 Houdini Engine许可证

HDA查看器演示

https://user-images.githubusercontent.com/10694389/227816361-b9ffa083-7932-40e4-afda-3cb400126eb5.mp4

YouTube上的介绍视频

示例

use hapi_rs::Result;
use hapi_rs::session::quick_session;
use hapi_rs::parameter::*;

fn main() -> Result<()> {
    // Start a standalone engine process
    let session = quick_session(None)?;
    // Load a Houdini Asset and create a node
    let lib = session.load_asset_file("otls/hapi_geo.hda")?;
    let node = lib.create_asset_for_node("Object/hapi_geo", None)?;
    // Set the "scale" parameter
    if let Parameter::Float(parm) = node.parameter("scale")? {
        parm.set(0, 3.0)?;
        node.cook(None)?;
    }
    // Get a reference to the node's internal geometry
    let geometry = node.geometry()?.expect("geometry");
    // Save it to one of the supported geometry formats
    geometry.save_to_file("/tmp/output.fbx")?;
    Ok(())
}

构建

请参阅文档 构建部分

HAPI C文档

更多示例

依赖

~2–11MB
~120K SLoC