读书人

OpenGL中添加了光源后,绘制的图形都显

发布时间: 2012-02-12 17:16:33 作者: rapoo

OpenGL中添加了光源后,绘制的图形都显示为黑色和灰色...

C# code
GLfloat light_specular[]={1.0, 1.0, 1.0, 1.0};    GLfloat light_shininess={50.0};    GLfloat light_position[] = {0.0, 0.0,1.0,1.0};//无穷远光源    //GL_AMBIENT ,GL_DIFFUSE , GL_SPECULAR     glLightfv (GL_LIGHT0,GL_SPECULAR, light_specular);    glLightf(GL_LIGHT0,GL_SHININESS, light_shininess);    glLightfv(GL_LIGHT0,GL_POSITION,light_position);    glEnable(GL_LIGHTING);    glEnable(GL_LIGHT0);


这样添加了光源之后,我绘制的图形(正方体,茶壶)原来的颜色都没了,都变成黑色和灰色了,能看出来光源效果,但是就是没有颜色...

[解决办法]
先开启光照,再设置光照吧。你的顺序可能有问题

OPENGL是状态机。
[解决办法]
GLfloat light_position[] = {0.0, 0.0,-1.0,1.0};
[解决办法]
漫反应没有设置,GL_SHININESS是材质参数,你还需要设置物体的材质。

[解决办法]
漫反射颜色没有设置,物体的材质也需要设置,另外GL_SHININESS是材质参数,用glMaterialf设置的。
打了灯光,就不需要物体的颜色信息了。

读书人网 >VC/MFC

热点推荐