unity3d从零开始(五):学习光源


1、简介

        光源是每一个场景的重要组成部分。网络模型和材质纹理决定了场景的形状和质感,光源则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用一个以上的光源,合理地使用光源可以创造完美的视觉效果。

2、Unity的光源类型

        Unity提供了4中类型的光源,在合理设置的基础上可以模拟自然界中的任何光源。

        2.1、Directional light

       
        方向光源。该类型光源可以被放置在无穷远处,可以影响场景的一切游戏对象,类似于自然界中日光的照明效果。方向光源氏最不耗费图形处理器资源的光源类型。

        2.2、Point light

        
        点光源。该类型的光源从一个位置向四面八方发出光线,影响其范围内的所有对象,类似电灯泡的照明效果。点光源的阴影是较耗费图形处理器资源的光源类型。

        2.3、Spotlight

        
        聚光灯。该类型的光源从一点出发,在一个方向按照一个锥形的范围照射,处于锥形区域的对象会受到光线照射,类似射灯的照明效果。聚光灯是较耗费图形处理器资源的光源类型。

        2.4、Area Light

        
        区域光/面光源。该类型的光源无法应用于实时光照,仅适用于光照贴图烘培。

3、光源属性讲解

       3.1     Type

         光源类型。 单击Type按钮,可以选择光源的类型。

        3.2    Randge

        范围。该项目用于控制光线从光源对象的中心发射的距离,只有点光源和聚光灯有该参数。

        3.3    Color

        颜色。该项用于调节光源的颜色。

        3.4    Intensity

        强度。该项用于控制光源的强度,聚光灯以及点光源的默认值是1,方向光默认值是0.5。

        3.5    Cookie

        该项目用于为光源指定拥有alpha通道的纹理,使光线在不同的地方有不同的强度。如果光源是聚光灯或方向光,可以指定一个2D纹理。如果光源氏一个点光源,必须指定一个Cubemap(立方体纹理)。

        3.6    Cookie Size

        该项用于控制缩放Cookie投影。只有方向光有该参数。

        3.7    Shadow Type

        3.7.1    阴影类型

        阴影类型。为光源选择阴影类型,可以选择No Shadows(关闭阴影)、Hard Shadows(硬阴影)以及Soft Shadows(软阴影)。需要特别指出的是,软阴影会消耗更多的系统资源。默认设置下,只有Directional light光源才可以开启阴影,Pointlight、Spotlight光源开启阴影的话会弹出提示,如下图,意为只有Directional light光源在Forward模式下才可以启用阴影。
        

        3.7.2    开启其他类型光源的阴影

        如果希望开启Point light、Spot light类型光源的阴影(只有发布成Web版或单击版才支持),可以打开菜单栏中的Edit->Project Settings->Player选项,在Inspector视图中的Per-Platform Settings项下面的Other Settings栏中,单击Rendering Path*项右侧的按钮,在弹出的列表框中选择Deferred Lighting类型。如下图:
        

        3.7.3    渲染路径参数比较

        
        Rendering Path* (渲染路径)有三种类型

        3.7.3.1    VertexLit

        顶点光照。光照效果最差,不支持阴影,一般用于配置较差的机器或受限的移动终端平台。

        3.7.3.2    Forward

        正向着色。能够很好的支持光源照射效果,但不支持Point light、Spot light类型光源的阴影。

        3.7.3.3    Deferred Lighting

        延迟光照。支持最佳的光照效果及所有类型光源投射的阴影,但需要一定程度的硬件支持。

        3.8    Strength

        强度。该项用于控制光源所投射阴影的强度,取值范围是0~1,值为0时阴影完全消失,值为1时阴影呈黑色。

        3.9    Resolution

        分辨率。该项用于控制分辨率的质量。有5项可供选择。

        3.9.1    Use Quality Settings

        使用质量设置

        3.9.2    Low Resolution

        低质量

        3.9.3    Medium Resolution

        中等质量

        3.9.4    High Resolution

        高质量

        3.9.5    Very High Resolution

        更高质量。

        3.10    Bias

        偏移。该项用于设置灯光空间的像素位置与阴影贴图的值比较的偏移量。取值范围是0~0.5。当值过小时,游戏对象表面会产生self-shadow,就是物体的表面会有来自于自身阴影的错误显示,当值过大时,阴影就会较大强度地偏离投影的游戏对象。

        3.11     Softness

        柔化。该项用于控制阴影模糊采样区的偏移量。只有方向投影类型为软阴影的情况下该项才会启用。

        3.12    Softness Fade

        柔化淡出。该项用于控制阴影根据与摄像机的距离进行淡出的程度。只有方向光投影类型为软阴影的情况下该项才会启用。

        3.13    Draw Halo

        绘制光晕。如果勾选该项,光源会开启光晕效果。

        3.14    Flare

        耀斑/眩光。该项用于为光源指定耀斑/镜头光晕的效果。

        3.15    Render Mode

        渲染模式。该项用于指定光源的渲染模式,有三项可供选择。

        3.15.1 Auto

        自动。根据光源的亮度以及运行时Quality Setting(质量设置)的设置来确定光源的渲染模式。

        3.15.2    Important

        重要。光源逐像素进行渲染。一般用非常重要的光源渲染。

        3.15.3    Not Important

        不重要。光源总是以最快的速度进行渲染。

        3.16    Culling Mask

        剔除遮蔽图。选中层所关联的游戏对象将受到光源照射的影响

        3.17    Lightmapping

        光照贴图。该项用于控制光源对光照贴图影响的模式。有三项可供选择。

        3.17.1    RealTimeOnly

        仅实时灯光计算,不参与光照贴图的烘培计算。

        3.17.2    Auto

        自动。

        3.17.3    BakeOnly

        仅作用于光照贴图的烘培,不进行实时灯光计算。

        3.18    Width

        宽度。该项用于设置面光源影响区域的宽度。只有面光源有该参数。

        3.19    Height

        高度。该项用于设置面光源影响区域的高度。只有面光源有该参数。