绘制聚光灯

简述:

在之前的场地上绘制聚光灯


函数:

1)glEnable(GL_LIGHTING);

开启光照


2)glLightfv函数

void WINAPI glLightfv(
  GLenum light,
  GLenum pname,
  const GLfloat *params
);

定义光束,

由几个参数构成

第二个参数pname是包括以下几个默认参数设置:

GL_AMBIENT  环境光  默认是数组(0.0, 0.0, 0.0, 1.0)

GL_DIFFUSE  散射光  默认是数组  (0.0, 0.0, 0.0, 1.0)

GL_SPECULAR  反射光  默认是数组 (0.0, 0.0, 0.0, 1.0)             

GL_POSITION  光源位置

GL_SPOT_DIRECTION  光束的方向


代码:

//LIGHT0
GLfloat spotlight0Position[]={20.0f,8.0f,12.0f,1.0f}; //聚光灯位置
GLfloat spotlight0Direction[]={2.8f,-1.0f,1.4f};  //聚光灯方向
GLfloat ambientLight[]={0.5f,0.5f,0.5f,1.0f};  //环境光
GLfloat diffuseLight[]={0.5f,0.5f,0.5f,1.0f};  //散射光

//现在开始调协LIGHT0
glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight); //设置环境光分量
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight); //设置散射光分量
glLightfv(GL_LIGHT0,GL_POSITION,spotlight0Position); //设置光源在场景中的位置
//聚光灯属性
glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,90.0f);  //光柱张角80度
glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,30.0f); //聚光灯指数
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spotlight0Direction); //聚光灯方向

//启用聚光灯0
glEnable(GL_LIGHT0);





















你可能感兴趣的:(绘制聚光灯)