文章目录

    • 流体简介.
    • 域.
      • 创建域.
        • 直接创建.
        • 通过物体创建.
      • 域的属性.
        • 设置.
        • 液体(域类型为液体时).
            • 扩散.
            • 网格.
        • 气体(域类型为气体时).
            • 消融.
            • 噪波.
        • 视图显示.
        • 缓存.
    • 流.
      • 创建水.
      • 创建火与烟.
        • 流来源.
        • 初始速度.
      • 渲染火与烟.
    • 效果器.

流体简介.

1 流体用于模拟水流,烟雾等效果
2 流体一共有三种类型,域,流,效果器。

域.

1 所有的流体效果都只能在域中展示,流体效果不会超出域的范围

创建域.

直接创建.

1 新建一个立方体,放大
2 为立方体添加 物理属性/流体,流体类型选择 域
3 注意, 液体模式的域默认是不透明的,需要进入透视模式才能看到内部的流体。勾选网格后域变透明,液体有网格,可以参与渲染。如果视图里还是不透明,尝试将时间轴归零,然后播放

通过物体创建.

1 选中一个物体,在左上角 物体/快速效果/选择快速液体或者快速烟雾,可以直接创建一个域

2 需要注意的是,会将物体的显示方式设置为线框 (物体属性/视图显示/显示为)

域的属性.

设置.

1 域类型:分为气体(模拟气体和火焰) 和液体两种类型
2 细分精度:可以调整流体效果,值越大,效果越好,域内的产生的液体的网格数越多,可以通过立方体内的小方块直观的查看精度
3 时间比例:随时间推移创建的流体的多少,可以理解为流速,注意如果流速太大,可能会穿透效果器
4 CFL编号:值越大,每个流体的计算步骤越少,计算速度越快,但越可能穿透效果器,当时间比例比较大时,可以适当减小CFL值,防止穿透效果器
5 时间步长最大值最小值:每一帧粒子模拟次数的最大值和最小值,提高这两个值会增加计算时间,但是可以防止穿透效果器
6 自适配域:如果我们想扩大模拟范围,最简单的方法是缩放域,但是这样会浪费非常多的性能,因为整个域内都会参与计算,勾选自适配域可以自适应域的大小。如果还是发生模拟范围不理想,可以手动将原始的域拉大,这样可以扩大模拟的范围。但是会出现火焰变大的问题。

液体(域类型为液体时).

模拟方法:

  • FLIP:模拟可以飞溅的水
  • APIC:模拟流速快但飞溅少的水

以下为FLIP属性
1 FLIP比率:水飞溅的比例,值越小,飞溅效果越弱
2 系统最大值:粒子上限,0是无上限
3 粒子半径:粒子的大小,调小后,感觉上水会减少,因为粒子变小了

扩散.

表现为流体的浓稠程度,例如制作巧克力酱,可以提高基础,减少指数,提高表面张力
1 基础()1-10):值越大,扩散越慢
2 指数:值越大,扩散越快
3 表面张力:值越大,液体越粘稠,建议以10做测试

网格.

不勾选网格,流体是无法参与渲染的,必须勾选网格后才会出现三角面,此时 域 的网格不可见
1 Upres系数:值越高,流体和自身以及效果器的贴合程度更好。同时液体的融合度会减少,每股液体会更清楚。性能开销比较大

值为1

值为4

气体(域类型为气体时).
消融.

1 作用是渐隐烟雾,否则烟雾不会消失,渐隐后不会顶到域的顶部
2 时间:烟雾存在的时间,以帧为单位。需要注意的是,Blender默认一秒25帧

噪波.

1 可以为火焰和烟雾添加噪波

视图显示.

1 插值类型:视图里看到的效果的精度

缓存.

缓存可以烘焙流体效果,这样下次播放时会非常流畅。注意只烘焙流体的效果,不会影响物体的动画
1 起始帧与结束帧:烘焙的帧数区间,这个区间外的流体效果不会被烘焙
2 类型:

  • 重播:不烘焙,每次播放时重新计算流体效果
  • 模块化:不知道
  • 全部:烘焙指定区间内的流体效果,烘焙后不能再调整域的参数。拖动时间轴可以直接查看效果,如果使用播放,没有烘焙的部分不会有任何效果。建议烘焙前先保存文件

流.

创建水.

确保 域 的模式为液体
1 新建一个经纬球,添加 物理属性/流体,类型选择 流。流体类型选择液体。流动行为选择流入。
不同的流动行为

  • 流入:从网格里往外出水,水流不断
  • 流出:从域里往外放水
  • 几何数据:从网格里流出一次性水

2 将经纬球放到 域 内,然后播放,即可看到水流.但是这个水流是没有网格的,不能参与渲染
3 为液体添加网格:选择域,然后勾选 液体/网格,再次播放(手动将时间轴拖到左侧来消除上次的动画缓存)即可看到液体的网格,此时域会变的透明


4 我们可以通过为液体添加材质来获取不同的液体外观,也可以平滑着色

创建火与烟.

1 新建一个猴头,添加 物理属性/流体,类型选择 流。流体类型选择火焰+烟雾。

流来源.

网格模式下
1 表面发射:火焰与网格表面的距离,值越小,距离越小,火焰看上去越小

初始速度.

1 首先火焰效果是可以随物体移动而移动的,默认情况下,烟雾只会向上飘,当物体移动时,如果烟还是只向上飘,而没有添加物体的移动速度,效果会不真实,勾选后可以为烟雾添加物体的移动速度

渲染火与烟.

1 建议使用Cycles渲染器,EV效果差很多。渲染前建议先烘焙火焰效果,域的分辨为128,噪声为3级,此处分辨率为64,噪声为2级
2 进入渲染模式(先创建一个相机),
3 为场景中添加一个灯光,可以看到烟的体积效果

4 选中域物体,进入着色器编辑窗口,将域的材质的 黑体 属性调大,建议为50。然后可以看到火焰。否则只能看到烟。但是这种情况下火焰太亮了,丢失了很多细节


添加一个 输入/体积信息节点,然后将四个属性分别输入到黑体里,可以看到不同的体积信息,我们可以通过体积信息来调整黑体值。

单纯的体积信息值比较小,添加一个 转换器/运算 节点,改为正片叠底,然后调高 值,此时可以得到明亮的火焰,然后添加一个颜色渐变节点,按如下调整,可以得到比较多的火焰细节


5 此时的火焰虽然有细节,但是缺乏亮度变化,我们再为 体积信息 的密度创建一个 颜色渐变和运算 ,连接到上一个正片叠底的值上,按如下调整,可以获得前部亮,尾部暗的火焰

效果器.

效果器用于模拟流体的碰撞到物体等效果 ,效果器必须放在 域 内
1 做一个杯子的模型,杯壁要厚一点,否则液体会穿过杯壁
2 将杯子放在 域 里,然后为杯子添加 物理属性/流体,类型选择效果器,效果器类型里选择碰撞

3 然后播放,可以看到液体流入了杯子里,且被杯子挡住