OpenGL 360度光源

时间:2014-01-05 18:04:38

标签: c++ opengl lighting

我正在努力创造出朝各个方向发光的光。目前我正在使用该代码:

const GLfloat light1_ambient[] = { 0.5f, 0.5f, 0.5f, 1.0f };
const GLfloat light1_diffuse[] = { 0.3f, 0.3f, 0.3f, 1.0f };
const GLfloat light1_specular[] = { 0.2f, 0.2f, 0.2f, 1.0f };
const GLfloat light1_position[] = { 0.0f, 5.0f, 0.0f, 1.0f };

glLightfv(GL_LIGHT1, GL_AMBIENT, light1_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_diffuse);
glLightfv(GL_LIGHT1, GL_SPECULAR, light1_specular);
glLightfv(GL_LIGHT1, GL_SPOT_CUTOFF, 180.0f);
glLightfv(GL_LIGHT1, GL_POSITION, light1_position);

有地面代码:

for(int i = -50; i < 50; i++)
{
    for(int j = -50; j < 50; j++)
    {
        glBegin(GL_QUADS);
        glVertex3f(i,0,j);
        glVertex3f(i,0,j+1);
        glVertex3f(i+1,0,j+1);
        glVertex3f(i+1,0,j);
        glEnd();
    }
}

它给了我这个结果:http://i.stack.imgur.com/h1Jtc.png

看起来像180度的照明。 (当我将GL_SPOT_CUTOFF更改为90时,它看起来一样) 你知道我做错了什么,或者它应该如何运作?

好的,我知道我没有为地面设置正常的问题。

0 个答案:

没有答案