1 Phong反射模型
这一章节,我们将实现Phong反射模型。
环境光的部分:先不解释,后面来填这个坑;
漫反射光和高光反射光部分:
入射光(光源)的辐射率;
入射光和表面法向量的夹角的余弦值;
可以理解为漫反射的BRDF;
可以理解为高光反射的BRDF;
2 程序的结构
首先定义一个图形(比如,球);然后给球设置材质;材质的物理属性决定了其对应的反射模型;各种反射模型则需要用到其对应的BRDF值。
逆向来看,则是:BRDF设置给反射模型;反射模型设置给材质;材质设置给图形。
2.1 BRDF
漫反射的BRDF:
高光反射的BRDF:
2.2 BRDF设置给反射模型
2.3反射模型设置给材质
这个主要体现在材质的着色成员方法中。
2.4材质设置给图形
在初始化的build()中:
3 对此测试图形
Blinn-Phong反射模型:ka = 0.25;kd = 0.75; ks = 0.1; exp = 10;
Blinn-Phong反射模型:ka = 0.00;kd = 0.75; ks = 0.1; exp = 10;
Blinn-Phong反射模型:ka = 0.25;kd = 0.5; ks = 0.1; exp = 10;
Blinn-Phong反射模型:ka = 0.25;kd = 0.25; ks = 0.1; exp = 10;
Blinn-Phong反射模型:ka = 0.1;kd = 0.25; ks = 0.1; exp = 10;
Blinn-Phong反射模型:ka = 0.1;kd = 0.25; ks = 0.25; exp = 10;
Blinn-Phong反射模型:ka = 0.1;kd = 0.25; ks = 0.5; exp = 10;
Blinn-Phong反射模型:ka = 0.1;kd = 0.5; ks = 0.25; exp = 10;
ka = 0.1;kd = 0.5; ks = 0.25; exp = 20;
4 其他说明
完整的代码,参考:http://download.csdn.net/detail/libing_zeng/9757762
Referrance
[1]. Kevin Suffern, Ray Tracing from the GroundUp, A K Peters Ltd, 2007.