Houdini 笔记

Posted 暮志未晚Webgl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Houdini 笔记相关的知识,希望对你有一定的参考价值。


选择最左边或者边缘向下的黄色箭头,可以让此节点被过滤掉。

节点最右侧或者蓝色眼的突变,可以查看节点只运行到此处的效果。
alt + 选中的节点 可以拖拽线框快速合并
按住Y键 鼠标左键 可以快速剪断连线
参数引用ch(“这里写路径”)
鼠标悬停属性上面,可以查看当前的节点的属性名称,实际引用名称为 Parameter后面的
快速引用,可以在属性上面右键 copy Parameter,然后需要引用的地方进行Paste Relative References
鼠标右键 Parameter and Channel -> Parameter 可以额外打开一个参数面板
参数属性 Range 加锁和不加锁区别 不加锁 可以通过输入数值修改到范围外,加锁了怎么样都会被限制到Range范围内
鼠标右键 Type properties 可以查看当前的属性,如果导出hda,可以定制相关参数的属性面板。
增加外部输入接口

修改inputs的值

输出节点 output 创建的hda最后,需要增加。

修改hda资源引入路径 C:\\Users\\你的用户名\\Documents\\houdini19.0\\houdini.env
最后加上一行 HOUDINI_OTLSCAN_PATH = D:\\Houdini
=等于后面写上你的引入路径即可

自动吸附到地面网格


convert节点,可以将曲线进行转换

resample节点调整曲线更加方便,可以通过距离控制,也可以通过分段进行控制。

resample
copytopoints 顶点置换,两个值,第一个传入需要的顶点,第二个传入被置换的顶点。

orientalongcurve 朝向跟随曲线

将所有的节点合并成单个节点

右键合并的节点 Create Digital Asset 可以创建一个使用的HDA资产。

增加面板 alt + [ 或者 ] 来左右或者上下拆分面板

右键面板左上角,可以修改当前显示的内容

保存当前窗口面板布局

polyframe节点,可以生成法线(N) 切线(tangentu) 以及binormal(tangentv)

attribcreate节点,可以附加额外的属性,创建一个up的三维向量,则可以生成所有点的向上的值

增加查看up朝向的方式

创建一个Marker

弹框里面修改属性名称,类型以及颜色,即可在场景查看
attribrandomize 节点,可以将某个属性随机,并可以设置随机范围
点上面的一些属性

file 节点,可以导入外部模型文件
transform节点,可以对导入的模型进行位移旋转和缩放等控制


按快捷键D,箭头处可以修改辅助法线显示长度

修改节点的颜色

修改节点图标

grouprange 根据范围划分点
split 根据划分的点,拆分成两部分点
Shift+S键,可以修改线的样式


在游戏场景调试完成,可以导出静态网格体,对应的是GameObject,也可以导出Prefab,引用,对应Prefab按钮。
Keep Only Output 会将游戏对象从HDA转换成为unity模型,并移除掉HDA。
Update是更新当前游戏中所有使用当前HDA资源的文件。

Add 节点 可以额外的加点

add节点还可以将模型删除,只留下点

clean 节点可以选择清理一些无用的数据
groupdelete 节点可以删除掉生成的组

实现点云生成instance

实现了一堆的顶点,上面包含法向,up,position等位置,这些可以作为生成模型的数据。那么如何设置HDA,可以在场景中直接生成?
通过attribcreate节点,增加属性,Name输入unity_instance,类型改为String类型,在unity里面copy到资源或者Prefab的路径,复制进去。

然后,直接导出相应的点,更新一下HDA文件,就可以实现。

通过点生成资源


copytoPoints 左边传入模型,右边传入点的位置,它会自动生成顶点数据,但不会生成instance。

houdini for unity 属性网址 https://www.sidefx.com/docs/unity/_attributes.html

scatter

scatter 节点随机分散一些点在平面上面

Force Total Count 控制生成的点数

Relax Iterations 松弛的属性,关闭后可以更大的随机,有一种聚堆的效果,调小了也有。数值越大,点与点之间的间隔约平均。

Randomize Point Order 随机顺序,开启后,生成点的数据是乱序。

Scale Radii By 这个属性,能让点与点之前的距离再扩散一些,属于微调

19版本开启旧版的节点

Edit > Preferences > Shelves and Tab menu and select > Show All Operators

踩坑记录,生成双份的instance


如果保存的时候,焦点到output上面,导出大概率就出现生成额外的预制体,只要焦点到别的地方,就没有问题。离了大谱了


Curve节点的Close 打开将曲线生成一个面

将一条传入的曲线生成面

增加一个add节点

设置删除几何体,只保留点

Polygons下面设置Closed

switchif 流程控制节点,上面两个传入,Enable属性为0,接收左边节点的结果,Enable属性为1,接收右边节点的结果。

实现模型随机

我们正常的肯定是要对模型进行合并,merge节点合并,但是需要随机的节点上面,需要定义一个variant节点,用作为标记

copytopoints 节点里面将上面的属性打开,右边传入的点里面也需要这个属性,如果对应上了,那么,将会把variant相同的那部分进行渲染。

赋值属性可以使用attribcreate节点
随机属性可以使用attribrandomize节点,需要用attribcreate创建属性,设置整型,然后随机的时候,设置好范围,那么就可以实现了模型随机


blast节点 可以根据属性剔除掉一些点,或者只保留当前的点。上面写程序判断,下面Delete Non Selected 可以选择剔除或者只保留。

注释



可以设置注释内容,并是否显示在节点上面。

或者快捷键Shift+O键,可以将选中的一些节点框选起来,或者说按框隐藏。

设置随机大小,增加pscale属性,并随机即可。

属性删除 attribdelete

goup 可以将资源分成一个组,左边传入需要分组的内容,右边设置影响分组的内容。

如果区分组可以根据自己的需求去区分

这里用生成一个模型去分组
convertline 可以将一个模型转换成线

生成水管


需要一个曲线,来确定位置,circle节点生成一个圆类型需要设置成
。然后用sweep节点生成水管,第一个值传入曲线,第二个值传入圆片。

join 节点 把一系列的表面连接成一个元面

检测边缘的点并剔除掉,根据边缘线生成一个水管,然后使用group节点根据水管去获取边缘的点,并用blast节点,将边缘分成边缘点的组给分离出来。

以上是关于Houdini 笔记的主要内容,如果未能解决你的问题,请参考以下文章

Houdini RBD 研究笔记

Houdini 笔记2

Houdini 笔记

Unity Shaders学习笔记——SurfaceShader法线贴图

houdini 使用HDA Processor 实现处理HDA输入输出

Unity Shaders学习笔记之法线贴图