GLSL着色语言的学习(二)光照模型

来源:互联网 发布:期货大盘软件 编辑:程序博客网 时间:2024/05/22 00:22

1.一般构造图形的四个步骤

(1)三维建模构造物体在场景中的几何结构(结构)

(2)转换成二维(投影)

(3)确定场景中可见面(消隐)

(4)计算可见面的颜色(光照)

2.光照知识

在这里需要补充一下物理、光学的知识。

物体的颜色取决于该物体对可见光的某种波长的吸收情况,显现的是该波长的互补光的颜色。 

全部吸收,就是不反射,就是黑色

全部反射,就是不吸收,就是白色

下面的图就是互补色对照表,比如吸收一端,反射另一端


当光照到物体表面时,会产生反射光和透射光,他们的强度决定了物体表面的亮暗程度。而这些光中所含不同光的波长的比例就决定了物体表面的颜色。要计算这些波长的比例,在光学中和计算机图形学中还不一样。光学中的计算就略过了,计算机图形学中就用光照模型

3.简单的光照模型,(光照模型有好多,连接在此。这里直说phong光照模型)

假设物体不透明,那物体表面的颜色仅由反射光(环境反射、漫反射、镜面反射)决定。


1. 环境光Ambient Light
环境光不需要进行特殊的物理计算,即直接将光源中的环境光部分与材质中的环境光部分相乘,其结果适用于物体上的任一顶点。

2.漫反射光(Diffuse light)
光照射在物体表面后,其反射光沿随机方向均匀的分布,即"漫反射”。反射光的强度与光照方向与表面法线的夹角theta相关。由于反射光方向随机,因此该部分的计算与观察点无关,而只与光线方向与法线相关。

3.镜面反射(Specular light)
phong光照模型总的公式:I = I(ambient) + I(diffuse) + I(specular)
I(ambient) = Ka*Ia
I(diffuse) = Kd*Id * (N dot L)    镜面反射光是由法线和光照方向决定
I(specular) = Ks * Is * (V dot R)n   高光是由视角向量和发射向量决定的
Ka ,Kd ,Ks 分别环境,漫射和镜面光照的系数。la, Id, ls分别环境,漫射和镜面光照的强度。N,V,R分别为法向量,视向量和反射向量。 n是镜面反射系数。


0 0