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设置的。
打了灯光,就不需要物体的颜色信息了。