灯光-Light对于每一个场景灯光是非常重要的部分。网格和纹理定义了场景的形状和外观,而灯光定义了场景的颜色和氛围。可以通过从菜单中选择GameObject-Light并将其添加到你的场景中。有3种类型的灯光。一旦添加了一个灯光你就可以像操作其他物体一样操作它。相关属性介绍Type:灯光的类型Directional:平行灯,类似太阳光;Point:点光源,类似灯泡;Spot:聚光灯,类似舞台聚光灯;Baking:该选项有三个选择Realtime:即光源不参与烘焙,只作用于实时光照;Baked:表示光源只在烘焙时使用Mixed:该光源会在不同的情况下做不同的响应;在烘焙时,该光源会作用于所有参与烘焙的物体;在实际游戏运行中,该光源会作为实时光源作用于那些不参与烘焙的物体或者动态的物体(不作用于静态的物体,就是勾选了Static);Color:光源的颜色,根据不同的环境设置不同的颜色,营造出不同的氛围;Intensity:光线强度;BounceIntensity:光线的反射强度;ShadowType:设置是否显示光源作用在的物体的阴影,NoShadows不显示阴影,阴影不存在;HardShadows:硬阴影(无过滤),效果不是很自然比较生硬;Softshadows:柔化阴影,更加贴近实际生活中的阴影显示,但比较消耗资源;Strength:阴影黑暗程度,取值范围0~1Resolution:阴影的清晰度,细化度,越高消耗越大;Bias:阴影的偏移量,越小,物体表面会有来自它自身的阴影,太大光源就会脱离了接收器;Cookie:灯光投射的纹理,如果灯光是聚光灯和方向灯就必定是一个2D纹理,如果是点光源必须是一个Cubemap(立体贴图);CookieSize:缩放Cookie的投影,只适用于方向光DrawHalo:如果勾选,那光源带有一定半径范围的球形光源Flare:在选中的光源的位置出现镜头光晕;RenderMode:此项决定了选中的光源的重要性,影响照明的保真度和性能;Auto:渲染的方法根据附近灯光的亮度和当前的质量设置在运行时由系统确定;important灯光是逐个像素渲染的;NotImportant灯光总是以最快速度渲染;CullingMask:剔除遮罩,类似摄像机的遮罩,选中指定的层收到光照影响,未选中的不受到光照影响;设置全局光照和烘焙光照贴图-LightMap一个场景中灯光添加多了资源消耗也就大了,为了降低资源的消耗,可以选择烘焙光照贴图;把光源的效果烘焙到贴图上,形成自带光源效果的贴图,这样就可以减少灯光的使用。使用unity自带的光照系统设置以及烘焙光照贴图;首先先介绍一个GI是什么?GI=直接光照+间接光照+环境光+反射光GI分为两种,一种是PrecomputedReatimeGI,这种GI需要预先计算,计算场景中所有的Static物体的信息,并且允许在运行时任意修改光源的BounceIntensity或者移动光源的位置.所有的变化都是实时的.第二种是BakedGI,这种GI不会预先计算但会进行预先烘焙,无法像PrecomputedRealtimeGI那样在运行时更改光源.要想完全理解GI,首先要好好说一下Lighting面板.在Window中选中Lighting,选中后再检视面板中就会出现一个Lighting的面板,如下以下是Lighting视图下Scene选项卡(如下图)先介绍一下EnvironmentLighting下的属性:EnvironmentLighting这些内容控制的是场景总体的光线信息,包括天空盒的设置,可以赋予一个天空盒材质上去,而天空盒材质在Unity5里面也有更新,很有意思,大家可以试试,新建一个材质然后选择Skybox/Procedural就行了.SkyBox:天空和,围绕整个场景的包装器,模拟填空效果,此项可以选择是否在场景中使用天空盒;Sun:指定某一个方向光光源来模拟场景中的太阳。如果设置为none,系统将默认设置场景中最亮的方向光作为“太阳”;AmbientSource:设置环境光对物体周围环境的影响来源;Skybox:使用天空盒的颜色来确定不同角度的环境光Gradient:允许环境光从天空,视域和地面选择单独的颜色并将其融合;Color:对所有环境光使用原色;AmbientIntensity:环境光的强度;AmbientGI(全局光照):设置处理环境光的GI模式(Realtime,Baked)ReflectionSource:使用天空的反射效果或自定义选择一个立方贴图(Cubemap);如果选择了天空盒则额外提供了一个选项类设置天空盒贴图的分辨率;ReflectionIntensity:反射源在反射物体上的可见度;ReflectionBounce:设置不同的游戏对象之间来回反弹的次数,如果设置为1,只考虑初始反射;以下跟实时光照有关:PrecomputedRealtimeGI的概念是,预先计算场景中的所有静态物体的信息,具体计算出来了哪些信息咱们开发者不用操心,这些计算出来的信息会用于实时GIRealtimeResolution:实时光照贴图单位长度的纹理像素,此值的设置通常要比烘焙的GI低10左右;(实时GI的分辨率,建议不要调太高)CPUUsage:运行全局光照渲染时,CPU的使用率;以下跟烘焙的全局关照有关:BakedGI就是烘焙光影贴图的内容了.可以和PrecomputedRealtimeGI同时存在.BakedResolution:烘焙光照贴图单位长度的纹理像素,此值设置通常比实时GI高10倍BakedPadding:烘焙光照贴图中各形状的间距,取值范围2~100Compressed:是否选择压缩场景中的所有的光照贴图;AmbientOcclusion:环境遮挡表面的相对亮度,较高的值表示遮挡处和完全曝光地区的对比更大;FinalGather:当处于选中状态是,在计算发射光时将使用与烘焙贴图一样的分辨率。虽然选中此项提高了光照贴图的质量,但会消耗更多的烘焙时间;以下是通用的全局光照的注解:GeneralGI组的这些参数同时适用于实时GI以及烘焙GI.DirectionalMode:提高画质图中是静态物体+Bake光源.可以看到如果选择了Directional,会像Unity4一样对静态物体处理得很不好,但如果选择了DirectionalSpecular,画质马上就提升了一个等级.不仅对于静态物体+Baked光源有提升,对于静态物体+Realtime光源也有提升.但是对于动态物体是没有提升的.这两幅图是静态物体+动态光源.可以说DirectionalSpecular直接提升了静态物体对于直接光和间接光的效果.IndeirectIntensity:在最终的光照贴图中游戏对象的散射,发射等间接光照的强度;BounceBoost:顾名思义,增强反弹光;DefaultParameters:预设参数值,可以创建新的LightmapParameters;AtlasSize:光照贴图的尺寸大小;以下是环境雾和其他设置:FOG:选项设置场景中是否使用雾气,模拟现实雾;FogColor:雾颜色FogMode:雾类型,基于距离,高度,或者两者皆有;Density:雾密度设置,浓或疏;HaloTexture:光晕贴图HaloStrength:光晕的强度,越大光越清晰FlareFadeSpeed:Flare(太阳耀斑,闪光)可见时的淡入和不可见时淡出FlareStrength:耀斑的强度SpotCookie:聚光灯投影遮罩以下是光照贴图的信息:当烘焙成功后光照贴图的信息会显示在此视图中;烘焙的流程如下:确定你要烘焙的物体是否设置好灯光,设置好就选中要烘焙的物体在Lighting-Object中把物体设置为静态的(static),同时因为要进行烘焙需要把灯光的Baking设置为烘焙模式baked;点击Build按钮开始烘焙,烘焙成功后会在资源文件夹中Assets下创建一个跟场景同名的文件夹并在里面生成光照贴图的资源;