首页 关于我们

CG世界 2024/11/07 12:04

这个时间点再不努力,年终奖就要是别人的了)!!

最近的小编,是一个纯粹的、一心扑在学习的、脱离了低级趣味的,全身心专注于钻研“学术”的小编辑。光我自己努力不够,我准备拉上我心爱的小伙伴们共同进步。


这不,今天特意准备了一篇干货→Blender大神手把手教你如何创建逼真3D水体。

老规矩,上强度之前先来带大家认识下这位大佬:

Steve Lund

https://www.youtube.com/@CGGeek

Steve Lund,江湖人称CG Geek,来自美国奥顿纳贡的CG艺术家。

从事内容创作超过15年,从小就和家人一起制作短片,入行最初制作定格动画视频,后来逐渐开始涉猎各类3D软件,并尝试在短片中融入特效和3D角色。创作灵感多来源于各类电影,常用软件Blender。

对一切CG充满热情,经常在Youtube频道上发布免费的高质量Blender教程。



介绍完了大佬,让我们正式进入今天的重头戏。在过去十几年的创作生涯中,Steve Lund最常制作的元素之一就是水。这些年来,他一直致力于改进水的制作方法,在Blender中不断调整和优化水的渲染方式。

最后,Steve Lund综合了Blender社区里的技巧,结合资深经验,总结出了一套最有效的为场景创建逼真水体着色器的方法。

01

准备工作


首先,在Blender 4.2中,按X键删除默认的立方体,然后按Shift+A选择添加一个新的网格立方体。之所以使用立方体而不是平面,是因为这样可以给3D水体增加体积感。

如果想让立方体渲染得更好看,可以按S键将其放大两倍,再按G和Z键沿Z轴向上移动它,同时按住Ctrl键使其精确对齐到网格上。最后,按Shift+A添加一个平面作为地面,并将其适当放大。

02

渲染设置


至于渲染设置部分,可以删除默认灯光,切换到世界设置,同时打开一个HDR环境纹理。

在Poly Haven上有许多优秀的HDR文件可供下载,可以从中挑选一个合适的。这里选择的是Lakeside HDR(能够反射HDR中的景象,可以大大改变水体的外观)。

之后将渲染引擎切换到Cycles,启用GPU计算,同时切换到渲染视图。在这里,可以给平面添加一个深灰色的材质(通过新建材料并设置颜色为较暗的灰色)。为了让地面看起来更自然,需要将粗糙度调至最大,降低镜面反射水平。

03

创建水体着色器


接下来就是制作水体着色器。有两种方法可以变形水体:一种是使用材质位移,另一种是在3D空间中实际位移水体。

这里大佬选择了后者。进入编辑模式,右击并选择细分,重复几次直到有足够的顶点;然后退出编辑模式,转到修改器堆栈,点击添加修改器,选择物理-海洋修改器。可以看到,立方体变成了一个平面,并生成了一个大的波浪形状。

但由于还需要立方体来增加体积感,所以大佬将几何类型从生成改为了位移,以保留立方体形状,只在顶部添加波浪位移。

为了让水体的波浪效果更加精细和逼真,需要对海洋修改器的分辨率和波浪尺度进行调整。首先在海洋修改器中找到Resolution(分辨率)选项,将Viewport(视口)分辨率和Render(渲染)设置为32,来提高最终渲染输出和在口中看到的波浪细节。

然后找到Scale(尺度)选项,将值调整到大约0.2,减小波浪的大小,使波浪变得更加细微。完成这一系列操作后,就能够得到一个顶部有细微波浪变形的立方体。

下一步就是通过设置驱动器,来让水体动起来。在海洋修改器的时间设置中,有个数字代表秒,可以通过动画化这个值来让水动起来。

点击时间设置,输入#f(表示当前帧数),点击回车,时间设置框变成紫色就表示它已经被动画化了。这样设置后每帧都会发生变化,且变化速度非常快。

如果希望波浪的变化频率和Blender文件帧率保持一致,就需要调整动画速度:右击点击时间设置框-选择“删除驱动器”(Delete Driver),删除旧的驱动器设置-重新设置为1-再次输入#f,选择/24,点击回车。
04

最终渲染阶段


这里将Blender窗口分成了两部分:
右边:保持渲染视图模式,方便实时预览效果。

左边:切换到着色器编辑器,方便调整材质。

之后选择立方体,添加一个新的材质。为了让水体表面光滑且反光,在基础的Principled BSDF着色器上,将粗糙度降至零或接近零;将IOR(折射率)值设为现实世界中水的折射率1.333;将传输权重设为1,这样的水看起来更逼真,像冰块一样透明。

如果想让水体看起来更加自然,这里可以右击选择平滑阴影。但这里有个“小问题”,就是光线不能正确穿过水体。

别急,解决办法大佬都帮咱们想好了:

解决光线问题

  • 按Shift+A,添加一个“输入-光线路径”节点。

  • 将“是否摄像机光线”(Is Camera Ray)连接到Principled BSDF着色器的Alpha通道。

完成上面的操作后,水体将不再产生奇怪的阴影,光线也可以正确穿过水体,让它看起来更像水滴或水立方。

添加位移效果
按Shift+A,添加一个“矢量-凹凸”节点,将其连接到Principled BSDF着色器的线输入;
再次按Shift+A,添加“噪波纹理”节点,将系数连接到凹凸节点的高度;

将“凹凸节点”的强度降低到0.1左右,并将噪波纹理的尺度增加到约35,以此添加一些细节。

PS:因为这里会使用海洋修改器,所以将位移强度调的很低,仅作为水中微妙的波纹效果;但即使在不需要海洋修改器(洋面)的大规模水景中,也是可以使用这种方法的。

伪造焦散效果

焦散效果,简单来说就是光线通过水面时形成的复杂光影图案;比如现实生活中,在池塘或湖底看到阳光透过水面形成的光斑。

尽管Blender Cycles现在支持模拟真实的焦散效果,但目前还存在一些Bug,不能与Cycles的体积效果一起使用。为了有更多的控制权,这里大佬选择了伪造焦散效果的方法。

首先,按Shift+A,添加一个“灯-区域光源”(Area Light),将其缩放至与立方体相同大小,确保覆盖整个水体表面,按G和Z键,将区域光源拉到水体表面附近,但不要直接接触水面。

在光源属性面板中,将功率设为5000瓦来模拟阳光效果。为了让立方体底部光线更加集中,形成更明显的光斑,将光束扩散度(Beam Spread)调低至2。

选中区域光源,进入材质属性面板,选择“使用节点”(Use Nodes),着色器编辑器中会出现一个默认的Emission(自发光)节点。

设置焦散效果

按Shift+A,添加一个“纹理-波浪”节点,将比例降到很低(比如0.3),将扭曲值(畸变)调高(比如25),让波浪更加细腻复杂。将颜色输出(Color Output)连接到Emission节点的颜色输入(Color Input);就可以看到,一个很酷的波浪图案投到了底部。

为了更好地控制这个效果,再次按Shift+A,添加“转换器-颜色渐变”节点,将其插入到刚才的连接中,将颜色调整到接近黑色,从波浪纹理中获得紧密的细条带,也可以稍微增加一下比例(比如0.2)。

接下来,选中颜色渐变和波浪纹理,按Shift+D复制;再次按Shift+A,添加“颜色混合”(Mix RGB)节点,将这两个复制出来的节点连接到“颜色混合”节点的上下输入端,并将混合模式改为“屏幕”(Screen)。

连接好之后,调整第二个波浪纹理的比例(比如设为0.4),这样就可以看到两个不同的图案投影到底部。

调整颜色和动画

通过调整“调整颜色渐变”节点中的黑色和白色值,以及为波纹纹理添加动画,可以使焦散效果更加逼真。
1.在“颜色渐变”节点中,将黑色部分调亮,保留一些区域光源透过,让焦散效果更加自然;

2.将白色部分调得稍微偏黄和橙,来模拟阳光效果。

最后一步是为焦散效果添加动画。选中“波纹纹理”节点,点击相位偏移(Phase Offset),输入#frame,让波纹纹理随帧数变化而移动,从而产生动态效果(为了让波纹纹理移动得更快,可以在相位偏移属性框中输入#frame/12)。

最后,对第二个波纹纹理节点也进行同样操作。

添加体积效果

为了进一步增强水体的真实感,最后一步是在水体中添加体积效果。

按Shift+A,添加“着色器-Principled Volume”节点,将体积着色器连接到材质输出节点的体积(Volume)输入端;将各向异性值(Anisotropy)调到超过0.5,将密度调低到0.12,可以看到一些光线透过焦散效果射进来。

按Shift+A,添加“体积吸收”(Volume Absorption)节点,用于模拟光线在水体中的吸收效果;使用“着色器混合节点”(Mix Shader)将两个体积着色器混合在一起,将“Volume Absorption”节点“密度”值调高,同时调整该节点颜色,以改变水体颜色,增强真实感。

完成了上面所有步骤,就创建出了一个具有体积感和动态效果的水体材质,且这个水体可以根据深度的不同呈现不同的透明度。

比如,在Blender中创建一个名为“Swimming Pool”的网格,调整网格大小,让它看起来像一个游泳池,同时包含瓷砖和不同层次。将之前创建的水立方体放置在游泳池网格中,调整高度,使其覆盖整个游泳池的水体部分,调整立方体大小和比例,适应游泳池大小。

如果想要尽善尽美,你还可以调整体积吸收节点的密度值,让游泳池里的水看起来更深;调整噪点纹理节点的强度值,为水面添加一些额外的涟漪;或者调整体积吸收节点的颜色值。

如大家所见,创建出来的水体不仅超级逼真,而且创建者拥有极大控制权,可以轻松调整各种参数以适应不同的场景要求。

今天的分享就到这里了,小编已经迫不及待要打开Blender试一试了。小伙伴们学会了么?学会的别忘了点个赞赞再走呀~

end

本文来自新知号自媒体,不代表商业新知观点和立场。
若有侵权嫌疑,请联系商业新知平台管理员。
联系方式:system@shangyexinzhi.com