OpenGL笔记:多视口(Multiple Viewports)
2010-12-01 16:09 bingcaihuang 阅读(2716) 评论(0) 编辑 收藏 举报/视口一 左下角
glEnable(GL_SCISSOR_TEST);
glScissor(0,0,m_width/2-1,m_height/2-1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_SCISSOR_TEST);
glViewport(0,0,m_width/2-1,m_height/2-1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)m_width/(GLfloat)m_height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制部分
//视口二 左上角
glEnable(GL_SCISSOR_TEST);
glScissor(0, m_height/2+1, m_width/2-1, m_height/2-1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_SCISSOR_TEST);
glViewport(0, m_height/2+1, m_width/2-1, m_height/2-1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)m_width/(GLfloat)m_height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制部分
//视口三 右下角
glEnable(GL_SCISSOR_TEST);
glScissor(m_width/2+1, 0, m_width/2-1, m_height/2-1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_SCISSOR_TEST);
glViewport(m_width/2+1, 0, m_width/2-1, m_height/2-1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)m_width/(GLfloat)m_height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制部分
//视口四 右上角
glEnable(GL_SCISSOR_TEST);
glScissor(m_width/2+1, m_height/2+1, m_width/2-1, m_height/2-1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_SCISSOR_TEST);
glViewport(m_width/2+1, m_height/2+1, m_width/2-1, m_height/2-1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)m_width/(GLfloat)m_height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//绘制部分
效果: