如何使用Houdini渲染流体?
版本:Houdini19.5 其他版本应该也差不多
如果这里的图挂了,请看csdn
渲染器与材质是直接关联的,不同渲染器有不同的灯光、材质。
我们首先讲解如何利用Houdini自带的Mantra渲染(CPU渲染,较慢),然后讲解更快的第三方渲染器Redshift(GPU渲染,较快)。
但是,在此之前,有一些通用步骤,即读取流体粒子帧数据和表面重建。
Houdini基本常识
Houdini中视角移动的方式
Esc进入视图视角,
然后左键旋转,滚轮/右键拉近拉远,中键平移。
H键重置视角
G键以某个物体为中心重置视角
Houdini 节点
节点是Houdini核心中的核心!是第一公民。
这也是为什么Houdini被称为程序化建模软件。
Houdini中所有操作都可以作为一个节点。
在Network视图中用 Tab键创建节点。
读取数据和流体表面重建
粒子位置数据
首先,我们准备粒子数据。我这里的输入数据是从taichi生成的mpm3d模拟得到的序列(默认是ply格式)
如果是obj格式的话,它里面只有一些点的位置而已。 例如
v 1.00718 0.992176 1.00718
v 1.09713 0.992118 1.00712
v 1.2004 0.992209 1.00721
v 1.29996 0.992199 1.0072
v 1.4 0.9922 1.0072
v 1.5 0.9922 1.0072
v 1.6 0.9922 1.0072
v 1.7 0.9922 1.0072
v 1.8 0.9922 1.0072
v 1.9 0.9922 1.0072
v 2 0.9922 1.0072
v 2.1 0.9922 1.0072
v 2.2 0.9922 1.0072
v 2.3 0.9922 1.0072
v 2.4 0.9922 1.0072
v 2.5 0.9922 1.0072
v 2.6 0.9922 1.0072
...
读取数据到houdini
我们新建一个geo节点,重命名为read_data 双击进入该节点
然后新建file节点,选择数据序列
我们现在得到的就是一堆点。
重建表面
接下来重建表面。使用particle fluid surface这个节点。调整particle seperation。 实际上这就完成了工作。但是这样的话,你每次使用的时候,都要重新读取粒子,然后重建表面。我们不如把表面缓存一下,以后直接使用这个缓存即可。
新建file cache节点,然后修改下面的时间帧。我们只需要50帧,因此改为50。(上面绿色的位置会随之更改。如果你直接去改绿色的位置是改不了的。)
并且,我们还可以指定输出文件序列的名字:$OS
的意思就是当前节点的名字。$HIP
的意思就是当前.hip文件的绝对路径。
输出的格式是.bgeo.sc。这是houdini特有的压缩格式,对于Houdini来说读写都很快。 输出完了,你可以去看一看。 你会发现file cache之后的节点上会出现一个虚影,这就代表我们已经缓存了。
最后,我们新建一个null节点,重命名为fluid_surface。这个节点什么也不做,单纯就是为了以后好引用名字。
回到最外层
至此,我们已经完成了流体读取数据和表面重建
灯光和摄像机 (Mantra )
灯光和材质都是渲染器特定的,我们从此处开始使用Mantra渲染。
灯光
面光源
首先增加面光源。control+左键 点击工具栏(shelf tool)的area light
然后就会自动进入灯光的视角,点击锁定,就可以移动灯光。
Houdini中移动的方式是先
Esc进入视图视角,
然后左键旋转,滚轮/右键拉近拉远,中键平移。
H键重置视角
G键以某个物体为中心重置视角
调整结束之后,再次点击锁,然后随便移动一下视角,就能退出。
如果你想再次进入灯光视角,就点击右上角的look through light。如下图所示
退出以后,随便移动下视角,你会发现会有一个黄色的矩形,那个就是刚才的面光源的位置。
然后调整灯光的亮度。可以调参数Exposure。
如法炮制再制作另一个面光源。
环境光和HDR背景
接下来增加环境光和HDR背景
增加environment light节点
然后选择Environment Map。在这里,我们可以导入HDR背景图。
你可以从 https://polyhaven.com/ 获取免费的HDR资源!
HDR的作用就是为环境添加环境光照。因为是环境,你得指定是什么样的环境。比如:是厨房?还是广场?还是森林?
我们要清楚,HDR的背景图默认不会被渲染出来(当然你也可以渲染出来),添加HDR的主要目的是为了设置环境光照!
摄像机
设置相机的方式基本与面光源一致:look through, 锁定,调整,解锁并退出。
设置材质和渲染器参数(Mantra)
材质
首先,切换到Material Platte
如果你发现自己的标签页上没有这玩意,就右键,然后选择Material Platte
这里面所有的东西,都是迪士尼的Principled shader,学名又叫BRDF或者BSDF。Blender里面又叫原理化BSDF。所有这些东西,都只是参数不同的预设而已。
我们把Basic fluid拖出来。这是个流体的预设。
然后再把它拖到我们的流体块上
这时我们就会发现流体有了材质。
如果你想调整流体的材质,可以双击进入Basic fluid, 然后调整参数。比如我们这里稍微调整一下不透明度(opacity)
渲染器
我们跳转到out。会发现有个默认的mantra_ipr 然后点击渲染窗口
设置好输出路径等之后,点击渲染(或Render To Disk)即可!
注意:你可以自己指定保存路径和渲染的范围。我这里只是渲染一帧。
Mantra是CPU渲染,所以很慢。而且会占满你的整个CPU(如图所示。一张图我已经渲染了1分17秒才进度87%,而且CPU满载,内存消耗1.11GB)
如果你等不及的话,可以先保存一下没渲染完的截图。如下所示。
至此,完整的渲染流程结束!
结果如图: