简述:
在之前的场地上绘制聚光灯
函数:
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);