title: houdini-houdini记录
categories: Houdini
tags: [art, houdini, procedural, 记录]
date: 2019-05-15 07:21:49
comments: false

houdini-houdini记录


前篇

  • 官方资料:

    • 几何操作节点 - Geometry nodes
    • vex 函数 - VEX Functions
    • 社区 - https://www.sidefx.com/forum
  • 软件下载: SideFX Houdini FX 17.0.352 Win/Mac - http://www.gfxcamp.com/houdini-17/
  • GDC -《幽灵行动:荒野》地形技术和工具 - https://zhuanlan.zhihu.com/p/39627412
  • 程序猿 Houdini 启蒙 - https://zhuanlan.zhihu.com/p/51180083
  • Houdini游戏特效技术大师级训练视频教程 Pluralsight - Houdini VFX for Games - https://www.bilibili.com/video/av19534627/
  • houdini最新全面基础教程独家中文字幕 - http://www.linecg.com/video/play33696.html
  • Houdini与Unity游戏制作基础技能训练视频教程 - https://www.bilibili.com/video/av38576013

shader相关

  • Custom Shading - https://vimeo.com/212603065

todo

  • houdini最新全面基础教程独家中文字幕 : 38, 后面的都是物理碰撞, 对游戏开发没有太大意义了, 暂时不看
  • Houdini Engine for Unity Fundamentals :

相关解释

  • 表达式中

    • ch("../circle1/ty") :

      • ch 表示 channel reference,
      • …/circle1 表示 不是本节点 而是 circle1 节点
      • ty 表示 平移的y轴,

      这个表达式的意思就是, 参考 不是本节点 而是 circle1 节点的 平移的y轴参数


layout 布局

类似 unity 中的 layout, 可以自定义 保存,重置 等等操作.

添加/分离 窗口

这货竟然不支持选中某个窗口的 tab, 拖动分离.

  1. 在窗口的最右上角, 点击 -> split pane top/bottom, 分离出一样的上下窗口
  2. 右键其中一个窗口 -> 选中要显示的面板


节点

  • 官方文档: https://www.sidefx.com/docs/houdini/network/flags.html

一级节点

上面是父节点, 下面是子节点. 左边绿色是 能否选中 toggle, 右边蓝色是 是否可见 toggle.

几何级节点

  1. 忽略本节点

  2. 渲染此节点到3D viewer

  3. 锁定本节点输出结果. 也就是锁定后, 修改其他节点都无效.

  4. 线框显示出来.
    比如, 渲染 右边的 (蓝色 高亮) 的同时, 要想别的节点显示出线框来, 就高亮这个这个粉色的标记.

预览 与 编辑

  • 右边蓝色高亮的 节点c (subdivide1), 代表当前显示预览是 节点c 的效果
  • 选中 节点b (polysplit9), 代表当前正在编辑的节点, 显示的是 线框. 此时添加一下节点, 就自动插入到 节点b 之下. (估计程序的设计是个 链表, 遍历链表做运算)

矩阵操作

平移, 缩放, 旋转 对应的快捷键是 T, E, R ( W是网格显示切换, 在unity中平移是 W )

快捷键S : 选择模式


修改模型坐标系

按下 insert 键, 然后就可以修改坐标系


切换坐标系操作

选中物体, 右键 align -> world/object, ( 类似 unity 中的 local/global)


节点操作 - transform 变换

让节点乘以一个 矩阵 来达到 平移,缩放,旋转 的目的, 避免直接在源模型属性上修改矩阵参数.

  1. 选中节点, 并进入 几何层级
  2. tab 键呼出工具菜单, 搜索 transform, 然后选则 transform 节点
  3. 连上 transform, 修改矩阵数据, 然后点击 蓝色 图标让其生效


3d 窗口

显示 面编号, 法线 等

  • 顶点 法线

  • 面 法线

  • 顶点 编号

  • 面 编号


显示模式

当编辑某个物体时, 可以将其他物体 透明 或 隐藏. ( 这个和 zbrush 中的 ghost 模式一样的意思 )


显示面所在的分组

在挤出某些面的时候, 需要指定它所在的分组


导入模型

fbx 带参数导入

file -> import -> filmbox fbx

进入到导入物体的 geometry 层就可以看到导入源在哪

模型分析

  • 导入进去的是一个 subnetwork 节点 (也就是打包好的), 里面包含 几何体, 材质 节点

    • 材质节点 : 包含了该模型身上的所有材质
    • 几何节点 : 分好组 并对应好各自的材质.

平滑 及 网格 显示


数值变化控制

  • 3d viewer 中, 按住 shift 键, 拖动坐标轴作会以较小的值变化.

  • 属性栏中, 鼠标中间, 然后左右滑动.


几何体操作

先要进入到几何层级, 才能进行 点线面 操作.

多边形节点 如: 挤出, 桥 等等和max中的一样的意思.

也可以在 3d viewer 顶部选择, 点线面 模式, 及是否开启选择背面

边模式

LMB 双击 边, 选择 相连 的边

按住 shift 键, MMB 双击 边, 选择 相邻 的边

表面移动

加选/减选

  • 加选: 按住 shift 键选择
  • 减选: 按住 ctrl 键选择

选中相连的 点线面

  1. 使用鼠标中间, 选中 面1, 按住 a 键, 再用 MMB 选中相邻的 面2, 就会自动选中所有相连的面

选中的线转换成面

  1. 按住 a 键, MMB 选中相连的 线,
  2. 右键 选中选, convert selection to -> primitive selection

扩大选择

和 max 中的加选一样, 选中的面往外加选.

  • 选中面, 按住 shift, 再按 g 键 (一直按g就一直加选)

  • 也可以选中一个相连的面, 这样扩选


节点操作

挤出 - extrude

比较好的方式

  1. 3d viewer 中 选择 面片, 按 tab 键, 添加 extrude 节点即可.

另一种姿势, 挤出指定的分组.

  1. 添加一个 extrude 节点, 挤出当前面片

  2. 再添加一个 extrude 节点, 指定要挤出的面的分组 group

  3. 对当前挤出的面进行矩阵操作, 勾选 transform extruded front, 就可以进行操作了.

    也可以参考: 12 - Creating the Bridge Pillars


合并 - merge

将两个几何体合在一个节点中

  1. 已有 物体a, 新建 物体b, 目的是要将 物体b 合并到 物体a 中

  2. 进入 物体b 几何层级, 将节点 剪切 , 然后 进入 物体a 几何层级 粘贴. 此时只能显示 物体a 或 物体b 其中一个. ( 可以将 物体a 节点删了, 应为已经没东西在里面了 )

  3. 新建 merge 节点, 将两个节点连上去, 并点击显示, 就能显示两个物体了. ( merge 节点可以合并多个物体, 并不只是两个 )

合并警告解决

假设合并两个几何体a 和 b, 只要双方有属性不对等, 就会报警告.

  1. 先查看合并的警告, 看到有个 cd (也就是 color 属性) 不对等.

  2. 分别查看 两个结合体 属性信息, 左边的有 color, 右边没有

  3. 给 右边 在 合并 前插入一个 color 节点, 此时警告就消失了.

uv 分别在 point 与 vertex 冲突

造成这个原因是 别的建模软件建模的 uv 是在 point 分类, 而 houdini 中建模的 uv 是在 vertex 分类
此时就要借助 attribute promote 转换一下分类


引用表达式 对齐 (常用)

  1. 选中 目的位置 节点a, 右键 -> copy parameter

  2. 选中 要对齐 的 节点b, 右键 -> paste relative references, 以 引用 的方式粘贴, 会看到参数栏变绿, 表示有个 表达式 在控制, 点击参数名可以看到具体的参数. 按住 ctrl 键, 双击参数名 可以取消表达式.

    以后 节点b 就会参考 节点a 的值. 表现上就是 他在哪里, 我就在哪里.

    在该表达式后面可以增加运算, 表示相对偏移

引用表达式的方式非常常用, 对齐坐标轴 pivot , 平移缩放选择 等等.

比如: 整个节点要以 其中 圆环 节点 的坐标轴为中心, 做旋转操作

  1. 节点最底部添加一个 transform 节点.
  2. 选中 圆环 节点, 右键 center -> copy parameter, 拷贝位置参数
  3. 选中 transform 节点, 右键 pivot translate -> paste relative reference, 引用 圆环 节点的位置参数.
  4. 然后就可以 圆环 中心, 旋转整个节点.


边连接 - edge loop

相当于 max 中选中n个平行的边, 连接起来细分


复制到点 - copy to points

将模型复制到每一个点上, 右边 input 是 模型, 右边 input 是 点 的集合


剪裁 - clip

不显示几何体的部分区域, 和 shader 中 clip 的意思差不多


曲线 + 分段 + 复制

可以实现曲线上等距复制几何体

导出曲线参数给 unity

基于上面创建的节点来修改.

  1. 增加一个 暴露的参数, operator path 类型, op filter 选为 any sop, 点击 accept 确定. 然后把这个参数拷贝一下, 右键 -> copy parameter

  2. 把之前的 curve1 节点删掉, 增加一个 object merge 节点, 并改名为 user_input, 双击进入节点, 在 object1 属性栏中粘贴引用, 右键 -> paste relative references

  3. 保存, 右键 -> save node type. (已经导出过 .hda 文件才有这个 save ,没有的话会显示 create digital asset 导出)

  4. 丢到 unity 中, 拖到场景中, 修改 input typehda, 此时需要一个 曲线文件.

  5. 创建曲线文件. 菜单栏 HoudiniEngine -> new curve asset, 然后编辑曲线, 拖到 上一步的 字段中. done


节点打包

打包完后, 就可以剪切粘贴到其它节点内
并设置抽出相关参数用来动态控制, 可以理解为编程上的 封装接口

暴露参数
  1. 选中打包好的节点 subnet1, 点击 设置 -> edit parameter interface, 打开参数设置界面

  2. 将需要添加的 参数类型 从左边拖到右边, 并设置好 显示名(Label )和 变量名(Name), 然后 apply and accept 生效

  3. 右键 显示名(Label) -> copy parameter, 然后进入里面, 在需要使用这个变量 属性框右键 -> paste relative references 引用这个变量.

  4. 后面就可以通过控制这个变量来 改变 属性框 的值


复制 - copy and transform

  1. 选中要复制的节点, 添加一个 copy and transform 节点, 调整复制量 2, 调整 Xscale -1, 即可对称

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jeW2AcU4-1651580011646)(I:\Git_repo_assets\z_mywiki\20190516223706-1.gif)]


查看属性 - geometry spreadsheet

以查看颜色属性为例

  1. [添加/分离 窗口](#添加/分离 窗口)

  2. 进入节点添加一个 color 节点, 并设置分类到 detail 中, 就可以在属性中的 detail 栏中看到 (设置到哪个分类, 在属性栏中就可以在哪个分类中看到该属性)


材质

面 添加分组

这样可以给不同的分组的添加不同的材质, 而不是一整个几何体都是用一个材质球. 这个类似 max 中的材质id, 给面指定id后可以用多为材质.

  1. 选中面需要分组的面, 按 tab 键, 搜索 group, 增加一个 group 节点

  2. 最好重命名一下节点, 比如: mat_g1

添加 除xx分组以外的所有面 为一个分组

  1. 添加一个 combine group 节点, 命名为 mat_g1_else

  2. 运算表达式. 左侧为当前节点 mat_g1_else, 右侧为 不等于 mat_g1 节点.
    意思就是把 mat_g1分组包含的面 以外的面分组为 mat_g1_else

删除分组

如果 combine 了 分组a 和 分组b 为一个新的分组, 该物体不需要单独的 分组b, 可以添加一个 group delete 删除 分组b


添加材质

基于分好组的情况. 参考: [面 添加分组](#面 添加分组)

  1. 先充材质库中添加几个材质到 /mat 路径下, 因为等下选择材质球时只能充这里添加.

  2. 添加一个 material 节点. 然后材质数量指定为 2. 分别对这两个材质指定 分组和材质球 (如果当时看不到效果, 可以尝试退出节点, 再进入)

  3. done.

    注意, material 节点只能使用该节点之上的 分组, 所以一般材质球在几何体的 最底部.


查看应用材质的部位

  1. 进入节点, 高亮 3d viewer 顶部的 select group or connect geometry (或者按 9 键 )

    点击颜色处可以修改显示颜色


渲染效果图

需要的前置物料: 摄像机, 灯管, 渲染器

  1. 添加摄像机. 调整好场景视图, 点击右上角 no cam -> new camera 创建一个 摄像机节点

  2. 添加灯光. 顶部 lights and cameras 页签中点击创建一个 light 节点. 这里创建一个环境光

  3. 添加渲染器节点.

    1. 菜单栏 render -> create render node -> mantra-pbr 创建一个渲染器节点, 这里命名为 mantra1-pbr . 节点会在 out 分组里, 也就是输出.

    2. 菜单栏 render -> render -> mantra1-pbr, 开始渲染.
      也可以左下角 icon 中选中改渲染器渲染.

      • 渲染器中可以修改分辨率, 达到快速渲染的目的


实时修改并渲染

  1. 切到 render view 窗口, 设置好渲染器, 摄像机, 点击 render.

  2. 把分辨率降低, 渲染比较快. 选中 渲染器 节点, 勾选 override camera resolution, 设为原来的 1/n.

  3. 然后修改材质球参数, 可以实施看到效果.


动画

动画关键字

  1. 对某个属性设置关键字. 比如: 平移, translate 属性右键 -> keyframes -> set keyframe. ( 此时属性会变成 绿色 ) (快捷键 alt + lmb )

  2. 帧数移到 150 帧, 然后调整物体的 平移属性 (此时属性会变成 黄色, 表示有属性更新了)

  3. 提交更新. 右键属性 -> set keyframs -> commit change (快捷键 alt + lmb ). done !

  4. 点击播放按钮, 就可以看到动画


物理刚体及碰撞

最简单的碰撞

  1. 创建两个物体, 一个地面 grid, 一个方块 box

  2. 选中 box, 添加一个动态刚体. 点击 rigid bodies -> RBD Objects (rigid body dynamic 动态刚体)

    此时若没有 DOP Network 节点, 会自动创建并命名为 AutoDopNetwork, 这是一个物理运算节点, 会运算所有联系到这个节点的物理模拟.

  3. 选中 grid, 添加一个静态对象, 点击 collisions -> static object

  4. 把帧数调到第一针, 点击播放. done

分析

可以打开节点自己看内部, 主要是靠 box,grid 最底部的节点 与 物理运算节点 DOP Network 联系起来


常用快捷键

左键:旋转视图
中键:平移视图
右键:推拉视图
Ctrl+左键:以视图坐标为Z轴转动视图
Alt+左键:以视图坐标为Y轴转动视图
Ctrl+右键:区域放大视图或缩小视图,当鼠标由左上方向右下方框选

时为区域放大、当鼠标由右下方向左上方框选时为区域缩小。
Alt+右键:缩放视图
B键:单视图和四视图的相互转化
Q键:正交视图与透视图的相互转化
X、C、V键:网格捕捉、线捕捉、点捕捉
1键:将当前视图切换为透视图
2键:将当前视图切换为顶视图
3键:将当前视图切换为前视图
4键:将当前视图切换为侧视图
5键:将当前视图切换为uv视图
G键:将选择节点以最大化方式进行显示
H键 或 F键 :没选中 物体时聚焦全部obj, 选中 物体时聚焦该物体.

houdini9.0及以上版本。

Ctrl+Alt+Shift 点击: 自定义快捷键

  1. 视图操作

    • 按住 空格键(或单击回车键)

      +左键:旋转

      +中键:平移

      +右键:推拉

      +Ctrl+左键:景深旋转

      +Alt+左键:水平旋转

      +Ctrl+右键:区域缩放视图

      +Alt+右键:缩放视图

      +b键:单视图切换

      +o键:透视图切换

      +h键:还原视图

      +g键:没选中 物体时聚焦全部obj, 选中 物体时聚焦该物体.

      +a键:聚焦全部物体

      +1键:透视图

      +2键:顶视图

      +3键:前视图

      +4键:侧视图

      +5键:uv视图

      +d:视图设置

    • 按住 ctrl

      +1键: 透视图

      +2键: 透视图 + 顶视图

      +3键: 透视图 + 顶视图 + 前视图

      +4件: 透视图 + 顶视图 + 前视图 + 右视图 ( 四视图 )

  2. 场景操作

    1:物体选择模式

    2:点选择模式

    3:线选择模式

    4:面选择模式

    e:放缩 r:旋转 t:移动

    回车键:操作杆

    y:循环切换

    这里强烈建议设置一个快捷键
    Align Handle 循环切换操作杆坐标类型 建议设为h

    shift+g:扩大选择

    shift+s:缩小选择

    shift+b:选择边缘

    ctrl+i:反选

    l:选择相连元素

    f:按元素方向增加选择

    shift+r:改变选中元素方向

    w:网格显示切换

    x:网格捕捉 c:线捕捉 v:点捕捉

    tab键: 呼出工具菜单

    Edit修改

    鼠标中键(空白处使用):软修改半径设置

    鼠标右键(操作杆上使用):详细设置菜单

    m:笔刷修改(雕刻) 属性面板里有雕刻模式图案等具体设置

    按住shift:修改笔刷大小

    点右键设置笔刷属性

  3. 节点编辑窗口操作

    中键:平移操作窗口

    右键:缩放操作窗口

    w:打开节点树状图

    t:打开节点列表

    c:颜色

    p:打开窗口

    x:打开组列表

    l:中心化选中节点

    g:最大化选中节点

    z:上一显示切换

    d:窗口设置

    n:名称显示切换

    s:切换连接线类型

    shift+g:节点编组

    tab键: 呼出工具菜单

  4. 节点操作

    左键单击节点:选择节点和连接线
    中键节点上长按:显示节点当前参数
    右键单击节点:节点操作菜单

    依次单击节 左击端口----建立连接

    单击端口后 左击空白----放弃连接

    单击端口后 右击空白----建立新的节点连接

    单击连接线 左击端口----更换连接

    单击连接线 左击空白----断开连接

    单击端口后 右击空白----建立新的节点连接

    选中节点甩动-----------断开节点

    选中节点拖到连接线上—插入当前节点

    选中连接线拖到节点上—连接节点

    选中节点 shift+c:打包

    选中节点 ctrl+n:节点盒

  5. 参数面板操作
    左键单击参数名:切换显示

    拖动参数到其他参数:选项 1当前值 2镜像 3相对镜像 4取消

    拖动参数到视图:创建参数操作杆

    鼠标中键点住颜色然后移动:吸取颜色

    Alt+鼠标左键:加关键帧

    ctrl+鼠标左键:清除关键帧

    shift+鼠标左键:打开当前参数通道编辑窗口

  6. 通道编辑窗口

  7. 左键:调节值

    ctrl+左键:随意调节

    alt+左键:加关键帧

    选中关键按

    y键:综合修改器

    t键:切换曲线控制杆 0键:水平曲线控制杆 9键:平滑曲线控制杆

    b键:还原默认值

    g键:关键帧组控制

  8. 在节点面板中:

  9. H:自动缩放视图;

    L:线形排列节点;

  10. 在Scene编辑界面:

    E:添加一个Edit节点;

    Q:重复节点;

    Enter:点击Primitive后,按Enter就会在场景的原点创建模型;这和按住Ctrl再点工具栏上的Primitive节点是一样的。

houdini-houdini记录相关推荐

  1. 如何使用Houdini进行程序化优化?

    Hello,大家好,今天给大家带来的是Houdini模型资产开发流程的优化概述. 1.介绍 我的名字是Adolfo Reveron,我是西班牙瓦伦西亚的一名38岁的Houdini程序艺术家. 我的职业 ...

  2. CSS Houdini:用浏览器引擎实现高级CSS效果

    vivo 互联网前端团队-Wei Xing Houdini被称之为Magic of styling and layout on the web,看起来十分神秘,但实际上,Houdini并非什么神秘组织 ...

  3. 【CSS】Houdini, CSS的成人礼

    前情提要 CSS:老板,你看ES9,ES10都出来了,您看我的事情什么时候... W3C: 这不是正在走着流程嘛!小C你不要心急! W3C:(语重心长)你看啊,我们先(1)提个开发提案章程, 然后再批 ...

  4. Houdini湖边小屋-屋顶细分详细过程记录

    b站UP主七里雪凝的湖边小屋教程--P3/P4[Houdini]萌新的<湖边小屋>教程拆解与实现,殊途同归!_哔哩哔哩_bilibili 目录 内容概括 详细步骤 1 [Facet节点]让 ...

  5. houdini选择快捷键记录

    1.选择循环面 选择一个面后,按A +鼠标中键 2.继续选择面 选择一个面后,按shift 点击其他面 3.选择开始和结束面之间所有面 选择一个面,按A +鼠标左键 4.以选择的面为基础扩展选择面 s ...

  6. python中fit函数_Houdini中fit( )函数学习笔记

    闲来无事又开始捡起houdini,记录一下学习的心得,也希望有大佬看到能帮助指出一些错误. 之前Rand()函数提到其返回值区间的局限性,所以引出了fit( )函数. Fit函数有三种形式: fit0 ...

  7. 20170916导出fuck 7654导航

    Bookmarks 书签栏 unity Unity游戏开发有哪些让你拍案叫绝的技巧? [Unity3D学习 愤怒的小鸟攻略技巧秘籍 unity3d技巧 unity3d愤怒的小鸟实现 unity3d切换 ...

  8. Anbox安装apk失败(提示Failure res=-113等)的解决方法

    详细描述,如下(Anbox:如何安装Google Play商店并启用ARM(libhoudini)支持,简单方法): Failed to install PACKAGE.NAME.apk: Failu ...

  9. 3D艺术家推荐——4款最佳3D建模软件

    最佳3D建模软件 Cinema 4D Maya 3DS MAX Blender Houdini Mudbox Zbrush Modo SketchUp 您正在寻找最好的3D建模软件?一个程序可以做所有 ...

最新文章

  1. nginx配置多个server
  2. 三款ActiveX图表控件对比评测 TeeChart VS ProEssentials…
  3. Gradient Boost Decision Tree(GBDT)中损失函数为什么是对数形式
  4. web安全_皮卡丘_csrf
  5. SDNU 1474.特殊回文数(水题)
  6. 《深入理解Java虚拟机》读书笔记
  7. 基于事件驱动架构构建微服务第2部分:领域对象和业务规则
  8. MobileIron Access保障移动设备的企业云数据安全
  9. windows下搭建iphone开发环境
  10. 斯威夫特山地车_斯威夫特枚举
  11. HTK---语音识别实现应用的Kit
  12. 如何使用mp3转换器将wav转换成mp3格式
  13. c++直角空心三角形_压轴题中对三角形中位线的另类诠释
  14. 计算机硕士论文质疑数据不够,硕士论文伪造数据 抽检_硕士论文编数据的后果_硕士论文数据造假怎么被发现...
  15. 微信小程序开发知识点
  16. 中国皇帝顺序(全)---
  17. 【Python成长之路】快速理解复制、浅拷贝、深拷贝
  18. Java网课基础笔记(31)19-08-13
  19. chage(charger)
  20. pg_restore恢复备份(记录一下)

热门文章

  1. 小米盒子4刷入armbian系统后的网络设置
  2. 数据中心供配电系统主备用电源自动切换探究
  3. Unity动画:两种方法实现无间断从头重复播放动画
  4. html获取选中复选框的值,jquery获取复选框被选中的值
  5. 第13章 LINQ to Object
  6. 思考:智能化运维的发展
  7. 提取四位数的千位,百位,十位,个位
  8. 基于javaweb的前台+后台精品水果商城系统设计和实现(java+springboot+ssm+mysql+jsp)
  9. 系统辨识理论(笔记)
  10. 让你终身受益的5个定律