通过UE5结合Houdini如何创建写实河流?
看到一些朋友对河流创建感兴趣,最近恰巧从网上看到的用Houdini和UE5创建的河流模拟,效果创建的不错还挺逼真,该作者详细分享了河流模拟的创建方法,如何设置溪流和添加泡沫等等。
Victor Reguera来自于西班牙,刚从Lightbox Academy毕业,在校主修的是视觉特效专业。
他平时是一位摄影爱好者,接触到3D后,觉得3D代表着无限可能,于是自己不断地学习,创建了人生中第一个个人项目——在Houdini中创建河流模拟。
1、河流模拟的初始想法
为了考虑通过创建自然主题环境来提高最终质量,作者探索了各种可能性,在油管上看了许多关于“河流”的视频,尤其是看到“科罗拉多河”之后,他一下子就找到了灵感。
2、构图、角度
作者通常第一步会优先决定角度和构图,然后根据需要在保证原有的想法下进行矫正,这种方法会比较节省时间。
他这次创建的河流模拟,整体的画面希望给人一种第一次前往科罗拉多河所拍出来的照片一样,没准儿河流还会浸湿鞋袜,作者想要挑战多种角度,让人有更好的代入感,仿佛置身于河流附近,在这里也多亏了UE5,轻松的让作者渲染了不同的摄像机角度。
3、环境布局
用到了Houdini来创建环境,并通过Megascans Houdini插件使用Quixel资产。作者尝试了各种资产,将它们转换、混合到一起来获得最终的结果。
4、河流反转模拟
这一步才算是真正的开始创建自然水流,作者设定了初始速度和水流与石头碰撞后产生的自然效应。并且用到了Quixel资产来设置河流使其更加具有多样性,关于水流的模拟,作者参考了油管的教程,如下:https://youtu.be/OOgdy6w13Ec
首先,创建了一个由240帧组成的低质量模拟,并将其用作高质量翻转模拟的初始状态。对于预卷使用了粒子分离 (0.02)和体素大小 (0.04)的自定义设置。由于使用Houdini的RAM有限,可以实现的最高质量模拟具有0.01的粒子分离和0.02的体素大小。
为了确定初始状态点的方向,使用了在构图部分定义河床的曲线,并从曲线传输一个属性来获得必要的数据。在设置并删掉一些值来获得适当的速度之后,Houdini完美地执行了该模拟。
完成最终模拟后,作者在准备将项目导出到虚幻引擎。
5、将项目导出到UE5
作者将环境导出为glTF场景,因为glTF Importer插件完美运行,所以最后的结果非常令人满意。
在通过减少变形数量后,河流网格从河流网格从Houdini导出为一个alembic缓存。
关于这一步,作者同样参考了油管教程,如下:https://youtu.be/ayUuApKuaz8
这是作者在UE中导入的环境和alembic缓存河的早期版本:
6、在UE5中创建泡沫
并没有使用Houdini的激流模拟,虽然Houdini的水质量非常好,优于作者自身的水平,但作者仍然采用了自己的方法。
在Houdini中利用Flip模拟中的涡度属性作为遮罩,涡量是白水模拟的来源之一,也是此类河流中最常见的来源。
于是作者意识到,通过将涡度转移到Houdini中的颜色属性,然后限制该值,就可以生成一个颜色遮罩,以便后续在虚幻引擎中创建水材质时使用。简单来说,就是创建了一种材质,其中动画泡沫根据网格的顶点颜色出现(或不出现)。
7、材质
对于河流网格,创建了一个单层水材质。
关于湿度贴图,目前还不知道如何将Houdini的动态适度贴图导入到UE中,所以,只创建了一个具有镜面反射和一定粗糙度的贴图来用于河床。
8、Niagara FX和环境氛围
环境氛围部分,用了最简单的方法,利用太阳光做了一些调整,比如天空光、天空大气和指数高度雾。同时,作者还使用了带有自定义Cloud Mask的Volumetric Cloud actor来实现一定的天空效果。
最后,作者再用Niagara添加一些实时FX,用于整理环境的简单颗粒灰尘和低雾,一些镜头的光晕和颗粒也用到了Nuke。这样一个完整的河流模拟,就做好了!