US3S5L1——多种光源

多种光源

Unity当中一共支持四种光源类型:平行光,点光源,聚光灯,面光源。其中面光源只在烘焙中使用,这里不讨论

  • Shader 开发中常用的光源属性:位置、方向、颜色、强度、衰减

  • 对比平行光、点光源、聚光灯

    • 平行光:没有位置、没有衰减、只有方向、颜色、强度参与计算
    • 点光源:五个属性都需要考虑
    • 聚光灯:五个属性都需要考虑,并且计算最复杂,因为它的范围很特殊,需要进行更复杂的计算

平行光

  • 充当角色:太阳

    image

  • 照射范围:无限制

  • 特点:

    1. 它不存在固定的位置
    2. 它的重要属性只有方向(可以通过 Transform​ 的 Rotation​ 属性来改变方向)
    3. 它到场景中所有点的方向都是一样的
    4. 由于它没有位置,因此它没有衰减的概念(光的强度不会随着距离而发生变化)

image

点光源

  • 充当角色:灯泡、烛光 等

    image

  • 照射范围:有限

  • 特点:

    1. 它的光是由一个点发出的,向四面八方延伸的光
    2. 它的范围由参数 Range​ 来决定
    3. 它的位置由 Transform​ 中的 Position​ 来决定
    4. 它存在衰减,随着物体离点光源距离决定衰减强弱

image

聚光灯

  • 充当角色:探照灯、手电筒 等

    image

  • 照射范围:有限

  • 特点:

    1. 它的光范围由空间中的一块锥形区域定义
    2. 它的范围由参数 Range​ 和 Spot Angle​ 共同决定
    3. 它的位置由 Transform​ 中的 Position​ 来决定
    4. 它存在衰减,随着物体离聚光灯距离决定衰减强弱。
      但是它相对点光源衰减计算公式更复杂,因为需要点是否在锥形范围内

image