opengl 光照 和材质的问题。。。

noein115 2010-06-03 07:12:51
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);/
GLfloat _ambient[]={1,1,1,0};//环境光
GLfloat _diffuse[]={1,1,1,0};//漫反射光
GLfloat _specular[]={0,0,0,0};//镜面光
GLfloat _position[]={0,0,1000,0}; //光源位置坐标


GLfloat mat_ambient[]={1,0,0,0};
GLfloat mat_diffuse[]={1,0,0,0};
GLfloat mat_specular[] = {0,0,0,1};
GLfloat mat_shininess[]={100};

GLfloat ambientLight[]={0.2,0.2,0.2,1};

glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS, mat_shininess);

glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight);

glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_CONTROL);

glLightfv(GL_LIGHT0,GL_AMBIENT,_ambient);//环境光
glLightfv(GL_LIGHT0,GL_DIFFUSE,_diffuse);//漫反射光
glLightfv(GL_LIGHT0,GL_SPECULAR,_specular);//镜面光
glLightfv(GL_LIGHT0,GL_POSITION,_position);//光源位置坐标


环境/漫反 镜面 和 材质的 环境光 漫反 镜面
混乱了。。。不知道怎么下手

总是 一片 红 要么一片绿 或者旋转时 一会儿一片红 一会儿一片绿

如果要是 设置 一个 绿色的球 白色光照到上面 有立体感 该怎么设置 光照的 环境/漫反 镜面 和 材质的 环境漫反 镜面 ?
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dukelee 2010-06-03
  • 打赏
  • 举报
回复
GLfloat mat_ambient[]={1,0,0,0};
GLfloat mat_diffuse[]={1,0,0,0};
GLfloat mat_specular[] = {0,0,0,1};
GLfloat mat_shininess[]={100};
你设置的材质是红色和黑色,可以都设置成0,1,0,镜面材质也设置成0,1,0
朝向光源的会绿色更多一点
GL_LIGHT_MODEL_COLOR_CONTROL是和纹理有关的光照计算,好像1.2以上才支持,而且和显卡有关
yidasoft 2010-06-03
  • 打赏
  • 举报
回复
不懂,帮顶!
noein115 2010-06-03
  • 打赏
  • 举报
回复
另外我下了个glext.h放到 includes里

怎么还是出现 “GL_SEPARATE_SPECULAR_CONTROL”: 未声明的标识符 。。。。?

19,468

社区成员

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

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