Unity3D之Lightmap详解

作者:李志健

  Unity 完全集成了光照贴图,可以通过编辑器创建完整的光照贴图,你完全不用担心,所有材质会自动获得光照贴图。光照贴图的意思是,所有灯光的特性将被直接映射到Beast lightmapper并烘培到纹理,以此获得更好的性能。UnityPro版扩展了全局光照功能,可以烘焙出真实而漂亮的光照,当然这就不能同时使用实时光照。此外,Unity专业版带给你天光和发光材质,为你增加更有趣的场景照明。

  在此页中,你会发现更深入的描述,可以找到在Lightmapping窗口的所有属性。从菜单中Window ? Lightmapping打开Lightmapping窗口。

物体

  物体的烘培设置:灯光、网格渲染和地形 - 取决于当前的选择。

网格渲染器和地形: 

·Static 静态
可渲染网格和地形必须标记为静态才能被烘培。
·Scale In Lightmap 光照图比率
(只作用于可渲染网格)特别大的数值将分配给可渲染网格更大的分辨率。最终分辨率比例(光照图缩放)*(物体世界坐标空间所占面积)*全局分辨率烘培设置)如果设置为0物体将不被烘培。(但是它依旧对其他的物体有影响)
·Lightmap Size 光照图大小
(只作用于地形)光照贴图尺寸是地形实例独有的属性,地形将不和其他物体共用图集。地形光照贴图将存贮在一个单独的文件中。
·Atlas 图集
图集信息-如果Lock Atlas(锁定图集)选项没有开启那么这些参数将自动更新。如果Lock Atlas(锁定图集)选项开启,这些参数将不会自动编辑。但是你可以手动设置他们。
·Lightmap Index 光照图索引
光照贴图序列中的索引。
·Tiling 平铺
(只作用于可渲染网格)物体光照贴图UVs平铺。
·Offset 偏移
(只作用于可渲染网格)物体UVs的偏移。

Lights 灯光:

·Lightmapping 光照贴图
光照图模式:仅实时模式,自动模式和仅烘培 模式。查看下面Dual Lightmaps的描述。
·Color 颜色
灯光颜色。一些属性只作用于实时光照。
·Intensity 光强度
灯光照明强度。一些属性只作用于实时光照。
·Bounce Intensity 反弹强度
特定光源间接光照强度的倍增值。
·Baked Shadows 烘焙阴影
控制当前灯光是否产生阴影。(当选择自动选项时同时影响实施阴影的产生)
·Shadow Radius 阴影半径
(只作用于点光源和聚光灯)增加这个值将得到一个较柔和的阴影。增加这个值的大小影响阴影覆盖面积范围的计算(不会影响到灯光照射范围)。
·Shadow Angle 阴影角度
(只影响平行光)增加这个值将会得到一个比较柔和的阴影-增加灯光阴影覆盖角度范围的计算。(不会影响到灯光照射范围)
·Shadow Samples 阴影采样
如果你将阴影半径或者角度设置为大于0的值,增加阴影采样值能得到一个比较好的结果。高采样值将消除半影中中的噪点。

Bake 烘焙 

  全局烘焙设置。

·Mode 模式
控制离线烘培和实时光照模式。在Dual Lightmaps 模式下近端和远端光照图都将被烘培;只有延迟光照渲染方式式才能更好的支持双重光照图。Single Lightmaps 模式仅烘培远端光照图。在延迟渲染方式下也可以强制使用单光照图模式。
·Use in forward rendering 使用正向渲染
(Dual lightmaps only) 在正向渲染中启用dual lightmaps。要注意的是这需要你创建自己的shader来达到目的。
·Quality 质量
高质量(比较好的效果)和低质量(计算速度快)的预设值。它们将影响最终聚集光线数量和对比度的数值以及其他有关最终聚集和抗锯齿的设置。
·Bounces 反弹
控制全局光照模拟中光线反弹的次数。如果想得到一个比较柔和的相对真实的光照至少需要将此数值设置为1.如果设置为0那么只会计算直接光照。
·Sky Light Color 天光颜色
天光是模拟从天球向所有方向发射光线照射场景-在烘培室外场景的时候开启天光将得到一个非常好的效果。
·Sky Light Intensity 天光强度
天光的强度 - 0代表禁用天光。
·Bounce Boost 反弹增强
增强间接光, 可用来增加场景中渲染太快没有烘焙出灯光的反弹量。
·Bounce Intensity 反弹强度
间接光照的强度倍增器。
·Final Gather Rays 最终聚集光线
控制从最终聚集点发射的光线数量-较高的数值能得到更好的效果 。
·Contrast Threshold
对比度阈值
颜色对比度根据采样运算规则控制哪些最终聚集点被创建。较高的数值可以使Beast处理物体表面灯光照明时有很大的改善,从而得到一张平滑的光照贴图但是会牺牲一些照明细节。较低的数值需要最终聚集光线数量要高于对比度阈值这样被过滤掉的最终聚集点才能被创建出来。
·Interpolation 插值
控制最终聚集点颜色的插值。设置0为线性插值,设置1为基于梯度的高级插值。多数情况下推荐使用后者。
·Interpolation Points 插值点
设置最终聚集点颜色的插值的参考点。高数值可以获得比较平滑的结果,但是会牺牲一些光照细节。
·Ambient Occlusion 
环境光遮挡
烘培光照图时产生一定数量的环境阻光。环境阻光计算物体每一点被一定距离内的其他物体或者一定距离内自身物体的遮挡程度(用来模拟物体表面环境光及阴影覆盖的比例,达到全局光照的效果),所以和所有的灯光设置没有太大关系。
·Max Distance 最大距离
Beyond this distance a ray is considered to be unoccluded. 0 stands for infinitely long rays.
超出这个距离的光线将不被遮挡。0表示无限长的光线。
·Contrast 对比度
控制完全阻光和不阻光之间的过度。
·Lock Atlas 锁定图集
当锁定图集被打开。自动图集功能将不执行,物体光照图索引,平铺和偏移将不能编辑。
·Resolution 分辨率
每世界单位中光照图分辨率的大小。因此当设置分辨率为50的一个10单位乘以10单位的平面将产生一张500*500像素的光照贴图。

Maps 贴图所有光照贴图的可编辑数组。

·Compressed 压缩
控制是否压缩所有当前场景中的光照贴图。
·Array Size 数组大小
光照贴图数组的大小(0~254)。
·Lightmaps Array 光照贴图数组
当前场景被烘培的所有光照图的可编辑序列。没有被指定的通道将被处理为黑色光照图。索引相当于网格渲染和地形中所使用的光照图编号。除非锁定图集被开启否则序列将自动初始化并分配给你烘培的贴图。

Lightmap Display 光照贴图显示 

  在编辑器中控制光照图如何显示的工具。光照图显示是在场景视口中的一个子窗口。可见只要光照图窗口可见。

·Use Lightmaps 使用光照贴图
是否渲染光照图。
·Shadow Distance 阴影距离
根据过度到只使用远端光照图时哪些设置为自动模式的灯光被关闭的距离。这里的设置覆盖其他面板中相关设置。但是不能覆盖质量设置中的阴影距离设置。
·Show Resolution 显示分辨率
切换在场景中是否显示光照图分辨率。开启这项设置你可以在你的场景中直接预览静态物体光照图的分辨率大小。

Details 细节

  Dual Lightmaps 双重光照贴图

  双光照贴图是Unity中的光照贴图可以同高光贴图,法线贴图和适当混合的实时阴影一起渲染的工具。同时它也可以让你的光照贴图看起来效果更好,即使设置的光照分辨率较低。

  双光照贴图默认情况下只能用于延迟光照渲染路径。但通过编写自定义着色器就可能让双光照贴图用于前向渲染路径中(使用dualforward表面着色指令)。

双光照贴图即意为使用两套光照贴图:

·远 :包含全部照明 
·近 :包含标记为自动模式的灯光所产生的的间接照明,和标记为仅烘焙模式的灯光,发光材质和天光的所有照明。

  设置为仅实时的灯光永远不会被烘培。近端光照图作用于质量设置中的相对摄像机最小阴影距离范围内。

  在这个距离范围内,自动模式的灯光将实时渲染高光,凹凸和阴影,(它们的阴影与实时模式的等光的阴影融为一体),间接光则来自近端光照贴图。 若超出阴影距离自动模式灯光就不再进行实时渲染,而全部照明都由光照贴图产生(仅实时模式灯光仍然产生照明,但不产生阴影)。

  下面的场景包含一个默认设置为为自动模式的平行光,一些烘培完光照贴图的静态物体(建筑物,障碍物,其他静态物体)和一些动态的移动或可移动物体(持枪的假人,桶)。 该场景在双重光照贴图模式中烘焙和渲染:阴影距离以外的建筑物完全由光照贴图产生照明,而两个假人由实时灯光产生动态光照,但是不投射阴影; 阴影距离范围内的建筑物和地面被即时光照亮并投下实时阴影,但柔和的间接光是来自于近端光照贴图产生。

时间: 2024-10-05 16:27:49

Unity3D之Lightmap详解的相关文章

Unity3D研究院之详解游戏开发音频的播放

游戏音频的播放在任何游戏中都占据非常重要的地位,音频的播放还可以分为两种,一种为游戏音乐,另一种为游戏音效.前者适用于较长的音乐,如游戏背景音乐.第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效.今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放. Unity3D游戏引擎一共支持4个音乐格式的文件 .AIFF  适用于较短的音乐文件可用作游戏打斗音效 .WAV  适用于较短的音乐文件可用作游戏打斗音效 .MP3  适用于较长的音乐文件可用作游戏背

《Unity3D 实战核心技术详解》书中关于矩阵的错误

最近一直在学习实时渲染,不免要接触线性代数.而渲染中,一定会用到矩阵,当我再次去复习我之前看的书时,发现<Unity3D 实战核心技术详解>关于矩阵就有几处错误 ,特标注出来. 书的第一章<3D数学与Unity>,1.3.2讲矩阵缩放.1.3.3讲矩阵的旋转.缩放是一个矩阵,后面旋转针对绕三个不同的轴的旋转矩阵(x.y.z),总共4个矩阵,其中3个是错误的,只有一个绕y轴旋转是正确的.我不确定是印刷问题,还是作者本身对矩阵了解和掌握的就不深入,但出现这样的低级错误实属不该. 我直接

Unity3D游戏开发之详解 Animation类和Animator类

Unity3D游戏开发之详解 Animation类和Animator类 Animation类 animation组件用于播放动画.可以指定动画剪辑到动画组件并从脚本控制动画播放.在Unity的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面. 如果想播放一个简单的动画,可以使用Animation.Play:如果想在动画之间交叉淡入,可以使用Animation.CrossFade:如果想改变动画模式(循环,一次,乒乓),可以改变动画导入设置里面的动画帧的Wra

图文详解Unity3D中Material的Tiling和Offset是怎么回事

图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔靴搔痒. 下面用*.3ds文件作为模型,介绍Tiling和Offset到底是怎么回事. 3DS格式解析 比如我有这样一个tank_player.3ds模型.右侧的'select'处的图片就是贴图. *.3ds文件最基本的内容包括顶点列表Vertices.贴图坐标列表UVs.面列表Faces.其中Ve

Unity3D - 详解Quaternion类(二)

OK,不做引子了,接上篇Unity3D - 详解Quaternion类(一)走起! 四.Quaternion类静态方法 Quaternion中的静态方法有9个即:Angle方法.Dot方法.Euler方法.FromToRotation方法.Inverse方法.Lerp方法.LookRotation方法.RotateToWards方法和Slerp方法.关于静态的方法的使用就是直接用类名调用其静态方法,例如Quaternion.Angle(q1,q2);下面对这些静态方法做下分析. 1.Angle方

【Unity3D游戏开发】—— 太空大战打飞机游戏详解

大家好我是Kaven,今天给大家带来的是一个Unity3D的打飞机的小项目.俗话说"眼看千变,不如手过一边",学了差不多两星期Unity3D了,是时候找个小项目练练手了.于是就翻出了cocos2d-x的一个例子,模仿着写了一个飞机大战的游戏,虽然有一些功能没有实现,但总体上是完成了.闲话少说,下面开始吧. 由于这个用的是Unity3d自带的原生的2D插件native 2d,所以创建项目时左下角选择2d. 这个小游戏我分了三个场景,菜单场景,游戏场景,结束场景.由于菜单场景与结束场景都比

Unity3D游戏开发之粒子系统实现详解

 今天为大家分享的是Unity3D中的粒子系统,粒子系统通常用来表现烟雾.云等高级效果,是一个十分注重制作技巧的部分,今天我们将以一个气泡的演示实例来一起学习如何在Unity3D中使用粒子系统.首先我们创建一个Unity3D项目,然后我们导入官方提供的粒子系统资源包,如下图: 接下来,我们创建一个粒子对象,如图所示: 接下来我们在属性面板中完成对粒子系统的设置,我们通过一张图来介绍这个属性面板: 接下来,我们单击Renderer,以设置该模块的Material属性,我们将官方提供的SoapB

Unity3D ARPG游戏开发《最初的幻想》之第一张地图与跳跃的改善详解

前面我们终于实现了人物动画.相机控制及昼夜系统,现在继续吧,为了方便继续编写的敌人之类的脚本,所以打算今天先把第一张地图画个大概.结果,画了我好久的地图….. ≡(▔﹏▔)≡ 我对美术方面的天赋简直是惨不忍睹了…..加之地图中途画的差不多的时候Unity又崩溃了一次….忘了保存(ㄒoㄒ).于是又忙活半天….这个地图完全靠临时发挥了,第一张地图我画了好几次了,基本上每次画出来的地形之类的都完全不一样,所以就不多解释了,就上一张大概的场景图吧: 看起来好简单吧?唉……开启编辑器,这时侯如果在场景中转

25.Unity3D手机中Input类touch详解-Unity触屏事件解析到底(Twisted Fate)

首先贴一下Unity支持的模型文件类型,以前没有收集过. Unity支持两种类型的3D文件格式: 1.  通用的"出口型"3D文件 如.fbx..dae..3ds..dxf..obj等文件格式. 2.  3D软件专用的3D文件格式 如Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等软件所支持的格式,如.MAX, .MB, .MA等等. Unity3D手机中Input类touch详解: 1.Input.touch