在Blender的渲染设计阶段,环境照明的重要性不言而喻,虽然很多时候我们只需要一个简单的HDR文件就能实现,但如果场景中有大量光滑的金属物体,就可能出现环境纹理和实际物体不匹配的问题。

而且全景HDR文件只能做环境照明,而不是场景网格模型,无法根据摄像机位置进行移动,所以我们本期要解决的问题,就是如何让全景HDR文件变成我们虚拟现实的场景。

01

入环境照明

全景照片可以通过全景相机来拍摄,也可以用传统相机/手机搭配支持全景拍摄模式的云台稳定器来实现,建议还是直接用全景相机拍摄,非常方便,拍摄的全景照片需要在相机品牌相应的软件里合成并输出成全景格式,然后就能直接在Blender里使用了。

如果条件不允许,也可以在网上下载全景HDR图片,分辨率尽量高,8K以上最好,格式可以选择HDR或EXR,Blender都能正确识别。

对于拍摄场景而言,为了尽量简化后期的设计复杂度,尽量要选择足够方正的室内场景或者在开阔的室外,地上尽量不要摆放太多杂物,这样会导致视角移动时产生透视问题,容易发现穿帮。

图1
打开网易新闻 查看精彩图片
图1

然后打开Blender,将3D视图调整为渲染模式,如图1所示,选择“世界环境”标签,将“颜色”选择为“环境纹理”,然后打开我们刚刚准备好的全景HDR照片,这时候就能看到它作为环境全局照明的形式出现了,在场景中新建一个金属球体,可以看到它能正确反射出场景对应的环境,第一步就算是大功告成了。

02制作可移动视角的环境模型

制作可移动视角的环境模型

如果你在仅设置了世界环境的3D视图内调整摄像机位置,你会发现环境纹理不会有任何变化,这是因为它是以固定机位进行拍摄的,所以不可能与我们的摄像机位置形成联动,但这明显会限制我们的设计思路,所以才需要将环境纹理映射到与之形态对应的网格物体上。

图2
打开网易新闻 查看精彩图片
图2

因为我们使用的是房间内的全景照片,所以以立方体为基础来进行映射。这时候需要注意,我们是用这个立方体来模拟全景照片的房子,所以它的法向需要朝向内部才能正确进行设计,因此我们要进入立方体的编辑模式,全选所有面之后按Alt+N再选择“翻转”,一定要像图2那样,在开启“面朝向”显示功能后,所有外部面都呈红色(Blender默认法向正面为蓝色,背面为红色),就代表面朝向的设置正确了。

图3
打开网易新闻 查看精彩图片
图3

接下来就是给立方体添加材质,如图3所示,我们需要把“环境纹理”再次导入到立方体的材质之中,并手动添加“纹理坐标”和“映射”模块,并将“物体”作为它的坐标。而此时你会发现一些问题,比如墙面并没有对齐,旋转方向和位置也不对,我们还看不到内部的情况……

问题一个个地解决!首先我们要看到“房间”的内部,就需要引入“透明BSDF”节点,将其与默认的“原理化BSDF”混合,系数就选择为“几何数据”节点的“背面”。这个组合的意思就是如果视角看到的是某个面的背面,就将其设置为透明,因为我们之前已经正确设计了立方体的面朝向,所以这个设置就实现穿墙透视的效果。

当然,此时你可能仍然看不到内部,这是因为EEVEE模式必须手动调整混合模式,进入右侧的材质属性选项,找到“设置”里的“Blend Mode”,将其改为“Alpha Blend”,就能正确实现透视效果了。

图4
打开网易新闻 查看精彩图片
图4

接下来就是调整纹理的旋转和位置,先设置为顶视图,观察全景HDR图片的方向,调整立方体着色器节点里“映射”的Z轴“旋转”值,然后进入立方体的编辑模式,观察四面墙和顶面的纹理,然后逐个调整每一面的位置,使其符合全景HDR图片的布局。

图5
打开网易新闻 查看精彩图片
图5

然后我们还需要调整全景HDR图片的旋转值,因为物体的反射图是由它决定的,同样在着色器节点里,我们要如图4那样把左上角的“物体”改为“世界环境”,然后同样为环境纹理连接“纹理坐标”和“映射”,通过调整位置和旋转值,最终可以得到如图5的样子,看上去真实度就非常高了,而且我们还可以在一定程度上调整视角,实现接近虚拟现实的效果。

图6
打开网易新闻 查看精彩图片
图6

如果你拍摄的是户外的全景照片,在设计时就需要改换思路了,需要像球型IMAX影院那样制作一个半球形的“天幕”用来投影全景HDR图片,如图6所示,我们可以用半个经纬球来制作这一效果,注意在删除下半球的顶点后要填充底部,然后给边缘做一下倒角,免得过渡过于生硬。接下来的操作和立方体基本相同:全选所有面并翻转、正确加载并设置物体着色器和世界环境,像半球体天幕这种映射目标往往需要移动物体着色器的Z轴位置才会正确显示,所以调整参数时切记不要太马虎。

图7
打开网易新闻 查看精彩图片
图7

最后就是在场景中放入我们想要渲染的主体,比如我选择了一个空旷路面的场景,所以就用汽车模型来作为渲染目标。如图7所示,只需要把物体正确放置,就能得到一个不需要额外建模环境也能实现逼真渲染效果的场景了。

不过需要注意的是,本期教程一般情况下是使用EEVEE渲染器进行渲染,如果你要使用Cycles,就需要在物体着色器编辑器里,将全景HDR图像连接到原理化BSDF的“发光”节点,因为Cycles是无法透过物体来实现全局照明的,除此之外还可能需要额外的布光,才能实现更真实的效果。

编辑|张毅

审核|吴新

爆料联系:cpcfan1874(微信)

壹零社:用图文、视频记录科技互联网新鲜事、电商生活、云计算、ICT领域、消费电子,商业故事。《中国知网》每周全文收录;中国科技报刊100强;2021年微博百万粉丝俱乐部成员;2022年抖音优质科技内容创作者