我要跟大神学Houdini了,这效果太帅了。
早上好呀,小伙伴们~今天又是阳光明媚,元气满满的一天
。为了让大家能够精神抖擞的搬砖,一大早就干劲儿十足的小编赶紧捞了一篇干货,特此奉上!
去年《阿凡达:水之道》上映时有没有人去贡献了票房?是不是被美轮美奂的水下镜头狠狠戳在了心巴上?
今天,小编就要带大家看看大神是如何在Houdini中一步步重现电影中绝美又梦幻的水下太阳光线的。
https://att.element3ds.com/data/attachment/upload_media/20230801/xdrfeglnnwfe2322.mp4?form=upload_media_10450
介绍项目流程前,我们还是先来简单介绍下作者,
Nabil JabourFramestore的特效技术指导,过去3年一直从事视觉特效相关的工作。5年前偶然接触到Houdini软件,从此沉迷其中无法自拔;大神工作之余会抽出时间来做一些个人项目,其中就包括我们接下来要介绍的这一个。
Okey,话不多说,进入主题:
01灵感本次创作的灵感来自于WetaFX在去年6月份发的一篇推文,内容是关于《阿凡达:水之道》中部分水下特效的解析。当看到这篇推文的时候,Nabil Jabour福至心灵,脑子里瞬间闪过如何在Houdini打造相同场景。
于是今年一有时间,就立刻将它提上了日程。
https://att.element3ds.com/data/attachment/upload_media/20230801/v98h38nkcov5i450.mp4?form=upload_media_10451
01目标1.现实主义:为了能够完美匹配Weta工作室呈现出的效果,同时融合在现实生活中找到的参考资料,比起构建设置,作者花了更多的时间在调整数值上。2.互动性:在整个制作过程中,作者一直尝试构建交互式工具,以求能够非常快速地浏览最终结果。01海洋表面第一步是构建海洋表面。这里不需要太多的花哨点缀,只需要确保创建的海洋表面流动速度足够缓慢即可。
为了能够提供良好的颜色可视化过程,作者这里建议选CuspAttribute和VisualizeCusp选项。
海洋表面俯视图↓(CuspAttribute已激活),
海洋表面自下往上看↓(CuspAttribute已激活),
已经有了海洋表面,接下来就可以使用Attribute Noise Float来添加Noise属性。在这里简称为mask,稍后会用它来改变密度并且有助于增强真实感。
01曲线-复制如果想要更多的控制流程,这里需要将曲线复制到该表面或散点上。最终的复制工作流程如下图。
接下来要介绍图中右侧→连接到海洋表面需要进行的所有调整。
01曲线-方向在还没有设置法线和pscale(基本点属性)前,呈现出的效果如下,
虽然这显然不是作者想要的效果,但如果按下播放键,就可以看到它们如何随着波浪的方向顺滑移动。作者希望保留这一点,但要使它们指向表面以下,并且更长。
下一步是使用pointVelocity节点来生成方向和噪点。这里应该从负Y值开始,然后添加一个相当小旋涡尺寸的curl noise ,可以在之后模糊速度(当然这里是可选择的)。※可以根据需要自定义方向。例如,可以抓取从点光源到网格点的方向向量。速度属性应如下图所示,
最后,必须将这个速度转换成法线,最简单的方法就是获取一个pointWrangle节点并键入【@N = @v;】。
01曲线-长度对于长度,这里使用@pscale属性。在这个项目中,已经对每条曲线进行了统一设置。但如果有需要,可以将其随机化或者使用噪点。这个值将取决于场景比例。
这些步骤进行完之后,就差不多拥有了完美曲线。这时需要使用高点计数对这些曲线进行重新采样,并通过重新采样节点添加曲线属性。01体积设置这一步的设置需要使用体积来获取所需外观。先简单地光栅化先前生成的点,然后对它的外观进行艺术化控制。
在作者看来,能够对体积进行控制也是让Houdini成为如此独特软件的原因之一,所以这项功能必须利用起来。01密度设置在构建体积之前,先要设置密度属性,在pointWrangle 中复制下列代码行:
f@density = chramp(“density”,f@curveu);f@density *= fit01(f@mask,.25,1);
1.通过倾斜曲线来设置密度。
2.将密度乘以一开始创建的遮罩属性(这里需要注意,它被限制在0.25-1之间)。
01构建体积这里作者使用了“Volume Rasterize Attribute ”节点并获取密度属性,在过滤器选项卡中,可以对这些值进行操作调整,直到得到下图这样的效果:
01平滑体积
从参照视频中看起来,光线的底部似乎更加模糊。但实际上,在WetaFX的设置中可能并非如此,它们的曲线数量可能是这里的一千倍。但这有个简单小技巧。
如何只对底部进行程序上的平滑处理呢?答案是通过使用曲线属性。下图是曲线属性在曲线上呈现的外观,从0到1,从上到下。
然后,如果光栅化这个属性(再次使用体积光栅化属性),应该就会得到一个很好的体积遮罩。当然这里也可以通过调整曲线属性来获得所需的遮罩。
既然有了遮罩,就可以开始进行平滑处理了。可以像这样链接节点,并调整VDB平滑节点中的值。这里Gaussian Blur是首选项,有4次迭代。
01体积 Lookdev(视觉表现)
最后,作者放置一个Pyro Bake Volume来为光线着色。为了获得所需的外观,这里应该使用emission volume 而不是密度。
为此作者取消选中烟雾选项改选【Fire】。另外,还需要确保在绑定选项卡中强度的密度和颜色体积。
回到【Fire】标签栏,进行颜色和强度的选择。以下是最终结果的精确参数,但我们也可以根据需要随时进行调整。
最终结果
节点图
除了水下阳光,经过作者的多番探索,他发现这种设置适用于任何类型的阳光透射效果。比如,Godrays-云的上帝光线
Godrays - 树木
好了今天的分享就到这里,小伙伴们我们下期见啦~
end
{:1_227:} 不错不错,很好哦
页:
[1]