GLSL编程,是直接使用GPU进行图像的渲染,glsl是一个GPU编程的库。
这次作业分为三个部分:1.phong模型,2.位移映射(displacement mapping),3.环境映射(environment mapping)
1.phong模型:phong模型物体的一种着色模型,比如说,一个物体是红色的,但是晚上看见的效果和白天看见的效果完全不一样,这是因为环境光和反射的效果。所以phong模型考虑了三种反射:ambient reflect, diffusion reflect, specular reflect。
ambient reflect是物体本身的颜色;
diffusion reflect是慢反射;
specular reflect是镜面反射;
phong模型的公式:I = Ma * Ia + (L dot N) * Md * Id + pow((R dot V) ,shine) * Ms * Is;
Ma, Md, Ms是物体的对应反射的三种颜色;
Ia,Id,Is是物体的属性, 表示反射的能力;
L:从物体该点到光源的向量;
N:该点的法向量;
V:从该点到眼睛(或者观察者,照相机。。。一个意思)的向量;
R:是光线在该点的发射光线
shine:是一个给定的常量,表示材料的反射效果。
对于物体表面的某点pos,Ma,Md,Ms,Ia,Id,Is已知,每一点的法向量N已知,眼睛的位置C已知,shine已知,光源的位置lightsource已知;
V = C - pos;
L = lightsource - pos;