本文主要是介绍第099封“情书”:天下无不散之筵席Volumes101-DissolvingGeometry<Entagma>Houdini,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
▉ 可知世上万般好,好便是了,了便是好。若不了,便不好;若要好,须是了。 — 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】
█ “天下无不散之筵席 ”
前言不搭后语
如果聚会永不散场,你可能会由兴奋变的很疲惫。如果太阳永远挂在天上,如果人能永生,结果可能是更大的噩梦。
人们期望的永恒,完美也许只是一场叶公好龙,真正实现你的愿望时可能会让你大失所望。
所以大自然的四季轮回,新陈代谢、有始有终的法则,才让我们有了各自存在的价值。
也许,一切都是最好的安排。
使用“速度场”来推动vdb来制作溶解效果
我是geo流程图
我是volumevop流程图
首先
制作步骤
小节提要
01
创建速度场
02
调整速度场的变化
03
advect调用速度场
正式制作
○ 节点 ○
○ 主要问题 ○
缩放向量的长度影响geo的一边而不影响另一边
○ 解决方案 ○
1)假设有一个geo,只希望它的一部分受影响。沿着几何体的长度,速度场从0开始逐渐增强。
2)可以使用在这个边界框中所谓的相对位置。来驱动速度向量的长度
○ 执行 ○
1)file:导入一个几何体文件。
2)转成fog体积:vdbfrompolygon。
a)volex size=0.01
b)勾选 Fog VDB :density.
c)勾选Fill Interior。
3)确保每个voxel值=1 :volumewrangle
f@density = 1.0;
4)可视化体积:volumevisualization:
a)密度 Density Scale=100
○ 创建速度场 ○
在向量场中储存“速度向量”,速度向量的方向长度决定advect节点沿着哪个方向和移动多远。
❖创建一个比几何体大一点的volume❖
5)bound
a)lower padding:0.6*0.6*0.6
b)Upper padding:0.6*0.6*0.6
6)vdbfrompolygon
a)voxel size=0.01
b)fog VDB=density
c)Fill Interior
○ 小问题 ○
储存一个density的浮动值。但我们需要储存一个速度,是一个矢量体积。
❖把一个浮点vdb转矢量vdb❖
7) vdbanalysis:
a)使用gradient梯度;b)自定义输出速度属性vel;c)它创建了梯度,不需要,但它也创建了矢量速度场velocity volum;
○ 节点 ○
❖ 噪音速度矢量 ❖
8)volumevop:
8-1)curlnoise:
a)外置参数type;frequency;offset;amp;rough;atten;
8-2)bind export:输出速度vel属性。
❖ 视觉化速度场 ❖
9)grid :size=3*3;行列=30*30。
10)速度场轨迹 volumetrail:grid上充满了速度场
❖ 但是左右速度场长度相当 ❖
我们希望左边的长,右边的短
? 解决方案 ?
a)file文件连接“volumevop”“接口2”
我们想要利用这个几何体边界框检验bound几何体的边界框。
8-3) relative to Bounding Box:
a)file连接opinput2输出口:
b)P连接P输出:
○ 比较一下geo的几何体与当前voxel的position
○ 返回一个矢量值(0,0,0)到(1,1,1),这取决于在geo的边框里的位置。
❖ 当前我们需要 在z轴操作;分离出z轴 ❖
8-4) 矢量转浮点:vectortofloat
8-5) z轴缩放:multiply:
a)curlnoise连接input1;
b)联合vectotofloat连input2;
❖ 小问题 ❖
❖ 当前速度场变化不大 ❖
? 解决方案 ?
10)修改激活方式: volumetrail
Advection Meshed=Advect
❖ 小问题 ❖
❖ 左边过了geo,速度场又变长 ❖
因为在“geo的边界框”外相对于“bound边界框”会返回负值。所以值一直下降为负
? 解决方案 ?
8-6)钳制0~1:Clamp
❖ 小目标 ❖
❖ 调整速度矢量的长短变化幅度 ❖
? 解决方案 ?
8-7)斜坡 :ramp
○ dopnet内部节点 ○
❖ 具体操作 ❖
11)vdbadvect :
a)“接口1”接“密度”; b)“接口2”接“速度场”
○ 视觉化密度:连接“volumevisualizetion”
❖ 小问题 ❖
❖ 密度场变形,但幅度很小 ❖
? 解决方案 ?
因为advect是按照时间步幅Timestep产生变化,
b)去掉表达式 timestep:
○ 0.2产生变形。
○ 0.5变形幅度更大。
❖ 小问题 ❖
❖volume有些分离❖
? 解决方案 ?
a)因为只运行了一次,这么大的变形距离一次是不够的的
b)我们要在substep子步骤中对速度量进行采样,补齐中间脱离的步骤。
○Sub-steps=8
8)volumevop :
11)vdbadvect :
❖ 小问题 ❖
❖ 变形密度场碰到边界框界限 ❖
? 解决方案 ?
○ 增加bound的z轴:
Lower Padding=1*1*0.6
Upper Padding=0.6*0.6*1
❖ 番外 ❖
可以用文字替换file节点,生成这种溶解的艺术效果
公众号:微信号
这篇关于第099封“情书”:天下无不散之筵席Volumes101-DissolvingGeometry<Entagma>Houdini的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!