您的位置:首页 > 运维架构

OpenGL函数思考-glLight

2014-03-05 09:54 357 查看
函数原型:

void glLightf(GLenum light,GLenum pname,GLfloat param)

void glLighti(GLenum light,GLenum pname,GLint param)

参数说明:


[align=left]light:指定光照。光照的数目取决于实现,但至少可以支持8个光照。分别为GL_LIGHT1到GL_LIGHT8[/align]

pname:指定light的光照参数。可以选择的值有GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION,GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION,
and GL_QUADRATIC_ATTENUATION

[align=left]param:指定光源light的设置值指针[/align]

函数说明:

该函数设置单个光源的参数值.

GL_AMBIENT:指定环境光。
GL_DIFFUSE:指定漫射光。
GL_SPECULAR:指定镜面光。
GL_POSITION:指定光源位置。
GL_SPOT_DIRECTION:指定光照方向。
GL_SPOT_EXPONENT:指定聚焦光源指数。
GL_SPOT_CUTOFF:指定光源的最大散布角。
[b][b]GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION [/b][/b]:指定三个光照衰减因子。

注意:

只对光源进行设置、定位、甚至启用,光源都不会工作。除非我们启用GL_LIGHTING。

LightAmbient: array[0..3] of GLfloat = (0.5, 0.5, 0.5, 1.0); // 环境光参数

LightDiffuse: array[0..3] of GLfloat = (1.0, 1.0, 1.0, 1.0); // 漫射光参数

LightPosition: array[0..3] of GLfloat = (0.0, 0.0, 2.0, 1.0); //光源位置参数

glLightfv(GL_LIGHT1, GL_AMBIENT, @LightAmbient); // 设置环境光

glLightfv(GL_LIGHT1, GL_DIFFUSE, @LightDiffuse); // 设置漫射光

glLightfv(GL_LIGHT1, GL_POSITION,@LightPosition); // 设置光源位置

glEnable(GL_LIGHT1); // 启用一号光源 glEnable(GL_LIGHTING); // 启用光源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: