设为首页 加入收藏

TOP

OpenGL实现立体显示(二)
2014-11-24 00:35:28 来源: 作者: 【 】 浏览:10
Tags:OpenGL 实现 立体 显示

glPushMatrix();
{
glRotatef(spin, 0.0, 1.0, 0.0); glutSolidTeapot(1.0);
}
glPopMatrix();
}
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glFlush();


//---------------------------------------------------------------------------------------------
//Right Viewport
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glGetFloatv(GL_PROJECTION_MATRIX, matrix);
glLoadIdentity();
glMultMatrixf(RightProjectMatrix);
glMultMatrixf(matrix);


glMatrixMode(GL_MODELVIEW);
glPushMatrix();
{
glGetFloatv(GL_MODELVIEW_MATRIX, matrix);
glLoadIdentity();
glMultMatrixf(RightModelViewMatrix);
glMultMatrixf(matrix);

glColorMask(0.0, 1.0, 1.0, 1.0);
glClearDepth(1.0);
glClear(GL_DEPTH_BUFFER_BIT);
/**//*
* 物体的坐标Vp
* 变换到屏幕坐标:Vp'= RightProjectMatrix×Mp× RightModelViewMatrix×Mv × Mr×Vp
*/
glPushMatrix();
{
glRotatef(spin, 0.0, 1.0, 0.0);
glutSolidTeapot(1.0);
//glutSolidSphere(1.0, 20, 5);
}
}
glPopMatrix();


glMatrixMode(GL_PROJECTION);
glPopMatrix();
glFlush ();


glutSwapBuffers();
}


void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
//投影矩阵:Mp
gluPerspective(fovy, (GLfloat)w/(GLfloat)h, 1.0, 20.0);
}
void spinDisplay(void)
{
spin = spin + 1.0;
if (spin > 360.0)
spin = spin - 360.0;
glutPostRedisplay();
}


int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(spinDisplay);
glutMainLoop();
return 0;
}


相关阅读


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android NDK使用GCC4.7 toolchain.. 下一篇Android NDK空指针导致CRASH的问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: