在 OpenGL 中启用光照后,线条和多边形中的颜色不再渲染。 (从 glColor3f()
创建颜色)
这是代码:
glLightModelf(GL_LIGHT_MODEL_AMBIENT, GL_TRUE);
GLfloat light1_position[] = { 5000, 2000, 1000,1 };
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, light1_position);
GLfloat light_ambient[] = { 1,1,1,1 };
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glEnable(GL_LIGHTING);
我究竟做错了什么?
最佳答案
在使用它们之前,您必须启用这些东西:
glEnable ( GL_LIGHTING);
glEnable( GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glShadeModel( GL_SMOOTH);
关于c++ - OpenGL闪电,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31961315/