雪河案例
1.石头生成器
1.分组 + [softtransform]生成平底.

2. [ lab auto uv ] 自动uv.
3.[ remesh ]之后,[ lab uv transform ]转移原本的uv.
4.[unified noise]节点,==可以生成多种有趣的噪波==.(这里用作第一层噪波)

使用worley cellular F1

5.同样[ remesh ] + [ lab uv transform ] 再细分[ subdivide ],添加第二层噪波.

第二层噪波主要在于ramp

6.第三层噪波
1.同样使用双层noise,为每个轴单独设置.


7.最后添加一层噪波

8.转换为VDB,使用[ vdbreshapesdf ] erode侵蚀.再转化回来polygon.

注意经过VDB转换的几何体没有了uv,所以这里使用上面同样的方法[ lab uvtransform ]

9.[polyreduce]降低分辨率作为proxy

2.河流地形]生成
1.这里使用[curve]画贝塞尔曲线,在添加noise

1.这里的noise是加在横向法线上.所以这里以切线tangentu,和(0,1,0)叉乘得到横线的法线.
2.合并之前分别对起点终点分组.

3.合并之后使用[add],连接起点终点,这里选择each group separately(每个小组分别进行)

4.再使用[polyfill]填充
2.要将几何投射到heightfield上
1.这里可以使用[ heightfield_project ]
2.也可以使用[ heightfield_maskbyobject ],这个节点更灵活完善.自带blur控制

3.地形处理,添加噪波
1.先对整体地形添加噪波
2.在以mask对河流部分添加噪波.使用subtract,不使用center noise

3.在使用blur中的shrink收缩mask,blur处理,添加噪波


4.使用volume vop对mask重映射ramp。保留河岸

5.对河岸blur和添加噪波。
3.散布rock
1.[ heightfield_scatter ]节点直接散布rock.
1.在生成器中以帧来保存石头的不同变体.

2.分别读取并合并.直接连接hfscatter节点,其能够自动识别不同的变体.

3.这里注意hf_scatter节点散布的石头是packed disk类型,磁盘打包.一般不需要解包.需要网格时也可以使用convert节点转换为polygon.
4.这里将其分别转换为SDF,再使用VDBcombine的SDFunion合成整体.


4.雪地
1.预处理

1.先使用vop将mask取反.
2.可以使用[ heightfield_remap ]映射height的高度.
3.添加noise,为mask添加noise,再使用replace的方式添新一层的noise

4.将原本的mask合并回来,以作后面使用.
5.转换为polygon,再delete(使用mask) 中间river部分.
1.rock部分
1.在delete中可以按照法线来删除,保留rock上面的prim

2.将mask转移过来,作为石头上的雪.与雪地合并


3.设置pscale属性,在分组使用[ softtransform ]调整地形以符合镜头.


3.结合河流部分,删除一些空隙。

4.为石头上的雪与地上的雪分开

2.对于雪地的处理。
1.以河流的volume作为输入2.(删除河面以下的雪)

2.[ vdb from particles ]

3.[ vdb reshape SDF ]使用dilate膨胀.

4.[ vdb smooth SDF ] 平滑

5.[ vdb reshape SDF ]使用erode侵蚀.

6.最后使用[ vdb segment by connectivity ]分开不相连的块,删除小块

3.石头上的雪处理.

1.上面split分开,同样从河面的SDF采样,删除河面以下的点

2.使用vop添加噪波.

3.删除一部分.并转换为SDF( 使用[ vdb from particles ] )

4.使用[ vdb combine ]的SDF union.


5.转换为polygon,并保存.

4.额外的雪处理.

1.随机删除大部分点.

2.从rock的网格同样使用delete保留上面部分网格.

3.使用[connectivity], 以class作为rand种子来随机删除一些块

4.以密度scatter,添加噪波,设置pscale

5.合并,使用[point replicate] 复制点.


6.转换为vdb后计算梯度为N,并转移回属性.
5.模拟部分.
1.关于[ volume rasterize attributes ]节点.coverage(覆盖率)和normalize by clamped coverage(按照钳制的覆盖率归一化)选项的作用.
==覆盖率即指的是每一个粒子对体素值的权重==
2.以VDB相交后作为source的形状

1.flipsource会生成surface(VDB)和粒子。


2.这里只需要粒子即可,否则再后续存储的时候会有双份数据。(这里设置为particles field模式,解算器会依据粒子轮廓自动生成surface。)

3.这里我添加了额外的输入源作为河流源头。让源源不断的发射流体。

4.关于boundary layer的设置.只用下游作为boundary_surface


5.这里打开了separation, vorticity,rest.

6.collision GEO设置
7.gas vortexconfinement 设置.

8.存储设置,使用[ fluidcompress ]压缩.


9.这里可以使用ray将流体网格投射到河底.

3.白水设置.
1.注意depth范围,

2.设置source选项,curvature,设置,accleration设置,vorticity设置等不宜过大.第四个输出作为可视化的粒子

3.白水模拟比较简单.设置好emission.volumesource是流体模拟的结果,emmision source 则是白水source.

4.这里调整了foam的设置,调小了repellants.使泡沫更分散.细小.

5.同样的存储方式.设置density,pscale,再转换为VDB.

6.另外保留一部分粒子作为水花渲染.

[ ray ]节点的lift参数。
6.各部分渲染geo 设置
1.河床

2.雪地设置.

这里另外将其投射到grid上作为scatter 树的地面.

3.部分小的雪快渲染为体积.

4.关于雾气的设置

5.雪山的设置,使用ktt



7.lop渲染设置注意事项.
1.导入之后一定要设置路径,以免材质(设置名字)赋予混乱.

这里使用了自带材质.

2.雪地使用了贴图.

2.河流材质对mesh分别使用basicliquid,和uniformvolume.

3.树木得散布.这里使用sop中的点,lop的处理好树.

4.karma设置.volume limit记得打开.

版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
彬的特效学习指南!
喜欢就支持一下吧