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

feng0hua0 2009-04-07 04:34:42

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);


这样添加了光源之后,我绘制的图形(正方体,茶壶)原来的颜色都没了,都变成黑色和灰色了,能看出来光源效果,但是就是没有颜色...
...全文
1135 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaogaf 2011-11-15
  • 打赏
  • 举报
回复 2
使用以下函数将物体颜色转成默认材质:
glEnable(GL_COLOR_MATERIAL);
yvetterowe 2011-07-15
  • 打赏
  • 举报
回复
顶!同问~
zgl291 2010-09-26
  • 打赏
  • 举报
回复
老兄,我也遇到同样问题了。请问最终你是如何解决的?
taxi 2009-04-07
  • 打赏
  • 举报
回复
漫反射颜色没有设置,物体的材质也需要设置,另外GL_SHININESS是材质参数,用glMaterialf设置的。
打了灯光,就不需要物体的颜色信息了。
taxi 2009-04-07
  • 打赏
  • 举报
回复
漫反应没有设置,GL_SHININESS是材质参数,你还需要设置物体的材质。
beidoustudio 2009-04-07
  • 打赏
  • 举报
回复
GLfloat light_position[] = {0.0, 0.0,-1.0,1.0};
feng0hua0 2009-04-07
  • 打赏
  • 举报
回复

glEnable(GL_LIGHTING);
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_LIGHT0);

还是一样效果.光照效果有的,只是不能显示绘制的图形的颜色.
Hiiishe 2009-04-07
  • 打赏
  • 举报
回复
先开启光照,再设置光照吧。你的顺序可能有问题

OPENGL是状态机。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧