IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 简单概括HAPI(Houdini Engine API)所涵盖的功能 -> 正文阅读

[游戏开发]简单概括HAPI(Houdini Engine API)所涵盖的功能

概念

“Houdini Engine” 这一角色让“宿主程序”(指UE4、Unity、Maya等)可以与Houdini数据进行交互。
各宿主程序都有其对应的 “Houdini Engine 插件”

Houdini Engine API,简称 HAPI,是 “Houdini Engine” 最底层的接口 。
换句话说:无论是哪个宿主程序,无论插件版本是什么,无论上层经过了何种封装,他们最底层都在使用同一套接口,即 HAPI
比如,对于UE来说:
在这里插入图片描述

相对于插件代码来说,HAPI本身的变化是不大的。比如,UE4插件的“第二版”(这篇博客是翻译官方对第二版插件的介绍),对比其“旧版”(这篇博客对旧版插件代码进行了梳理),第二版是全新的面貌,且有很多新功能。但是,第二版的改变主要在于UE4插件的C++代码,HAPI几乎没变化。
(主要的变化是加了“Session同步”相关的功能,见Houdini Engine 3.5: What’s New in HAPI):
在这里插入图片描述

目标

HAPI所有函数都在HAPI.h中,大概有200多个。

本篇的目标是:

  • 依照官方文档中的分类,简单概括一遍所有函数。并结合自己的使用经验,指出其中相对重要的函数。最后概括下一般的使用流程。

下面是所有的分类:
(其中“★”表示我认为最基础且必要的分类,“☆”是经常会用到的分类,不常用的放在了最后)

1. ★ Sessions(13个函数)

关于 “Session” 的概念,可以参考之前对官方文档的翻译
简单来说,你通过Session和后台的Houdini进程进行通信。因此几乎所有HAPI函数都要求一个Session指针作为参数。

这个分类下的函数大概包括:

  • 创建各种类型的Session
  • 查询session状态
  • 清理session
  • 关闭session
  • 等其他和session直接相关的函数

2. ★ Nodes(23个函数)

这个分类包含了和节点相关的关键操作。比如:

  • 创建节点
  • Cook节点
  • 删除节点
  • 连接节点
  • 获得节点的子节点

3. ★ Parms(33个函数)

这个分类包含了参数相关的关键操作。比如:

  • 获得节点的所有参数
  • 对 整数/浮点数/字符串/等类型 的参数进行设置
  • 得到 整数/浮点数/字符串/等类型 的参数的值

4. ★ Geometry Getters(15个函数)

这个分类包含了“得到几何数据”相关的操作。比如:

  • 得到 Object 节点中的当前Display的 geo节点
  • 得到Geo信息
  • 得到Part信息
  • 得到面数
  • 获得顶点列表

5. ★ Attributes(36个函数)

这个分类包含了Attribute相关的关键操作。比如:

  • 获得 attribute 信息。
  • 获得各种类型的 attribute 的数据。
  • 设置各种类型的 attribute 的数据。

6. ★ Geometry Setters(8个函数)

这个分类包含了“设置几何数据”相关的操作。比如:

  • 设置Part信息
  • 设置面数
  • 设置顶点列表
  • 提交几何体(CommitGeo

还需要注意的是:如果要设置几何数据,当然还需要上面 Attributes 分类下一些设置 attribute 数据的函数。

最后要注意:设置完数据后,最后一定要调用CommitGeo来提交几何数据。如果此时Open Scene in Houdini,可以看到这个节点是被冻结的,其中就是设置的几何数据。

7. ★ Volumes(16个函数)

这个分类包含了 体积(高度场) 相关的操作。比如:

  • 获得Volume的信息
  • 获得Volume的数据
  • 设置Volume的数据

8. ☆ Environment(8个函数)

包含了对环境相关的一些操作。比如:

  • 设置环境变量
  • 获得环境变量

9. ☆ Status(12个函数)

包含了对各种状态的查询。以及其他状态查询的函数。

10. ☆ Strings(6个函数)

字符串相关的函数。

最主要的是HAPI_StringHandle和字符串数据之间的转换。

11. ☆ Assets(8个函数)

这里的 “Assets” 指的是HDA。
这个分类包含HDA相关的一些操作,比如:

  • 加载HDA
  • 获得HDA信息

12. ☆ Hip Files(5个函数)

包含了HIP文件相关的操作,比如:

  • 读取Hip文件
  • 保存Hip文件

13. ☆ Presets(3个函数)

包含了Preset相关的函数,比如:

  • 生成Preset文件
  • 根据Preset设置参数

14. ☆ Objects(8个函数)

OBJ节点相关的操作,比如:

  • 获得OBJ节点的信息
  • 设置OBJ节点的transform

15. ☆ Curves(8个函数)

包含了曲线相关的操作,比如:

  • 获得/设置曲线信息
  • 获得/设置曲线上的顶点数目

16. ☆ SessionSync(5个函数)

包含了SessionSync功能需要的接口

17. ☆ PDG/TOPs(36个函数)

这个部分有大量PDG相关的接口。

其他分类

至于其他的分类,从我自己的使用经验来看并不常用(也许对于某些任务来说是关键的)。包括:

  1. Utility(6个函数):从名字看似乎想要包含一些通用函数,但现在主要是Transform矩阵计算相关的函数。
  2. Time(7个函数):时间相关的一些操作
  3. Height Fields(2个函数):创建用来输入高度场数据的节点的辅助函数
  4. Materials(14个函数):材质相关的一些操作
  5. Animation(2个函数):动画相关的一些操作
  6. InputCurves(5个函数):创建用来输入曲线数据的节点的辅助函数
  7. Caching(11个函数):缓存相关的函数?不确定。。

一般的使用流程

首先使用Sessions分类下的函数创建session,并维护它,管理它的生命周期。

然后使用Nodes分类下的函数创建节点,并维护若干需要的节点,对其做需要的操作,比如连接节点,或是用Parms分类下的函数操控参数。

你还可能需要将数据传入Houdini中,这时候就要用到Geometry Setters分类下的函数,和Attributes下的函数来输入几何体。曲线,高度场也有对应的函数可以输入。

最后,当一切参数以及输入都准备就绪,就可以对节点进行Cook了。然后,就可以得到结果,比如Geometry Getters可以得到几何体数据,Attributes可以得到属性数据,Volumes能得到高度场数据。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:31:34  更:2022-10-31 12:33:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 5:44:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码