19,469
社区成员
发帖
与我相关
我的任务
分享
#include <GL/freeglut.h>
void resharp(int w, int h)
{
glViewport(0, 0, w, h);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
//glMatrixMode(GL_MODELVIEW);
//glRotatef(60.0, 0.0f, 1.0f, 0.0f);
glutSolidCube(0.5/*, 20, 16*/);
glutSwapBuffers();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500, 600);
glutCreateWindow("test");
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
GLfloat matAmbient[] = { 1.0f, 0.0f, 0.0f, 1.0f };
GLfloat matDiff[] = { 1.0f, 0.0f, 0.0f, 1.0f };
//GLfloat ambientLight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; //环境光
GLfloat diffuseLight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; //散射光
GLfloat lightPosition[] = { 0.0f, 0.0f,-1.0f, 0.0f }; //光源位置
//为LIGHT0设置析质
glMaterialfv(GL_FRONT, GL_AMBIENT, matAmbient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, matDiff);
//现在开始调协LIGHT0
//glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight); //设置环境光分量
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight); //设置散射光分量
glLightfv(GL_LIGHT0, GL_POSITION, lightPosition); //设置光源在场景中的位置
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glutReshapeFunc(resharp);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}