知方号

知方号

技术美术美术部分AO贴图的烘焙及应用

技术美术美术部分AO贴图的烘焙及应用

写在前面

计划完整学习AO相关,先从最直观的美术角度看看AO贴图如何烘焙及应用的,我觉得能更好的帮助我学习和理解,因此美术向的学习排在了图形学算法学习的前面。文中图片都是直接截图别人视频的内容,如有侵权请联系删除~

之后会继续更新图形部分的环境光遮蔽AO SSAO等内容。

AO贴图解决的问题

光追出现之前,游戏主要渲染方法是光栅化。光栅化是传统的渲染流程(但也是初学必须了解的内容之一!),也是软件向硬件妥协的结果。

随着硬件的提升,制作游戏对渲染画面要求也变得更高了。然而光栅化的光影、阴影等都与现实区别较大——仅计算直接光照,为了渲染出更真实、光影效果更加丰富的游戏画面,渲染开始向着全局光照效果靠拢。于是,基于此前的光栅化基础,出现了一系列计算全局光照的技术,本篇文章讲的AO贴图基于的原理Ambient Occlusion就是其中之一。

Ambient Occlusion,中文直译为环境光遮蔽。各种教程经常会提到“AO贴图”就是指现在所讲的AO。AO贴图解决的问题是间接光部分的:由于模型自身的凹凸不平,自己会遮挡自己,结果环境光照到的时候,就会比其他部位暗一点。这也正可以理解为什么是“环境光” “遮蔽” 了。

1 PBR中的AO贴图

下图( 图源知乎)是PBR两个工作流需要的贴图,其中AO贴图和法线贴图、高度贴图一起可在Metal/Roughness、Specular/Glossiness两种管线中流通,PBR Guider中把他们叫做Common Maps,即通用纹理。

2 烘焙AO贴图

我们结合次世代建模流程来看,AO贴图应该是流程(下图所示)中的第5步完成的:

烘焙AO常用的软件一般有Toolbag(八猴)、Substance Painter(SP)、knald等,b站随便找了个烘焙AO的视频:SP烘焙贴图 & Blender 的 AO贴图节点连接方法,直接截图这位UP的过程来过一遍实际项目中烘焙AO的流程,作为个人学习记录。

注意:这种在软件中直接烘焙好的AO纹理是不包含相邻对象阴影的,只是一个简单的自阴影贴图(self-shadowing map)。

2.1 导出高、低模型

此时高、低模已经做好就绪,他是在blender里建好模型后导出的:

2.2 基于高模烘焙

将低模导入SP,再基于高模烘焙各种贴图,跟AO贴图一起烘焙的还有法线(切线空间&世界空间)等贴图:

烘焙完成后,随便拖入一个材质查看当前包括AO贴图、法线贴图在内的贴图效果:

导出贴图,可以发现AO贴图其实是一张8位的灰度图: 

3 应用AO贴图

本小节所说的应用是在如blender等建模软件中的应用,至于引擎中是有固有流程的,且拖入指定位置就行比较简单,就不再写了。

3.1 直接叠baseColor×

看上去是属于美术的东西,好像没什么讲的,其实AO如何应用也是非常重要的!

例如上述教程中这位UP主的做法是把AO贴图直接跟baseColor正片叠底,如下图:

这样做的后果是——任何光照都会受到AO的影响,但是AO本质上是记录间接光的遮蔽信息,是不影响直接光照部分的效果的,这样一叠就违背了环境光遮蔽本来的意思和作用。

3.2 单独赋予1个材质√

给AO贴图一个单独的材质,这才是正确的做法。过程参考的话可以看这个视频:Blender使用AO贴图丰富材质细节,环境光遮蔽贴图使用,视频中跟我表达的是一个意思,给AO和baseColor分别都连了一个Principle BSDF材质节点,如此二者光照效果是可以区分开的,还给了一个渐变节点作为调节AO程度的参数:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。