我问的这么多问题你都一一回答,真的非常感谢!!
只是不知道放在那里?或是开启什么GL属性才有用?我直接放到这里还是不行:
void C3DEng::InitOpenGLSetting()
{
glShadeModel(GL_SMOOTH);
// 定义光源的位置坐标
GLfloat light_position[] = {0.0, 0.0, 1.0, 0.0};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
// 定义环境反射光
GLfloat light_ambient[] = {0.0, 0.0, 0.0, 1.0};
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
// 定义漫反射光
GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
// 定义镜面反射光
GLfloat light_specular[] = {1.0, 1.0, 1.0, 1.0};
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
// 定义光模型参数
GLfloat light_model_ambient[] = {0.4f, 0.4f, 0.4f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, light_model_ambient);
GLfloat local_view[] = {0.0};
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view);
// GL_LIGHTING有效
glEnable(GL_LIGHTING);
// GL_LIGHT0有效
glEnable(GL_LIGHT0);
// 允许深度比较
glEnable(GL_DEPTH_TEST);
// 激活深度比较
glDepthFunc(GL_LESS);
// 设置蓝色背景
glClearColor(0.1f, 0.1f, 0.5f, 0.0f);
// 权衡图像质量与绘制速度
glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glEnable(GL_COLOR_MATERIAL);
//这是我加的,此函数在初始化OpenGL时执行
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 128);
}