如何实现2个视口之间的干净分离?多个视口干扰
我有2个视口,一个需要全屏长度,另一个需要小于或等于屏幕尺寸的四分之一(我希望它是一个地图)。问题在于它们不断干扰,我从小的视口看到内容。
这里的display()
功能我用:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_LIGHTING);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0,0,newWidth,newHeight);
gluPerspective(45,(float)newWidth/(float)newHeight,0.2,500);
//setup view
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
camera.render(crntMode, radiusNew);
//ground
glColor3f(0.5,0.5,0.5);
draw_ground(50,50,2,2,-2);
...
...
...
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(newWidth/2, newHeight/2, newWidth/2, newHeight/2);
gluPerspective(45,(float)newWidth/(float)newHeight,0.2,500);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
camera.render(mini_map, radiusNew);
//ground
glColor3f(0.5,0.5,0.5);
draw_ground(50,50,2,2,-2);
...
...
...
//swap buffers
glutSwapBuffers();
两个视摄像机后面的字符,一个从第三人称视角,从上了另外一个。可能很难看到,但是迷你地图视口的背景干扰了大型地图(大型地图几乎作为迷你地图的背景)。有时,大视口覆盖小视口。
“*问题是他们不断干扰*”以什么方式?这究竟如何体现?你分别画什么样的东西? –
添加了屏幕截图。我正在捕获同样的东西,但使用不同的相机位置。 –
我想说的是,小型视口需要始终处于顶峰。就我而言,我从大视口中抽出的墙壁覆盖了较小的一个。 –