Unity3D-光照系统

光照系统

1. Global Illumination(全局光照)

  1. GI,能够计算直接光,间接光,环境光以及反射光的光照系统。通过GI算法,渲染出光照效果更为真实的场景。

2. 直接光

  1. 从光源直接放出的光,通过Light组件实现。

  2. Type类型:
    Directional Light(平行光):平行发射光线,可以照射场景里所有物体,和位置无关,模拟太阳;
    Point Light(点光源):向四周发射,可以照射其范围里所有对象,模拟灯泡;
    Spot Light(聚光灯):在灯光位置向 圆锥区域发射光线,只在这个局域的物体才会受到光照,模拟探照灯;
    Area Light( 区域光):由一个面向一个方向发射光线,只有照射该区域内的物体,仅烘焙是有效,用在光线较为集中的区域。
    在这里插入图片描述

  3. Color:设置光的颜色,可以用于警报等;

  4. Culling Mask:可以设置光照射哪些物体,打勾的可以照射到。
    为某物体添加层layer,并选中,设置摄像机的Culling Mask的该层取消打勾,则该物体不受光照射;

  5. 阴影类型:
    硬阴影
    在这里插入图片描述
    软阴影
    在这里插入图片描述
    双面:对于一个当面的Plane平面,背面不可见,不会产生阴影,设置为双面这可以产生阴影;

  6. 设置单个物体的阴影:选中这个物体,在属性设置中,可以设置其是否有阴影和接收阴影。
    在这里插入图片描述

  7. 剔除远处的阴影,通过编辑–>Project Settings打开如下界面
    在这里插入图片描述
    可以通过设置质量的高低,设置场景效果,在其中的Shadows中可以设置,影子的剔除的距离等。
    3. 点光源介绍

    1. 在其球体范围内,可以照射;
      在这里插入图片描述
      3. 聚光灯光源介绍

      1.在其锥体范围内可照射,如手电筒,探照灯。
      在这里插入图片描述

3. 环境光

  1. 作用于场景内所有物体的关照,通过Environment Lighting 中的Ambient控制。
  2. Ambient Source 环境光源
    – Skybox 通过天空盒设置
    – Gradient 梯度颜色
    Sky天空颜色、Equator地平线颜色、Ground地面颜色
    – Ambient Color 纯色
    在这里插入图片描述

4. 反射光
在这里插入图片描述

5. 间接光

  1. .物体表面反射出来的光。
  2. 通过Light组件中的Bounce Intensity反弹强度控制。
  3. 可以通过Scene面板Irradiance模式查看间接光照。
  4. 只有标记Lightmaping Static 的物体才能产生间接反弹光照。
    在这里插入图片描述
    需要将不动的物体标记为静态的,即Lightmaping Static前打勾。
  5. 通过设置Scene为Emissive,即可查看间接光(能看见物体)。
    在这里插入图片描述
    在这里插入图片描述
    结果如下(设置为静态的可见):
    在这里插入图片描述

5.Realtime GI(实时GI)

  1. 所谓“实时”是指在运行期间任意的修改光源,而所有的变化可以实时更新。

  2. 操作步骤:
    –游戏对象设置为Lightmaping Static;
    – 启用Light 面板下的Precomputed Realtime GI
    – 点击Build(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)。

    在Preferences下可以设置GI缓存目录,unity会自动进行预计算。在这里插入图片描述
    –Realtime Resolution :实时计算分辨率
    – CPU Usage :CPU使用率,值越大渲染越高。

6.烘焙 GI

  • 烘焙Lightmap
    当场景包含大量物体,实时光照和阴影对游戏性能影响很大,使用烘焙技术,可以将光线效果渲染成贴图再作用到物体上模拟光影,提高性能。
  • 步骤:
    a.把不动的物体标记为静态。
    b. 设置模式为Baked
    在这里插入图片描述
  • 模式:
    Realtime:仅实时光照是起作用
    baked:仅烘焙模式起作用
    Mixed:烘焙与实时光照都起作用
    通过设置Scene为Baked Lightmap Culling可以查看烘焙贴图;

禁用光照后,贴图如下
在这里插入图片描述
通过设置Scene为Baked Lightmap Culling可以查看烘焙贴图;
在这里插入图片描述
结果:
在这里插入图片描述
也可以通过如下地方来查看实时GI和烘焙的贴图(Realtime LightMaps和Baked Lightmaps)。
在这里插入图片描述

7.光源侦测 Light Probes

  • 由于LightMapping只能作用与静态(Static)的物体,导致运动的物体与场景中的光线无法融合,显得不真实,可以添加一个Probe收集光影信息,然后对运动物体邻近的几个Probe进行插值,然后将光线作用到物体上。

  • 步骤(非静态物体):

    – 创建游戏对象 Light Probe Group
    – 添加侦测小球(小球数量要适量,可以人为添加)
    – 点击Bulid(或Auto自动修改光照效果)
    – 勾选需要侦测物体的Mesh Renderer 组件中的 Use Light Probes属性(我的为选择Blend Probes)。
    在这里插入图片描述
    小球布局位置,一般要包含需要侦测的物体。
    在这里插入图片描述
    如下图,小球为cube收集光影信息,通过黄色线上的小球来捕获光影信息,然后计算物体的光照信息。
    在这里插入图片描述
    附:
    本文章学习至bilibili-没有文明的文明-史上最全Unity3D教程

发布了89 篇原创文章 · 获赞 8 · 访问量 8865

猜你喜欢

转载自blog.csdn.net/TxyITxs/article/details/104069445
今日推荐