OpenGL函数思考-glLight-阿里云开发者社区

开发者社区> 云计算> 正文

OpenGL函数思考-glLight

简介: OpenGL函数思考-glLight 函数原型:       void glLightf(GLenum light,GLenum pname,GLfloat param)      void glLighti(GLenum light,GLenum pname,GLint param)参数说明: light:指定光照。

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); // 启用光源
  

 

 
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章