float blackColor[] = { 0.0f,0.0f,0.0f,1.0f };
float whiteColor[] = { 1.0f,1.0f,1.0f,1.0f };
float lightPos[] = { 0.0f,1.0f,0.0f,0.0f }; //设置方向光
glLightfv(GL_LIGHT0, GL_AMBIENT, whiteColor); //环境光
glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteColor); //漫反射光
glLightfv(GL_LIGHT0, GL_SPECULAR, whiteColor); //镜面反射光
glLightfv(GL_LIGHT0, GL_POSITION, lightPos); //设置光源
float blackMat[]= { 0.0f,0.0f,0.0f,1.0f };
float ambientMat[] = { 0.1f,0.1f,0.1f,1.0f };
float diffuseMat[] = { 0.4f,0.4f,0.4f,1.0f };
float specularMat[] = { 0.9f,0.9f,0.9f,1.0f };
glMaterialfv(GL_FRONT, GL_AMBIENT, ambientMat);
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuseMat);
glMaterialfv(GL_FRONT, GL_SPECULAR, specularMat);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
//默认为 glpolygonMode(GL_FRONT, GL_FULL); 填充模式
MSG msg;
while (true)
{
if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))//抓到消息 ,从所有地方,抓所有消息,无任何过滤,从消息队列顶端移除掉
{
//处理消息
if (msg.message == WM_QUIT)//判断是否是退出消息
{
break;
}
TranslateMessage(&msg);//转换消息类型
DispatchMessage(&msg);
}
//draw scene
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);//start to draw something
//
glNormal3f(0.0f, -1.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, -5.0f);
glNormal3f(0.0f, 1.0f, 0.0f);
glVertex3f(1.0, -1.0f, -5.0f);
glNormal3f(0.0f, 1.0f, 0.0f);
glVertex3f(0.0f, -1.0f, -10.0f);
glEnd(); //end