光照效果的学习:
理论知识:Opengl把光照系统分为三个部分=> 光源、材质、光照环境。
光源的设置:
glLightfv(param1, param2, param3);
param1: 要设置哪个光源的属性; (GL_LIGHT0, GL_LIGHT1, GL_LIGHT2 ... , GL_LIGHT8 ...)
param2: 设置光源的哪个属性; (GL_POSITION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF //适合位置光源
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION //适合位置光源
)
param3: 设置光源属性的值; (light_postion, light_ambient, light_diffuse, light_specular )
说明:(Ⅱ,Ⅲ,Ⅳ 待绪)
Ⅰ light_position:
GLfloat light_position[] = {x, y, z, w};
① w==0时 方向光源 => 光源在无线远处;
② w!=0时 位置光源 => 光源位置(X/W, Y/W, Z/W);
Ⅱ light_ambient:
Ⅲ light_diffuse:
Ⅳ light_specular:
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_DEPTH_TEST);
材料的设置:
glMaterialfv(param1, param2, param3);
param1: 指定哪一面的属性; (GL_FRONT, GL_BACK);
param2: 设置材质的那个属性; (GL_POSITION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR)
param3: 设置材质的属性值; (...);
光照环境的设置:
待续。