Blender烘焙光照贴图
- 前言
- 步骤
- 1. 创建场景中的物体
- 2. 得到光照UV展开图
- 3. 为烘培做准备(1)
- 4. 为烘培做准备(2)
- 5. 烘焙`环境光遮蔽`光照贴图
- 参考资料
前言
Blender烘焙光照贴图是常用的一种方法。在得到光照贴图后,预览3D场景等场合中,只需要加载静态光照贴图,而不需要实时渲染光照,从而达到快速预览的效果。
步骤
1. 创建场景中的物体
0)前言
本节中,我们将 1)创建场景背景,2)创建场景中需要的物体。
1)创建场景背景
创建一个正方体 -> 进入编辑模式 -> 打开点选择模式
-> 选中顶面任意一个端点。
按下X
删除快捷键 -> 选择删除选中顶点
。
得到下面的状态。
保持在编辑模式
中(如果退出到物体模式
了,可以通过 左键选中当前物体 -> 按Tab
键 来进入编辑模式) -> 按A
选中所有点(/线/面) -> 按下Ctrl+Shift+N
(也可Mesh
->Normals
->Recalculate Inside
)来重新计算内部面(这样后面的UV会对应到该物体的内部面,而非外部面)。
2)创建场景中需要的物体
按下Tab
回到物体模式
,随意创建几个物体,以供稍后烘焙光照贴图时使用。
2. 得到光照UV展开图
0)前言
本节中,我们将 1)学习创建新窗口(可跳过),2)创建光照UV展开图, 3)学习提高烘培效率的技巧(可跳过)
1)创建新窗口(可跳过)
保持着物体模式
-> 鼠标左键来选中一个物体 -> 通过Shift+鼠标左键
依次选中所有场景内将要被贴图烘焙的物体(不全选的原因是不想选中灯光
和相机
) -> 按下Ctrl+J
来合并所有物体
(注:这一步可忽略,后续操作在已有窗口中进行即可)鼠标放在下图中A
点的黑色间隙处后,鼠标变为十
字 -> 按下鼠标,向右水平拖拽新建一个窗口。
(这里注意鼠标的拖拽方向需要非常精准的水平方向,失败了多试几次,关闭多于窗口的方法见 [1] [2],注意窗口角落处黑色的空隙
和窗口的内部角落(没离开窗口区域)
分别对应创建新窗口
和合并已有窗口
)
2)创建光照UV展开图
打开UV编辑器
-> 鼠标移至3D物体所在视窗内 -> 鼠标左键选中物体 -> 按下Tab
进入编辑模式
(注意必须左键选中物体后再进入编辑模式,否则下一步中的Lightmap Pack
会报错“No mesh object”
)
(如果没有如上图所示那样全选的话,)鼠标移入3D物体所在窗口,按A
选中所有点(/线/面) ->,按U
打开UV
菜单 -> 选择Lightmap Pack
-> (可使用默认设定)点击OK
。
UV编辑器
视窗中得到物体的UV展开图。
3)提高烘培效率(可跳过)
(注:这一步是可选步骤,目的是提升烘培效率。后续步骤中将默认忽略了此步骤)(这里可以调整展开图中各种面的大小;调整完大小后,可以在3D物体视窗中进入编辑模式 -> 全选点/线/面 -> Ctrl+T
将选中面三角形化,防止曲面被自动三角形化后得到无法控制的结果;调整完大小并且(/或)
三角形化后,在UV编辑器
中选中所有点(/线/面)
,在UV编辑器
的菜单栏中找到UV
-> Pack Islands
使得展开面更加的紧凑(效果见下面的第二张图),从而减少烘培时不必要的消耗。)
3. 为烘培做准备(1)
0)前言
本节中,我们会1)创建空贴图,2)删去原有的原理化BSDF节点,并增添AO
节点和Diffuse
着色器节点。
1)创建空贴图
打开图像编辑器
-> 在窗口的菜单栏里找到新建按钮 -> 创建一个名为lightmap
的图像(名字可随意,阅读后续步骤时自行替换即可)
(在下面的第三张图里,可以自行缩小新建图像的宽度
和高度
,减少烘焙所用时间;有些人这里会选中32-bit Float得到32位光照贴图后用photoshop
转回8位贴图
,这里觉得没有必要,所以没有勾选32-bit Float,而是使用默认的生成8位贴图`功能。)
得到下图后,可以将鼠标放在黑色区域内,向下滑动鼠标滚轮缩小图片,得到下面的第二张图。
2)修改着色器节点
在3D物体窗口内选中物体 -> 打开着色器编辑器
-> 鼠标放在窗口内,按N
收回右侧菜单栏 -> 左键选中原理化BSDF
,按X
键删除(得到下面第三张图)
鼠标放在窗口中,
按Shift+A
-> 点击输入
-> 点击Ambient Occlusion
,创建Ambient Occlusion
节点以实现最终生成环境光遮蔽
光照贴图;
按Shift+A
-> 点击着色器
-> Diffuse BSDF
,创建Diffuse BSDF
节点使场景中的物体拥有散射效果;
依找Ambient Occlusion
-> Diffuse BSDF
-> Material Output
的顺序连接三个节点(见下面第三张图)。
4. 为烘培做准备(2)
0)前言
这一节里,我们会1)创建一个图像纹理
节点和2)一个Emission
节点供后续测试时使用,3)并且配置好光照表现较好但是渲染速度较慢cycles
渲染引擎。
1)Image Texture节点
注:该节点必须在烘焙前配置完成,否则烘培时会收到No active image found in material "<Material>" (xx) for object "<object>"
报错
在着色器编辑器
中创建图像纹理
节点 -> 点击节点中的图片小图案 -> 选择之前创建的lightmap
图像
2)Emission节点
注:该节点可在烘焙完成后添加,且可自行选择是否添加。
创建一个Emission
节点,连接lightmap
节点(由图像纹理节点选中图片后转变而成的)和Emission
节点。
3)配置Cycles渲染引擎
在属性窗口
中,选择Cycles
引擎,选用烘焙效率更高的GPU计算
来加速烘焙过程。
5. 烘焙环境光遮蔽
光照贴图
0)前言
本节,我们会1)烘焙光照贴图,随后在2)修改相应的着色器节点后,3)查看静态渲染的最终场景。
1)开始烘焙
进入①属性窗口
-> 打开②渲染属性 -> 确保烘焙类型
为Combined
-> 点击④烘焙 -> 等待⑤烘焙完成。
注:
- 这里的
Combine
是将各种光照贴图融合后的光照贴图,也可以选择其他类型,分别烘焙。 clear image
选项是为了在已经烘焙过的情况下,清除先前的烘焙结果,使得image保持最新结果。select to active
通常用于烘焙高精度模型贴图,用于低精度模型。使用时,先选中高精度模型,然后按住shift左键低精度模型,随后即可开始烘焙。
2)修改着色器节点
完成后,图像窗口的lightmap
会变为这样。
接下来,在着色器编辑器
中,如下图连接节点。
3)查看最终结果
最后,在3D物体窗口,打开Viewport Shading
模式(如图箭头所示),便可查看静态渲染的场景了。
参考资料
https://www.bilibili.com/video/BV1w4411W7FR/