Houdini-学习之路(⼆)
Houdini zplus SOP 教程重看记录(⼆)
8:⽂字特效:程序化动画
观看笔记
通过attributecreate 可以创建⾃定义变量,通过⼤写在Hscript中调⽤
本章节主要讲解属性的作⽤、运作思路
9:属性的概念以及属性和本地变量的关联
观看笔记
使⽤divide节点可以给⾯⽚重新布线,勾选Convex Polyogn可以三⾓化布线
facet节点可以添加点的法线
primitive节点可以对⾯进⾏移动(勾选Do transformation)
可以通过measure节点来测量⼀些参数,教程通过这个⽅法计算⾯积
当相乘结果与⾃⼰要的结果相反可以试着⽤除法
当区域值的范围很⼩的时候,可以重新建⽴新的区域(fit函数)
操作逻辑
创建Font节点来创建字体,可以通过Level of detail 来调控字体的精度
divide节点来重新给⾯⽚布线(使⽤bricker polygons 来创建⽹格式布线)
facet节点勾选unique point可以将点分离
measure节点可以计算各个⾯的⾯积
attributeCreate 给area属性重新赋予范围
primitive节点勾选do transformation可以单独对各个⾯进⾏位移操作,移动可以根据当前帧$F/$AREA实现⼩⾯先移动,⼤⾯后移动10:属性和函数在SOP节点的常⽤情况
观看笔记
$PR 是⾯的序号
通过颜⾊属性可以辅助效果制作
操作逻辑
添加rand($PR)来增加移动的随机性
添加多⼀个primitive节点来增加颜⾊信息,颜⾊信息可以通过坐标信息基于区分,从⽽实现中间慢左右快等效果。
将颜⾊信息变量加⼊到移动表达式中
添加颜⾊节点清理掉之前的颜⾊信息
11:飘动线条:属性配合程序化建模
观看笔记
可以将⼀些动作⽤abc⽂件导⼊到Houdini中
导⼊abc要确保导⼊完整的模型⽅可进⾏SOP操作
在运动物体上撒点,点都不会不断运动,需要获取⼀个恒定的属性来确保撒点不动
trail节点可以根据时间⽣成⼀连串的点
add节点⽣成多边形可以根据属性⽣成
操作逻辑
添加alembic节点来加载abc模型
节点设置要load as Unpack Alembic Delayed Load Primitives这样才可以加载出模型的点
Poly Soup Primitives 要使⽤No Poly Soup Primitives才可以加载模型的⾯
要确保模型有⼀个不会不停变化的属性⽅可根据该属性进⾏撒点
使⽤time shift 节点从⽽只获取第⼀帧的值
使⽤measure计算⾯积
使⽤attribute copy将计算的⾯积赋值给原模型,完成不变值的创建
使⽤scatter节点撒点(调节根据属性撒点,并且将relax iteration 关掉放置平滑造成点的挪动)
问候的英文attribute create根据点序号创建⼀个新的属性变量num(为后⾯连线做准备)
使⽤trail节点⽣成运动路径上的点
add节点根据上⾯的属性变量进⾏连接(Polygon->By Group->By Attribute)
使⽤merge节点将模型和曲线连接到⼀起
12:重要节点foreach的初级使⽤
观看笔记
$NPT可以获取当前点的数量
for each节点在Houdini 16 已经改版(我参考的是pluralsight 的教程来⽤新版)
for each 使⽤Primitive属性
attribute promote 可以将属性转移,转换过程可以取平均值、最⼤值、最⼩值等等操作,这⾥因为每条曲线上的num值都是⼀样的,所以什么操作都不影响。
ratio⾃定义属性$PT/($NPT-1) 通过这个⽅法可以算出每个点占曲线的百分⽐($NPT是点的总数)
使⽤convert节点⽣成NURBS curve完成平滑效果
resample节点对曲线重新采样加点
添加attribute promote节点将前⾯⽣成的⾃动以num变量装换为Primitive类别
(如果上⾯不转换,for each改为对点操作也是可以的,但是连线就没有了,循环之后只有点)添加for each 节点对num属性进⾏循环(实现每⼀根曲线的提取)
在循环中添加attribute create 通过$PT/($NPT-1)表达式创建ratio变量
根据ratio的值随机删除曲线的⼀部分(delete加⼊表达式判断)
13:初识VOPSOP
观看笔记
在Houdini 16中 vop sop 节点已经转换为 vop 节点
通过噪波 turbulence Noi 节点来实现曲线的变化
直接连接 Noi 会使所有的点偏移到原点处,需要添加add节点来实现在原位置上的偏移。
frequency 频率实现波段的密集程度
roughness 在特定波段中的⼩噪波⼤⼩
offt 整体偏移噪波效果
操作逻辑
添加vop节点
加⼊turbulence Noi节点
添加add节点让turbulence Noi的效果在原基础上进⾏偏移
通过bind节点获取num属性,从⽽实现没⼀条曲线的偏移值都不相同
通过multiply节点和获取ratio属性,实现曲线头部⽆噪波,不移位效果
14:渲染设置及⼏何体灯光
观看笔记
Houdini的曲线是默认有宽度的,如果要修改的话,可以加⼊width属性进⾏修改
操作逻辑抗疫情的绘画
打灯,聚光灯可以调节成grid,调⼤⼤⼩可以柔和阴影效果
调节材质
添加曲线的宽度
IPR渲染查看渲染效果调节参数
渲染序列
15:vopsop讲解
vectofloat节点可以将向量转浮点
fit节点和fit函数⼀致
脸上去痣subdivide才是细分,houdini的smooth节点只是添加平滑没有细分
总结:更具模型的⾼度对模型进⾏相应的偏移
操作逻辑第⼀个vop
+ 获取⾼度(vector to float)
浦江游览
+ fit修改值的范围
+ 将position拆分(vector to float)
+ 保留Y轴不变(⾼度相关的信息)在X轴Z轴通过multiply节点与⾼度的范围进⾏相乘 + 这样就可以实现上⾼下矮的效果
+ 最后加⼊ramp parameter 节点实现更强的操控
第⼆个vop
+ 获取⾼度(vector to float)
+ fit修改值的范围
+ 将fit的范围修改为vector
+ 将vector属性传到transform的rot中,实现扭转的偏移
第三个vop个第⼆个的思路是⼀样的,只是修改不同的轴向⽽已
+ 获取⾼度(vector to float)
+ fit修改值的范围
+ 将fit的范围修改为vector
+ 将vector属性传到transform的rot中,实现扭转的偏移
第四个vop
+ 通过法线实现Houdini的peak节点的效果
16:多边形模型的躁波破碎
观看笔记
不封⼝的模型在使⽤isoofft的时候禁⽤lar scan才能减少烟雾溢出的问题
在附近的英语
制作破碎的噪波可以反其道⾏之,先在噪波的模型上切,然后再将模型复原
rest节点可以储存当前模型的点坐标信息,到那时在偏移会原来位置的时候,内部细节会丢失所以可以通过VOP记录模型变形的值,从⽽实现内部细节不丢失
操作逻辑
导⼊模型,根据模型的情况加⼊remesh节点重新布线(⼀般是减少⾯数)
加⼊VOP节点,通过turbulence对模型进⾏变形
传统破碎流程 添加isoofft节点,在加⼊scatter节点撒点,在添加voronoi fracture进⾏破碎
使⽤point节点将偏移的模型复原
熊猫习性
注:在这个过程中,可以在VOP中通过 bind export节点输出偏移值,也可以通过attribute wrangle以及rest节点记录的信息,通过VEX计算出偏移值。
注:这种⽅法不适⽤与带贴图的模型,裂缝会暴露出来。
17:躁波破碎的内部细节及随机⼤⼩改进
观看笔记
烤布丁的做法通过是点的分布不均实现⼤块⼩块
操作逻辑
撒点之后加⼊通过attribute vop为点上颜⾊
加⼊turbulence节点让点的值混乱分布
通过fit 节点将区间调⼩,就可以实现⿊⽩分明的效果
更具调整颜⾊删除点
18:地⾯裂缝
观看笔记
通过t vector 可以将⼀个⽮量的⼀部分进⾏修改,默认为零
fit($PT,($NPT-11),($NPT-1),1,0) 这样设置width属性那么属性值会根据点的序号进⾏范围映射,倒数第10个以前都为1,后⾯会逐渐地变为0。
操作逻辑
画⼀条曲线
加⼊vop的turbulence效果给曲线添加随机性
加⼊resample节点对曲线重新采样
再次加⼊vop增强随机效果
添加carve节点选择Second U实现从0到1的过渡,设置关键帧
如何在方框里打勾添加width属性,属性根据点的值设置范围值
添加polywire节点从曲线上⽣成多边形
创建⼀个⽅块并调整⽅块的⼤⼩和细分
移动⽅块到合适的未知
添加boolean节点实现布尔裂缝。