/视口一  左下角  
    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();     
      
    //绘制部分  

 

效果:

OpenGL笔记:多视口(Multiple Viewports)

相关文章:

  • 2021-08-06
  • 2021-12-04
  • 2022-12-23
  • 2021-10-31
  • 2022-12-23
  • 2021-08-24
  • 2022-02-06
猜你喜欢
  • 2022-12-23
  • 2022-03-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2021-04-07
  • 2021-05-07
相关资源
相似解决方案