“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”

中国很有影响力影视特效CG动画领域自媒体

早上好呀,小伙伴们~今天又是阳光明媚,元气满满的一天。为了让大家能够精神抖擞的搬砖,一大早就干劲儿十足的小编赶紧捞了一篇干货,特此奉上!

去年《阿凡达:水之道》上映时有没有人去贡献了票房?是不是被美轮美奂的水下镜头狠狠戳在了心巴上?

今天,小编就要带大家看看大神是如何在Houdini中一步步重现电影中绝美又梦幻的水下太阳光线的。

 我要跟大神学Houdini了,这效果太帅了。
打开网易新闻 查看更多视频
我要跟大神学Houdini了,这效果太帅了。

介绍项目流程前,我们还是先来简单介绍下作者,

Nabil Jabour

Framestore的特效技术指导,过去3年一直从事视觉特效相关的工作。5年前偶然接触到Houdini软件,从此沉迷其中无法自拔;大神工作之余会抽出时间来做一些个人项目,其中就包括我们接下来要介绍的这一个。

Okey,话不多说,进入主题:

01

灵感

本次创作的灵感来自于WetaFX在去年6月份发的一篇推文,内容是关于《阿凡达:水之道》中部分水下特效的解析。当看到这篇推文的时候,Nabil Jabour福至心灵,脑子里瞬间闪过如何在Houdini打造相同场景。

于是今年一有时间,就立刻将它提上了日程。

 我要跟大神学Houdini了,这效果太帅了。
打开网易新闻 查看更多视频
我要跟大神学Houdini了,这效果太帅了。

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

点击图片进入详情页

活久见!无业男子“刻苦”钻研建模多年,制作84部淫秽动漫牟利百万被捕…

《封神第一部》幕后美术概念设计来啦~

AI弱爆了!零AI开源程序化3D环境生成神器来了!