|
|
我建立了2个光源如下
GLfloat LightAmbient[]= { 0.8f, 0.8f, 0.0f, 1.0f }; //环境光参数
GLfloat LightDiffuse[]= { 0.8f, 0.8f, 0.0f, 1.0f }; //漫射光参数
GLfloat LightSpecular[]= { 1.0f, 1.0f, 1.0f, 1.0f }; //镜面反射光参数
GLfloat LightPosition[]= { 00.0f, 9.0f,-1000.0f, 1.0f}; //光源位置
glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); //设置环境光
glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse); //设置漫射光
glLightfv(GL_LIGHT0, GL_POSITION,LightPosition); //设置光源位置
GLfloat LightAmbient1[]= { 0.1f, 0.1f, 0.1f, 0.1f }; //环境光参数
GLfloat LightDiffuse1[]= { 0.1f, 0.1f, 0.1f, 0.1f }; //漫射光参数
GLfloat LightPosition1[]= { 00.0f, 9.0f,1000.0f, 1.0f }; //光源位置
glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); //设置环境光
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); //设置漫射光
glLightfv(GL_LIGHT1, GL_POSITION,LightPosition); //设置光源位置
然后每次绘制的时候有如下判断,按输入起用某个光源
if(m_bDay)
{
glDisable(GL_LIGHT1);
glDisable(GL_LIGHTING);
glEnable(GL_LIGHT0); // 启用光源
glEnable(GL_LIGHTING);
}
else
{
glDisable(GL_LIGHT0);
glDisable(GL_LIGHTING);
glEnable(GL_LIGHT1); // 启用光源
glEnable(GL_LIGHTING);
}
但是无论m_bDay的输入如何,都是GL_LIGHT0在起作用,呵,就是那个偏黄色的光在照。
请问,我这样 “定义光源”、“使用光源”有错误的地方吗?
错误在哪呢?
有更好的方法用2个光源吗?
先谢谢了! |
|