## 23.7 方向光 前面几个小节,定义了一个 ,它包含了光源的位置、颜色、强度,这几乎是一个光源的所有参数了。 但是世界上的光源有很多种,又需要增加或减少一些参数来对其进行描述,下面列举一些: 方向光(Directional Light): 又叫平行光、定向光,光源发出的光子,几乎平行朝目标发射。一般将太阳光看做方向光。 点光(Point Light): 光源发出的光子,向四面八方发射,到一定距离后消亡。例如萤火虫的光。 聚光(Spot Light): 光源发出的光子,向一个方向发射,形成锥形桶。例如手电筒。 这一小节就先介绍方向光(Directional Light)。 方向光特点 方向光有以下特点: 与位置无关,仅有方向属性。 无衰减 方向光的实现 2.1 修改片段Shader 片...
## 23.7 方向光 前面几个小节,定义了一个 ,它包含了光源的位置、颜色、强度,这几乎是一个光源的所有参数了。 但是世界上的光源有很多种,又需要增加或减少一些参数来对其进行描述,下面列举一些: 方向光(Directional Light): 又叫平行光、定向光,光源发出的光子,几乎平行朝目标发射。一般将太阳光看做方向光。 点光(Point Light): 光源发出的光子,向四面八方发射,到一定距离后消亡。例如萤火虫的光。 聚光(Spot Light): 光源发出的光子,向一个方向发射,形成锥形桶。例如手电筒。 这一小节就先介绍方向光(Directional Light)。 方向光特点 方向光有以下特点: 与位置无关,仅有方向属性。 无衰减 方向光的实现 2.1 修改片段Shader 片段着色器,在上一节的 的基础之上,稍作修改。 将坐标改成方向,去除掉计算光线方向的操作,直接使用传入的方向即可。 2.2 设置UBO 结合上面提到的多种光源特性,对 进行整理,只保留颜色、强度基础属性,更新UBO的操作全放在子类。 新增 继承 。 在 计算光的方向,首先是给一个默认的方向 (0,0,...