第099封“情书”:天下无不散之筵席Volumes101-DissolvingGeometry<Entagma>Houdini

可知世上万般好,好便是了,了便是好。若不了,便不好;若要好,须是了。 — 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】

 

+c9a6050c.jpg

█ 天下无不散之筵席  ”

前言不搭后语

     如果聚会永不场,你可能会由兴奋变的很疲惫。如果太阳永远挂在天上,如果人能永生,结果可能是更大的噩梦。

    人们期望的永恒,完美也许只是一场叶公好龙,真正实现你的愿望时可能会让你大失所望。

    所以大自然的四季轮回,新陈代谢、有始有终的法则,才让我们有了各自存在的价值。

    也许,一切都是最好的安排。

本节内容

使用“速度场”来推动vdb来制作溶解效果 


本节要实现效果
.....






Volumes101-Dissolving Geometry2.png

今天是42岁
072周六

99
这是写给Houdini的第099封“情书”


我是geo流程图

image.png

我是volumevop流程图

image.png

首先
制作步骤

 

小节提要

A

01

创建速度场

B

02

调整速度场的变化

C

03

advect调用速度场

接下来
正式制作
            使用软件:houdini17.5


0 1 创建速度场


○ 节点 ○




○ 主要问题 ○

缩放向量的长度影响geo的一边而不影响另一边

○ 解决方案 ○

1)假设有一个geo,只希望它的一部分受影响。沿着几何体的长度,速度场从0开始逐渐增强。

image.png

2)可以使用在这个边界框中所谓的相对位置。来驱动速度向量的长度

   ○ 执行 ○

    1)file:导入一个几何体文件。

image.png

    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 

image.png

   ○ 创建速度场 ○

在向量场中储存“速度向量”,速度向量的方向长度决定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;

image.png

image.png


0 2 调整速度场的变化 



○ 节点 ○




❖  噪音速度矢量 ❖  

8)volumevop:

  8-1)curlnoise:

        a)外置参数type;frequency;offset;amp;rough;atten;

image.png

    8-2)bind export:输出速度vel属性。


❖  视觉化速度场 ❖ 


9)grid :size=3*3;行列=30*30。

10)速度场轨迹 volumetrail:grid上充满了速度场

image.png


❖  但是左右速度场长度相当  ❖

我们希望左边的长,右边的短        

? 解决方案 ? 

    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;

image.png    

❖ 小问题 ❖ 

   ❖ 当前速度场变化不大 ❖ 

? 解决方案 ? 

10)修改激活方式: volumetrail

        Advection Meshed=Advect

image.png

❖ 小问题 ❖ 

   ❖ 左边过了geo,速度场又变长 ❖

因为在“geo的边界框”外相对于“bound边界框”会返回负值。所以值一直下降为负

? 解决方案 ? 

8-6)钳制0~1:Clamp

image.png

❖ 小目标 ❖ 

   ❖ 调整速度矢量的长短变化幅度 ❖

? 解决方案 ? 

8-7)斜坡 :ramp

image.png





0 3 advect调用速度场



○ dopnet内部节点 ○


❖ 具体操作 ❖

11)vdbadvect :

    a)“接口1”接“密度”; b)“接口2”接“速度场”image.png

○ 视觉化密度:连接“volumevisualizetion”

❖  小问题 ❖

   ❖ 密度场变形,但幅度很小 ❖

? 解决方案 ?

因为advect是按照时间步幅Timestep产生变化, 

b)去掉表达式  timestep:

        ○ 0.2产生变形。

        ○ 0.5变形幅度更大。

image.png

❖  小问题 ❖

❖volume有些分离❖

? 解决方案 ?

a)因为只运行了一次,这么大的变形距离一次是不够的的

b)我们要在substep子步骤中对速度量进行采样,补齐中间脱离的步骤。

○Sub-steps=8

image.png

8)volumevop : 

image.png

11)vdbadvect :

image.png

❖  小问题 ❖

   ❖ 变形密度场碰到边界框界限 ❖

? 解决方案 ?

    ○ 增加bound的z轴:

        Lower Padding=1*1*0.6

        Upper Padding=0.6*0.6*1

image.png


❖ 番外 ❖

可以用文字替换file节点,生成这种溶解的艺术效果

image.png


封面图片7.jpg
交流群: image.png

公众号:微信图片_20190607085947.jpg微信号

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值