画出来的效果是这样的:
具体实现代码是这样的:
在OnDraw()中调用我自己的myDraw()函数.
void COpenGLView::Draw()
{
glClearColor(0.8f,0.8f,0.8f,0.0f);
gl_Triangles();
SwapBuffers(m_hDC);
glFlush();
}void COpenGLView::gl_Triangles()
{
glClearColor(1.0f,1.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//三角型旋转
glRotatef(rTri,0.5f,0.5f,0.5f);
glLoadName(RED_SPHERE);
glBegin(GL_QUADS);
glColor3f(0.5f,0.0f,1.0f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,1.0f,1.0f);//前面
glColor3f(0.5f,1.0f,0.0f);
glVertex3f(1.0f,1.0f,1.0f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);
glVertex3f(1.0f,1.0f,-1.0f);//右面
glColor3f(0.0f,0.5f,1.0f);
glVertex3f(1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);//后面
glColor3f(1.0f,0.5f,0.0f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);//左面
glColor3f(1.0f,0.0f,0.5f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(1.0f,1.0f,1.0f);
glVertex3f(1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);//上面
glColor3f(0.0f,1.0f,0.5f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);//底面 glEnd();
rTri += 0.15f;
}哪里错了吗?
具体实现代码是这样的:
在OnDraw()中调用我自己的myDraw()函数.
void COpenGLView::Draw()
{
glClearColor(0.8f,0.8f,0.8f,0.0f);
gl_Triangles();
SwapBuffers(m_hDC);
glFlush();
}void COpenGLView::gl_Triangles()
{
glClearColor(1.0f,1.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//三角型旋转
glRotatef(rTri,0.5f,0.5f,0.5f);
glLoadName(RED_SPHERE);
glBegin(GL_QUADS);
glColor3f(0.5f,0.0f,1.0f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,1.0f,1.0f);//前面
glColor3f(0.5f,1.0f,0.0f);
glVertex3f(1.0f,1.0f,1.0f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);
glVertex3f(1.0f,1.0f,-1.0f);//右面
glColor3f(0.0f,0.5f,1.0f);
glVertex3f(1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);//后面
glColor3f(1.0f,0.5f,0.0f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);//左面
glColor3f(1.0f,0.0f,0.5f);
glVertex3f(-1.0f,1.0f,1.0f);
glVertex3f(1.0f,1.0f,1.0f);
glVertex3f(1.0f,1.0f,-1.0f);
glVertex3f(-1.0f,1.0f,-1.0f);//上面
glColor3f(0.0f,1.0f,0.5f);
glVertex3f(1.0f,-1.0f,1.0f);
glVertex3f(1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,-1.0f);
glVertex3f(-1.0f,-1.0f,1.0f);//底面 glEnd();
rTri += 0.15f;
}哪里错了吗?
只有打开深度测试才能进行打开像素之间深度比较的功能,打开之后距离摄像机最近的像素会覆盖距离摄像机远的像素,距离远的像素会被丢弃