OpenGL窗口中有多个垂直面板

时间:2011-05-27 02:12:32

标签: opengl

OpenGL是否可以将窗口分成多个垂直“面板”,以便每个窗口显示不同的形状集?

我希望在这些面板上同步水平轴,但垂直轴将完全独立(位置和比例)。

1 个答案:

答案 0 :(得分:5)

首先想到的是对glViewport()应用多个调用。您必须依次渲染每个垂直条带,然后将视口设置为渲染到下一个垂直条带并重复。我这样做是为了将屏幕分成两半并从两个不同的视点渲染场景,但没有理由要在第二个或第n个视口中渲染相同的场景。

所以我的{edited}代码看起来像这样:

glEnable(GL_SCISSOR_TEST);
...
// Draw the left scene
glViewport(0,0,halfWidth,fullHeight);
glScissor(0,0,halfWidth,fullHeight);
glClear(...);
glPushMatrix();
setLeftEyeModelView();
renderScene();
glPopMatrix();

// Draw the right scene
glViewport(halfWidth,0,halfWidth,fullHeight);
glScissor(halfWidth,0,halfWidth,fullHeight);
glClear(...);
glPushMatrix();
setRightEyeModelView();
renderScene();
glPopMatrix();