19,472
社区成员




//Ondraw中的画图程序
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat global_ambient[] = {0.5, 0.5, 0.5, 1.0};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);
glEnable(GL_LIGHTING);
glTranslatef(0.0f, -1.0f, -8.0f);
glPushMatrix();
GLfloat sun_position[] = { 0.0f , 6.0f , 0.0f , 1.0f };//这里是光源的位置,更改Z坐标可以移动光源,但是也只能照到场景的一半,Z<0 的部分是亮的
GLfloat sun_ambient[] = { 0.0f , 0.0f , 0.0f , 1.0f};
GLfloat sun_diffuse[] = { 0.8f , 0.8 , 0.8f , 1.0f };
GLfloat sun_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
glLightfv(GL_LIGHT0, GL_POSITION, sun_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, sun_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, sun_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, sun_specular);
glEnable(GL_LIGHT0);
//int numtriangles;
//numtriangles = m_3DObj.m_pFaces.size();
//GLfloat x_m, y_m, z_m, u_m, v_m;
GLfloat grid_ambient[] = { 0.5f, 0.5f, 0.5f, 1.0f };
GLfloat grid_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
GLfloat grid_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
glMaterialfv(GL_FRONT,GL_SPECULAR,grid_specular);
glMaterialfv(GL_FRONT,GL_DIFFUSE,grid_diffuse);
glMaterialfv(GL_FRONT,GL_AMBIENT,grid_ambient);
glMateriali(GL_FRONT,GL_SHININESS,1);
GLfloat x_grid, z_grid;//网格线
for(x_grid = -6.0f; x_grid < 6.0f; x_grid += 0.25f)
{
for(z_grid = -6.0f; z_grid < 6.0f; z_grid += 0.25f)
{
glBegin(GL_LINE_LOOP);
glVertex3f(x_grid, 0.0f, z_grid);
glVertex3f(x_grid, 0.0f, z_grid + 0.25f);
glVertex3f(x_grid + 0.25f, 0.0f, z_grid + 0.25f);
glVertex3f(x_grid + 0.25f, 0.0f, z_grid);
glEnd();
}
}
//glEnable(GL_BLEND);//这里是坐标轴线
//glEnable(GL_LINE_SMOOTH);
//GLfloat axis_ambient[] = { 0.8f, 0.0f, 0.8f, 1.0f };
//glMaterialfv(GL_FRONT,GL_AMBIENT,axis_ambient);
//glLineWidth(2.0f);
//glBegin(GL_LINES);
//glVertex3f(-20.0f, 0.0f, 0.0f);
//glVertex3f(20.0f, 0.0f, 0.0f);
//glVertex3f(0.0f, 0.0f, 20.0f);
//glVertex3f(0.0f, 0.0f, -20.0f);
//glEnd();
//glLineWidth(1.0f);
//glDisable(GL_LINE_SMOOTH);
//glDisable(GL_BLEND);
glPopMatrix();
SwapBuffers(wglGetCurrentDC());
glDisable(GL_LIGHTING);
glDisable(GL_LIGHT0);