千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:南京千锋IT培训  >  技术干货  >  Unity光照贴图烘焙

Unity光照贴图烘焙

来源:千锋教育
发布人:qyf
时间: 2023-01-10 16:00:07

  什么是光照贴图(Lightmap)?为什么要用光照贴图?

  场景中的光照信息大致可以分成两类:直接光照和间接光照。

  只有直接光照的情况

图片 1

  直接光照+间接光照的情况

图片 2

  如果没有间接光照,那么整个场景就没有真实性可言。但是间接光照的实时计算在目前的硬件条件下,只有支持实时光线追踪的硬件才能实现,比如Nvidia的RTX系列显卡。在普通的计算设备上,特别是移动端设备上目前还没有实时光线追踪的解决方案出现。因此我们必须依赖预先计算好的光照贴图来提供这些间接光照信息。

  光照贴图本质上就是一张或者多张应用在场景模型上的贴图。它们包含的是通过光照贴图烘焙方式进行预计算所获得的间接光照,阴影等信息(可以在烘焙时选择只烘焙间接光照,不烘焙阴影)。使用光照贴图可以避免在游戏运行时进行实时的光照和阴影计算,提高游戏的运行性能,特别适合用于性能较弱的计算平台比如移动平台上。

  要在Unity中预计算(或者说烘焙)获得光照贴图,我们使用的是Unity官方研发的Progressive Lightmapper(渐进式光照贴图烘焙)。在Unity 2018版本之前,Unity中集成的光照烘焙模块是一套第三方解决方案Enlighten。由于第三方厂商Geomerics不再维护Englighten,所以从Unity 2019版本开始Enlighten被标记为弃用状态(Deprecated)。Unity 2021.1版本开始将完全移除Englighten模块。

  渐进式光照贴图烘焙,对场景中模型的要求是什么?

  使用渐进式光照烘焙对模型有以下几个要求:

  1. 模型上不能有重叠的UV。

  2. UV之间要有足够的间距以避免“渗色”现象的发生。

  3. 因为光照贴图只能烘焙静态物体,所以我们要把需要参与烘焙的物体标记为Static。

  渐进式光照贴图烘焙出来的是什么?

  光照贴图烘焙出来的是光照贴图(Lightmaps),光照探针(Light Probes)和反射探针(Reflection Probes)。

  按照不同的Lighting Mode(光照模式),光照贴图烘焙出来的结果是不同的。

  HDRP下Lighting窗口的光照模式支持Baked Indirect和Shadowmask两种(内置渲染管线和通用渲染管线请参考文档)。

  1. Baked Indirect模式:

  如果场景中的灯光模式设置为Mixed,那么这些灯光会给场景提供直接光照,间接光照信息则被烘焙到光照贴图和光照探针中。此选项适合中高端的平台,比如PC,主机。

  2. Shadowmask模式:

  如果场景中的灯光模式设置为Mixed,灯光会给场景提供直接光照,间接光照烘焙到光照贴图和光照探针中。Shadowmask和光照探针遮挡信息会被烘焙到阴影信息中。你可以在Project Settings > Quality窗口设置Shadowmask的模式(Shadowmask或者Distance Shadowmask两种模式可选)。此选项在游戏运行时比Baked Indirect模式性能更好,因为光照贴图中已经预先烘焙了阴影信息。

  3. Subtractive模式:(在内置和通用渲染管线中支持)

  场景中的直接光照,间接光照和阴影信息都会烘焙到光照贴图中。适合对性能敏感的平台比如移动端平台。

  如果场景中光源设置为Mixed模式,在三种光照模式下动态和静态物体的行为可参考以下列表:

图片 3

  渐进式光照贴图烘焙的CPU版本和GPU版本有什么区别?

  CPU和GPU两个版本所用的底层技术相同,唯一的区别是:CPU版本使用CPU和内存进行计算;GPU版本使用显卡和显存进行计算。

  1. 如果使用CPU版本进行烘焙,影响烘焙效率的是CPU的速度和内存的大小。

  2. 如果使用GPU版本进行烘焙,影响烘焙效率的则是显卡的速度和显存的大小。

  界面操作(HDRP示例):打开Window > Rendering > Lighting Settings窗口,在Lightmapping Settings区域可以选择使用哪个版本的ProgressiveLightmapper:

图片 4

  以上就是关于Unity光照烘焙的用法了,同学们学会了吗?

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

三元运算符是什么?三元运算符怎么用

2023-06-20

Java常量是什么?

2023-06-14

保证Servlet线程安全的方法有哪些?

2023-06-05

最新文章NEW

什么是javascript?

2023-06-12

javascript常用正则

2023-04-20

用c语言编写爱心的代码

2023-04-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>