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

 

 
 
相关文章
|
C++ Windows
【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )(一)
【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )(一)
122 0
|
Windows
【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )(二)
【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )(二)
146 0
【OpenGL】七、桌面窗口搭建 ( 导入头文件 | 桌面程序入口函数 | 注册窗口 | 创建窗口 | 显示窗口 )(二)
OpenGL ES的函数解析和记录理解
昨天看了相关的视频,所以把openGL ES中需要用到的几个函数,随手记录一下。 1、glViewport(int x,int y,int  width,int height)   ————从设备坐标转到视窗坐标 X,Y————以像素为单位,指定了视口的左下角(在第一象限内,以(0,0)为原点的)位置。
1125 0
OpenGL函数思考-glLoadIdentity
OpenGL函数思考-glLoadIdentity 函数原型:      void glLoadIdentity(void) 函数说明:       OpenGL为我们提供了一个非常简单的恢复初始坐标系的手段,那就是调用glLoadIdentity()命令。
1004 0
OpenGL函数思考-glMatrixMode
OpenGL函数思考-glMatrixMode  函数原型:        void glMatrixMode(GLenum mode) 参数说明:        mode 指定哪一个矩阵堆栈是下一个矩阵操作的目标,可选值:    GL_MODELVIEW,对模型视图矩阵堆栈应用随后的矩阵操作。
1123 0
OpenGL函数思考-gluPerspective
OpenGL函数思考-gluPerspective 函数原型:       void gluPerspective(GLdouble fovy, GLdouble aspect,GLdouble zNear,GLdouble zFar) 参...
1102 0