OpenGL函数思考-glLight

来源:互联网 发布:62数据导出脚本 编辑:程序博客网 时间:2024/04/28 03:31

OpenGL函数思考-glLight

函数原型:

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

参数说明:

  • light:指定光照。光照的数目取决于实现,但至少可以支持8个光照。分别为GL_LIGHT1到GL_LIGHT8
  • 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
  • param:指定光源light的设置值指针

函数说明:

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

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

注意:

     只对光源进行设置、定位、甚至启用,光源都不会工作。除非我们启用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); // 启用光源
  

 

     
     
原创粉丝点击