【OpenGL】聚光灯照明 Assignment | 5.3.7.Tiger Shading PS SC BL GLSL
Assignment:以下 OpenGL 基本照明公式的理解
(提交内容中必须清楚地描述公式中每个变量的含义)
自发光项
材质的自发光颜色,该项表示物体本身的发光颜色,而不依赖于任何光源。
环境光标项
:材质的环境光反射系数,表示材质在环境光下的反射能力。
:场景的环境光颜色,表示环境光对场景的贡献。
点光源贡献项
:表示场景中所有点光源的贡献总和。
:光源衰减系数,随距离变化的光强度衰减。
:聚光灯系数,表示光源能否为聚光灯
环境光部分
:第
个光源的环境光颜色。
漫反射部分
:法线向量,垂直于定点表面的单位向量
:从定点指向第
个光源的单位向量
:材质的漫反射系数。
:第
个光源的漫反射颜色。
镜面反射部分
:聚光灯衰减函数,表示光源在镜面反射中的贡献。
:半角向量,表示视线与光线方向的角平分线单位向量。
:材质的镜面反射高光指数,表示镜面反射的锐度。
:材质的镜面反射系数。
:第
个光源的镜面反射光颜色。
环境光照明
环境光表示场景中均匀分布的基础光照,独立于特定光源,通常模拟间接光源反射的光线。公式中环境光的计算为:
其中,材质的环境光反射系数 决定了材质在环境光下的反射成都,环境光颜色
则是场景中环境光的颜色。
漫反射光照明
漫反射光表示光线在粗糙表面均匀反射,其计算为:
其中,发现向量 与光线方向向量
的点积决定了光线与表面的角度,材质的漫反射系数
和光源的漫反射颜色
决定了漫反射光颜色和强度。
镜面反射光照明
镜面反射光表示光线在光滑表面反射。其计算为:
其中,聚光灯衰减函数 决定光源在镜面反射中的衰减程度,法线向量
与半角向量
的点积的高次方
决定了反射光的聚集程度,材质的镜面反射系数
和光源的镜面反射颜色
决定了镜面反射光的颜色和强度。
该公式通过将自发光、环境光、漫反射光和镜面反射光的贡献综合起来,精确地计算出每个顶点在场景中的最终颜色。理解和应用这个公式是实现真实感三维图形渲染的基础。
2. 以上公式中如何计算聚光灯效应值 ( ),请结合适当的图示和几何计算部分进行说明。
参考:示例代码5.3.7.Tiger Shading PS SC BL GLSL中的片段着色器是基于对本照明公式的理解。