Unity3D自带功能:灯光及光照烘焙
Unity室内效果烘焙和设置【2020】

Unity室内效果烘焙和设置【2020】下⾯以⼀个⼩客厅为例,和童鞋们⼀起讨论Unity3d的室内烘焙,⼀⽅⾯是对前⾯知识的综合应⽤,另⼀⽅⾯满⾜以下做装修童鞋的学习需求。
话不多说,开⼯!这个例⼦的3D场景如下图所⽰:拆分好的UV如下图所⽰导⼊Unity3d后的场景情况如下图所⽰:这个场景⽐较简单,⼀个窗户、⼀个沙发、⼀个茶⼏、⼀个书柜、两个落地灯、⼀个墙⾯装饰、还有⼀个挂画、茶⼏上⼀个杯⼦、两盆绿植,这⾥我们设想将场景烘焙成阴天的⽩昼⽓氛,也就是没有直射太阳光,室外光线完全是⼤⽓折射的太阳光,所以我们确定这个场景的主光源为从窗户投射的光线,可以使⽤Unity3d的⾯光源置于窗户附近,但我们这⾥选⽤Unity3d的材质灯光,也就是将某个模型的材质勾选“⾃发光”,这个模型就成了灯光了。
选中窗户玻璃,勾选其材质中的⾃发光(Emission),将⾃发光强度设为1.5,发光颜⾊设为⽩⾊,如下图所⽰:因为这个场景不可能有运动物体,光线也不会变化,所以选⽤静态灯光下的静态物体的⽅式烘焙场景,所以将⾃发光材质的Global Illumination(全局光照)设为Baked,勾选光照⾯板中的“Baked Global Illumination”,然后烘焙,得到如下图所⽰的结果(烘焙⽤时5分钟):从上图可见,场景太暗,但明暗关系已经有了,如果反复烘焙,太浪费时间,我们设想通过photoshop来调⾊,需要说明的是,这⾥所说的调⾊不是简单的图⽚调⾊,⽽是对整个场景调⾊。
如下图所⽰,将⼀个特殊的⾊带⽂件与相机关联起来,对这个⽂件调整,就会调整相机中的场景,这样我们将这个⽂件(png图⽚)⽤ps打开,然后截取⼀张相机视图的图⽚,按照图⽚调⾊的⽅法,对截取的图⽚调⾊,然后将图⽚调整的参数应⽤于那个⾊带⽂件,保存⾊带⽂件后,Unity3d的场景就回作相应的调整,关系就是这样。
下⾯我们就来调⾊,⾸先抓取相机视图的图⽚,然后在ps中打开,同时也将刚所说的⾊带⽂件也⽤ps打开,如下图:⾸先调⼀下截取的相机视图图⽚的亮度和对⽐度,亮度88,对⽐度-50,如下图所⽰:然后对⾊带也做这样的调整,如下图所⽰:然后保存⾊带⽂件,Unity的相机视图就会作相应的调整,调整后如下图所⽰:原理⼤家都明⽩了吧,这样就是以⽤ps灵活地为Unity3d场景调⾊了,只要Unity3d烘焙出场景的明暗关系,剩下的就交给ps了,这样可以节省⼤量反复测试烘焙的时间。
Unity3D光照效果优化教程

Unity3D光照效果优化教程引言Unity3D是一款在游戏开发领域广受欢迎的引擎,它提供了丰富的特效和光照效果,能够创建更加逼真的游戏世界。
然而,光照效果是游戏中耗费计算资源的重要组成部分之一。
在本篇文章中,我们将探讨如何优化Unity3D的光照效果,以提高游戏的性能和质量。
第一章:光照贴图的使用光照贴图是一种预计算的光照信息,可以用于实时渲染中。
通过使用光照贴图,我们能够节省大量计算资源。
在Unity3D中,我们可以使用Lightmap来生成光照贴图。
在导入场景中的模型时,勾选“Generate Lightmap UVs”选项,Unity会自动生成Lightmap UVs,并将光照信息保存在Lightmap中。
通过合理利用光照贴图,我们能够大幅度提高游戏的渲染效率。
第二章:光照贴图分辨率的调整在Unity3D中,我们可以通过调整光照贴图的分辨率来优化光照效果。
在场景中,我们可以选择将重要的物体与不重要的物体分开,为不同的物体设置不同的光照贴图分辨率。
对于较为重要的物体,我们可以使用较高的分辨率,以获得更加细腻的光照效果。
而对于一些不太重要的物体,可以使用较低的分辨率。
通过合理分配光照贴图的分辨率,我们能够在保证游戏质量的情况下提高游戏的性能。
第三章:灯光设置的优化在Unity3D中,灯光是影响光照效果的关键因素之一。
对于场景中的灯光,我们可以进行一些优化设置以提高游戏性能。
首先,我们可以限制灯光的数量,特别是对于无效或不可见的灯光。
其次,我们可以使用Shadow Distance选项来控制阴影的渲染距离,避免无效渲染。
此外,对于不需要阴影的灯光,可以关闭阴影渲染以提高性能。
通过灯光设置的优化,我们能够有效减少光照效果对游戏性能的影响。
第四章:动态光照的使用和优化在一些特殊的情况下,游戏中需要使用动态光照,以提供更加真实的光照效果。
然而,动态光照会对游戏性能产生较大的影响。
为了提高性能,我们可以采取一些优化措施。
Unity3D游戏开发之光照贴图快速入门详

保护校园环境倡议书八篇爱护校园环境建议书篇1敬重的教师亲爱的同学们:大家好!我是……………….又是一个春天的到来,校园的草木欣欣向荣,放眼望去绿油油的一片。
绿色是大自然赐给我们的珍贵财宝,人人都盼望有一个美妙的家园,当我们在绿树成荫的校园中闲逛,肯定会感到心旷神怡。
为了使我们漂亮的校园多一份绿,添一份生气,有一个舒适的学习环境,在这里我们号召广阔同学都行动起来,从身边的小事做起,担负爱护校园环境的责任,做一名有素养的大学生。
让我们细心的观看,在我们漂亮的校园还存在着一些不尽人意之处。
因此,我们建议:1.以爱惜校园为己任,自觉维护校园的清洁卫生,不随便乱扔果皮纸屑、烟头、不随地吐痰、不随便践踏草坪。
2.不将食物带进教学楼,自觉清理自己造成的垃圾,顺手扔进垃圾桶。
3.不从教室、学生寝室将垃圾顺手丢弃在窗外草坪上。
4.不在课桌椅上乱写乱画。
5.树立和提倡绿色文明意识。
6.勤俭节省,珍惜校内各种资源,顺手关灯、关空调、饮水机等。
7.上课将通讯工具自觉调成无声状态,共同营造文明课堂。
8.师生和谐、同学友好。
语言文明、行为标准。
让我们从点滴做起,爱惜校园环境,自我约束,相互检查,从自我做起,多一片绿叶,多一份温馨。
美丽的环境让我们懂得珍惜,美丽的环境让我们知书达理,美丽的环境让我们学会谦让。
细节表达一个人的素养,让我们做好每一个细节,爱护校园环境,争做一名有素养的大学生!爱护校园环境建议书篇2敬重的教师,亲爱的同学们:大家早上好!您渴望在一个干净温馨的环境中工作学习吗?您想拥有一个环境美丽、布满生气的校园吗?校园环境卫生的好坏直接影响到全体师生的工作、学习和生活。
美丽的校园环境,会使我们在学习、工作时心情舒服;美丽的校园环境,彰显每个人的素养,表达整个学校的道德风貌。
然而,走在校园里,瓜子壳、果皮、纸屑、废弃塑料瓶随处可见;教室里,遗弃在课桌上的垃圾比比皆是……这一切,都与文明校园的形象极不相称,与我们追求美妙环境的愿望大相径庭。
3.2 光照贴图的烘焙

2
)
Object maps板块
预览当前选中的GameObject的GI lightmap纹
3 )
理(包括阴影遮罩)。使用对象贴图选项卡仅查看当前
选定的游戏对象的已烘焙贴图的预览,包括遮罩。
1 光照设置 2 光照烘焙
[1] 打开工程BakeDemo,打开Bake-Start场景,在这个场景中,预先提供 了一些用于测试的模型和预设的光源,如左下图所示。
1 Generate Lighting :烘培光照贴图
烘焙生成按钮, 有三个选项
2 Bake Reflection Probe: 烘培反射探头 3 Clear Baked Data: 清除烘培数据
Global maps板块 显示所有lightmap文件生成的GI照明过程。使用全局地图选项卡
查看照明系统正在使用的实际纹理。这些包括强度光照贴图,阴影遮罩 和方向性贴图。这仅适用于使用烘焙照明或混合照明的情况,预览对于 实时照明是空白的。
Intensity Multiplier 在反射物上反射源(天空盒或自定义Cubemap)的可见程度
Hale Waihona Puke Bounces反弹反射。在场景中用反射探针捕捉该反射,该值决定了反射探针所检测
物体之间的来回反射反弹次数,如果是1则只有初始反射。
[2] Realtime Lighting实时光设置 Realtime Global Illumination:是否开启实时全景光 [3] Mixed Lighting混合灯光,其参数信息如表所示。
[5] 烘焙后,移动场景中的两个障碍物对象,会发现地上的阴影还是原来的 阴影没有跟着变化,因为那是场景保存了烘焙的贴图。如果场景中静态物体 发生了变化,要更新阴影就要重新烘焙。但是如果移动动态的物体汽车Car ,会发现车的阴影会跟着变化,因为Car对象没有设置为静态Static,不参与 场景的烘焙,如下图所示。
Unity4种灯光描述

Unity4种灯光描述
# Unity 中有 4 种灯光:
## Directional
⽅向光源:这种类型的灯光可以被放置在⽆穷远处,可以影响场景中的⼀切游戏对象,类似于⾃然界中太阳光的照明效果。
如图:
## Point
点光源从⼀个位置向四⾯⼋⽅发出光线,影响其范围(Range)内的所有对象,类似灯泡的照明效果。
如图:
## Spot
聚光灯:这种灯光从⼀点发出,在⼀个⽅向按照—个锥形的范围照射,该锥形是由聚光灯⾓度(Spot Angle) 和范围 (Range) 界定的。
如图:
## Area
区域光/⾯光源:该类型的光源⽆法应⽤于实时光照,仅适⽤于光照贴图烘焙 (lightmap baking)),这种光能从各⽅向照射⼀个平⾯的矩形截⾯的⼀侧。
如图:。
unity3D学习之光照贴图

光照贴图完全集成到Unity 中,可在编辑器(Editor) 中创建整个关卡,然后对其进行光照映射,让所有材质自动获取光照贴图,无需手动进行。
对Unity 中的光照贴图来说,所有灯光属性会直接映射到Beast 光照烘培贴图工具中并烘培到纹理,提高性能。
Unity 专业版扩展了全局照明(Global Illumination) 功能,可烘培出真实、美观的光照,实时的相反操作则不可行。
此外,Unity 专业版提供天光和发光材质,使场景照明更加有趣。
在本页中,您将看到光照贴图(Lightmapping) 窗口中出现的所有属性的深入描述。
要打开光照贴图(Lightmapping) 窗口,请选择窗口(Window) –光照贴图(Lightmapping) 选项。
检视器顶部有三个场景筛选器(Scene Filter) 按钮,供用户将操作应用到所有对象或限制在灯光或渲染器内。
对象(Object)每个对象的灯光、网格渲染器和地形烘培设置根据当前的选择而定。
单击场景筛选器(Scene Filter) 按钮可在层级视图(Hierarchy) 中轻松看到灯光、渲染器或地形。
文章来自【狗刨学习网】网格渲染器和地形(Mesh Renderers and Terrains):静态光照贴图(Lightmap Static) 网格渲染器和地形(Mesh Renderers and Terrains) 须标为静态才能进行烘培。
光照贴图比率(仅用于网格渲染器(Mesh Renderers))值越大,网格渲染器的分(Scale In Lightmap) 辨率越高。
最终分辨率将成比例(光照贴图缩放(Scale))*(对象的世界坐标空间所占面积)*(全局烘培设置分辨率(Resolution) 值)。
值设置为0 将不烘培对象(但仍会影响其他烘培对象)。
光照贴图大小(Lightmap Size) (仅用于地形)地形实例的光照贴图大小。
地形不与其他对象共用图集,而是有自己的光照贴图。
3.1 光照
1 平行光(Directional Light) 2 点光源、聚光灯光源和区域光源
1)点光源就是一个可以向四周发射光线的 点,类似于现实世界中的灯泡。点光源的 添加可以在Hierarchy窗口中点击【Create 】→【Light】→【Point Light】 菜单来 完成,点光源可以移动,场景中由细线围 成的球体就是点光源的作用范围,光照强 度从中心向外递减,球面处的光照强度基 本为0,如图所示。
[1] 打开工程【LightDemo】, 双击场景【House On Night】。
[2] 在Hierarchy窗口中,右击【Create Empty】创 建一个空文件夹Table1,并重置它的Transform组件, 点击Transform组件右边的按钮,点击【Reset】放 置于世界的原点,如图所示。
[4] 为平行光剔除遮罩,在Culling Mask的下拉列表中取消Enemy层的勾选, 如左下图所示,那么Enemy层所关联的对象就不受光照的影响,如右下图所示, 球体没有接受平行光照射变暗了,同时球体地上的阴影也没有了。
[5] 为平行光设置纹理贴图。点击Cookie右边的按钮,选择unity这张图,那么 平行光就带有纹理了,如左下图和右下图所示,将Cookie Size分别设置为3和 10的不同效果图。
光影效果
1 平行光(Directional Light) 2 点光源、聚光灯光源和区域光源
在3D游戏中和虚拟现实中,光源是一个非常具有特色的游戏组件,用来 提升游戏和虚拟现实面面质感的。
在Unit3D引擎中内置了四种形式的光 源,分别为点光源、方向光、聚光灯和区 域光。在Hierarchy视图中单击【Create】 →【Light】即可查看到这四种不同形式的 光源,单击即可添加光源:
unity烘焙场景的创建保存和使用(附demo项目)
unity烘焙场景的创建保存和使用(附demo项目)Unity烘焙场景是一种将场景中的静态物体和光照信息转换为纹理贴图的过程,可以提高游戏的渲染效率。
在Unity中,烘焙场景的创建、保存和使用非常简单。
首先,我们需要创建一个新的场景,并将需要烘焙的物体放置在场景中。
烘焙通常用于静态物体,因为它们不会在运行时发生移动。
可以使用Unity的预制体或手动创建物体。
在场景中,我们还需要设置光照信息。
这可以通过创建光源或使用Unity提供的预置光照设置来完成。
光照设置包括环境光、定向光、点光源、聚光灯等。
根据场景需要,可以调整光源的位置、颜色和强度等属性。
完成物体和光照的设置后,我们可以开始进行烘焙。
在Unity的顶部菜单栏中,选择“Window”->”Lighting”打开烘焙窗口。
在烘焙窗口中,选择“Scene”选项卡。
在这里,可以设置烘焙的一些参数,如光照贴图的像素分辨率、间接光照的质量等。
同时,还可以选择烘焙的物体和光照信息。
点击“Bake”按钮开始烘焙过程。
Unity会根据场景中物体的位置和光照的设置,计算出每个像素的颜色和光照强度,并将其保存为一张贴图。
这张贴图将被应用到场景中的物体上,提高渲染效率。
完成烘焙后,我们可以保存场景。
在Unity的顶部菜单栏中,选择“File”->”Save Scene”来保存场景。
保存后,场景将包含烘焙后的光照信息,可以在其他项目中使用。
保存的场景可以在其他项目中导入和使用。
在新的项目中,打开场景后,场景中的物体将自动应用保存的光照信息。
这样可帮助我们节省时间和提高工作效率。
除了创建、保存和使用烘焙场景,我们还可以进一步优化烘焙结果。
在烘焙窗口的“Lighting”选项卡中,可以调整烘焙参数,如光照贴图的分辨率、间接光照的采样数量等。
通过适当调整这些参数,可以使烘焙结果更精确和逼真。
总结来说,Unity烘焙场景的创建、保存和使用非常简单。
通过将静态物体和光照信息转换为纹理贴图,可以提高游戏的渲染效率和优化性能。
Unity中的Enlighten与混合光照
Unity中的Enlighten与混合光照前言在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten【1】来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的LightmapperProgressive来提供烘焙全局照明并且提供了更多的混合光照模式,但是Enlighten仍然是Unity中全局照明的主要提供者。
所以,本文就来聊聊Unity5.6以及Unity2017中和Enlighten、混合光照相关的话题吧。
直接光和间接光大家都知道在Unity中,我们可以在场景中布置方向光、点光、聚光等类型的光源。
但如果只有这些光,则场景内只会受到直接光的影响,而所谓的直接光简单理解就是从光源发出的直接影响物体的光。
如果只考虑直接光的影响,则会缺乏很多光影细节,导致视觉效果很平。
而间接光则描述了光子在物体表面之间的反弹,能够用来增加细节以及真实感。
例如上图中,位于天花板灯直射光线之外的区域缺乏光照效果。
表现为四壁上没有明暗细节,相反此时直接光范围之外都是均匀的黑色,而整个空间同样也显得十分平。
而增加了间接光之后进行渲染,可以看到光被物体表面反弹,彩色光从一个表面转移到另一个表面。
表现为红色墙壁和绿色墙壁(在右侧和红墙相对,没在画面内)的颜色反映到了场景中的其他表面上,四壁也不再是均匀的黑色,而有了层次感。
全局照明和渲染方程正如前文所说,在Unity中使用直接光是无法模拟光子在物体表面反弹的效果的,因此Unity使用了Enlighten所提供的全局照明(Global illuminaTIon)来提供间接光效果。
所谓的全局照明(缩写为GI)是3D计算机图形中使用的一组算法的通用名称,旨在为3D场景添加更逼真的照明。
这样的算法不仅考虑直接来自光源的光(直接光),而且还考虑随。
三维虚拟现实场景烘焙步骤及注意事项
一、检查场景无误场景模型、贴图达到制作要求,符合制作标准。
二、合并灯光场景。
打开烘焙灯光,确认烘焙灯光是场景需要的方向及参数。
把模型场景合并入灯光场景中,检查模型文件是否全部在灯光衰减范围内。
一定要把模型场景合并入灯光场景中,不然烘焙渲染器参数设置会被重置。
三、打开烘焙面板。
在渲染卷展栏下选择渲染到纹理四、烘焙选项设置。
1.烘焙贴图路径2.烘焙贴图uv展开烘焙贴图UV展开分为手动和自动。
模型结构比较复杂的情况需要手动展开UV这样贴图才能充分利用烘焙贴图,烘焙效果更佳。
模型结构比较简单的情况可以自动展开UV。
UV 通道选择3通道。
注意UV通道选择与设置。
3.选择烘焙的参数。
烘焙贴图通道设置:贴图坐标选项下,选择烘焙对象使用的通道,如若手动展开的UV 就选择使用现有通道(Use Existing Channel),自动展开的U就选择使用自动展开Use Autmatic Unwrap)。
烘焙输出选项设置:场景的要求与场景灯光的不同,选择烘焙的方式也会有所不同,一般使用VRay灯光烘焙。
烘焙灯光选择VEay灯光(VRay LightingMap)贴图位置一般选择自发光(self Illumination)。
贴图大小一般不要超过512×512。
一般情况会把名称改为:HB,文件类型一般为TIF格式的贴图用于区分烘焙贴图与未烘焙贴图。
4.贴图展开的角度与间距手动展开贴图设置:需要编辑器中手动添加UV展开编辑器,点击打开UV编辑器选择面层级,在贴图选项下选择展平贴图,然后设置贴图展开的角度为45,间距为0.002。
自动贴图展开设置:设置自动展开的阈值角度为45,间距为0.002。
五、烘焙检查参数设置,确认无误后点击渲染(Render),开始烘焙。
六、导出按照烘焙模型名称导出OSG格式文件,每个烘焙模型要单独导出一个OSG文件,不得多个成组或者附加导出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Unity3D自带功能:灯光及光照烘焙这一篇比较偏重于功能介绍,具体的实例操作请参考其他文章:未完成游戏场景中灯光照明的构成现实生活中的光线是有反射、折射、衍射等特性的。
对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向。
在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效果与现实生活区别很大。
最早期的时候,人们利用各种方式来模拟真实光照的效果,比如手动在贴图上画上柔和阴影,或者用一盏微弱的面积光源去照明物体的暗部以模拟漫反射现象等等。
然后出现了所谓的高级渲染器,用计算机的计算来代替我们的手工劳动来进行这个“模拟”的工作。
在漫长的发展过程中,出现过很多很多计算方案,总体上分为这样几类:直接模拟光线从被光源发出到最终被物体完全吸收的正向过程,也就是常说的GI(Global Illumination);不直接模拟光线,而是反向搜集物体表面特定点的受光照强度来模拟现实照明效果,也就是常说的FG(Final Gathering); 完全不考虑光线的行为,单纯基于“物体上与其他物体越接近的区域,受到反射光线的照明越弱”这一现象来模拟模拟现实照明(的一部分)效果,也就是常说的AO(Ambient Occlusion);将场景光照结果完全烘焙到模型贴图上,从而完完全全的假冒现实光照效果,也就是我们所说的Lightmap。
不论是GI还是FG,计算量都是非常大的,一帧图片需要几十分钟甚至几十小时来渲染,所以很难被应用在游戏设计领域。
因此在游戏设计领域,光照贴图技术依然是目前的主流方式。
由于光照贴图需要事先烘焙(baking)出来,且仅支持静态物体(Static Object),而我们的游戏场景中几乎不可能全都是静态物体,所以通常游戏场景中的灯光照明是多种照明方式的混合作用。
对于静态物体来说,大多使用光照贴图来模拟间接光的照明效果,然后加上直接光源的动态照明效果;对于运动物体来说,则仅用直接光源的动态照明效果,或者使用光照探针来模拟间接光的照明效果。
随着技术的发展以及计算机计算能力的提高,也许在未来,我们能够直接在游戏场景中进行动态的全局光照模拟也说不定呢。
新版Unity3D中就已经出现了Realtime Global Illumination,虽然这个技术还处于雏形阶段,所需要的计算量依然庞大,但确实为我们展示了一个令人激动的前景。
当然,技术是技术,产品是产品。
技术是为产品服务的,再先进的实时全局光照系统,对于像素风格的游戏场景的提升也是几近于0。
“选择合适的技术来完善我们的产品和制作流程”,以及“根据现有技术来设计产品和制作流程”,说的其实是同一个意思。
1. 直接照明(Direct Lighting)Unity3D中的直接照明主要来源于各种灯光物体,而灯光物体本质上是空物体加上灯光组件。
直接照明可以产生阴影,但光线不会反射、也不会折射,但可以穿透半透明材质物体。
1.1 灯光类型(Lights)Unity3D中默认可以创建这么几种灯光:聚光灯、点光源、平行光、面积光,另外还可以创建两种探针(Probe):反射探针(Reflection Probe)和光照探针组(Light Probe Group)。
Unity中可以创建的灯光类型物体平行光平行光通常用来做阳光,Unity3D新建场景后会默认在场景中放置一盏平行光。
平行光不会衰减。
unity_lighting04.pngType:灯光类型,所有类型的灯光都其实共用一个组件,本质上是一样的。
Color:灯光颜色Mode:灯光照明模式,每种模式对应Lighting面板中一组设定Realtime:对应Realtime LightingMixed:对应Mixed LightingBaked:对应Lightmapping SettingRealtime Lighting是新出现的一种烘焙光照技术,它并不像传统的烘焙技术一样直接烘焙间接光照颜色和亮度信息到光照贴图上,而是烘焙物体和物体之间的关系信息,比如A面对B面有漫反射效果,B面对C面有漫反射效果等等。
这样一来,只要物体之间的关系不变(也就是所有的静态物体都不移动位置),就不需要重新烘焙,从而使得我们可以在场景中随意运用动态光源(dynamic lights)。
而传统的Lightmapping光照贴图方式则不支持动态光源效果(改变光源不会改变场景光照)。
Realtime Lighting比Lightmapping要更耗费系统资源,所以手游上就不要考虑了。
Intensity:灯光强度Indirect Multiplier:在计算该灯光所产生的间接光照时的强度倍乘Shadow Type:阴影贴图的类型No Shadows:无阴影贴图Hard Shadows:硬阴影贴图Soft Shadows:光滑阴影边缘(也就是阴影模糊效果)Baked Shadow Angle:烘焙阴影的角度Realtime Shadows Strength:实时阴影强度Resolution:阴影贴图分辨率Bias:阴影偏移,通常适当增加这个值来修正一些阴影的artifactNormal Bias:法线偏移,通常适当减少这个值来修正一些阴影的artifact(不同于Bias的使用场合)Near Plane:阴影剪切平面,对于与摄影机距离小于这个距离的场景物体不产生阴影Cookie:Cookie相当于在灯光上贴黑白图,用来模拟一些阴影效果,比如贴上网格图模拟窗户栅格效果Cookie Size:调整Cookie贴图大小Draw Halo:灯光是否显示辉光,不显示辉光的灯本身是看不见的Flare:Flare可以使用一张黑白贴图来模拟灯光在镜头中的“星状辉光”效果Render Mode:渲染模式Culling Mask:点光源点光源模拟一个小灯泡向四周发出光线的效果,点光源在其照亮范围内随距离增加而亮度衰减unity_lighting01.pngRange:光线射出的范围,超出这个范围则不会照亮物体聚光灯聚光灯模拟一个点光源仅沿着一个圆锥体方向发出光线的效果,聚光灯在其照亮范围内随距离增加而亮度衰减unity_lighting02.pngSpot Angle:灯光射出的张角范围面积光面积光模拟一个较大的发光表面对周围环境的照明效果,通常面积光的灯光亮度衰减很快,阴影非常柔和。
Unity3D的面积光仅在烘焙光照贴图时有效,并不像Maya 的Area Lights一样能动态照亮场景。
unity_lighting03.pngWidth:面积光宽度Height:面积光的高度总的来说,Unity3D中自带灯光比较简单,根据我们在Maya 中使用灯光的经验,可以很快熟悉这些灯光类型的使用。
1.2 阴影类型(Shadow)Unity3D的灯光可以设置不同的阴影类型,分别是:无阴影、硬阴影、软阴影。
要注意的是,不论是硬阴影还是软阴影,本质上都是用阴影贴图模拟的阴影效果,而不是真实光照而自然形成的暗色区域。
unity_lighting05..png灯光上阴影设置部分会随着Mode参数的不同而变化,Realtime Lighting Mode对应的选项很多,而Baked Mode仅对应Baked Shadow Angle一项。
无阴影灯光不产生阴影,新建场景后默认生成的平行光就是无阴影的。
硬阴影阴影边缘清晰软阴影阴影边缘柔和,有过渡效果阴影质量设置虽然我们在灯光的阴影设置中可以调节Resolution以提高阴影质量,但真正的阴影质量调节应该在Quality面板中来进行,灯光中的阴影Resolution参数默认设置是Use Quality Settings,就是从Quality面板的设定中来选择。
unity_lighting06.png从菜单Edit > Project Settings > Quality打开Quality面板,这里可以针对不同质量等级设置不同的参数。
unity_quality02.png我们现在先不在这里对Quality面板做全面介绍,仅介绍关于阴影的那一部分设置内容:Shadows:在当前质量下是不渲染阴影,还是只渲染硬阴影,还是软硬阴影都渲染Shadow Resolution:在当前质量下阴影贴图分辨率,这就对应了灯光面板中的Resolution参数。
Shadow Projection:阴影贴图的投影方式,Close Fit方式会优化近处的阴影质量,缺点是运动状态下可能会出现一些波动,Stable Fit方式不会有波动,但质量比较差有的时候阴影贴图会出错,比如无缘无故多出一条亮缝之类,通常可以选择切换到Close Fit方式来解决,如果不想切换的Close Fit方式,可以适当降低灯光阴影参数中的Normal Bias参数,或者将对应场景物体设置成双面显示。
Shadow Near Plane Offset:很近处不渲染阴影Shadow Cascades:阴影贴图叠加方式,可以是单层、2层或者4层Cascade Splits:不同层所对应场景区域的比例分配划分Shadow Cascades是一种阴影贴图算法,比如我们选择4层叠加,那么实际上会计算4次阴影贴图,每次对应距离摄影机一定距离范围以内的场景物体,而这个距离范围的划分就通过Cascade Splits中所显示的紫、绿、黄、红四种颜色区域所占比例来区分。
紫色代表最近处的区域,而红色代表最远处的区域。
紫色条越窄代表其对应的那一层阴影贴图所对应的场景区域越小,这样一来该区域的阴影贴图精度就很高了。
我们可以看到这里的Shadow Resolution就对应了灯光面板中的Resolution参数。
unity_lighting07.png1.3 渲染路径(Rendering Path)Unity3D提供两种渲染路径(Rendering Path),对于初学者来说,渲染路径这个概念不是很好理解,大家可以理解成是两种不同的渲染器,分别有利弊就好了。
1.3.2 Forward在Forward渲染路径下,每个物体会被每个光源渲染成一个“通道”,因此物体受到越多灯光的影响,其渲染次数就会越多。
Forward渲染路径的优势在于,在灯光比较少的情况下,Forward方式的渲染速度会非常快,处理透明贴图也非常快,还可以使用诸如“多重取样抗锯齿(MSAA)”这样的硬件处理技术技术。
但Forward渲染路径的渲染速度会随着灯光的增多而迅速变慢,在一些有很多灯光照明的特定场景中(比如高科技室内环境)并不适合使用Forward渲染路径。
1.3.1 Deferred使用Deffered渲染路径,渲染时间不会随着灯光的增多而提高,而是会随着受整体光照影响区域的扩大而提高(也就是说,场景中越多像素被照亮,渲染速度就越慢,但全屏被照亮的情况下,灯光设置复杂度不会进一步影响渲染速度了)。