Ich versuche, zwei Blickfenster in meinem Fenster zu erstellen: eine Hauptansicht im Vollbildmodus und eine kleinere Ansicht in der oberen linken Ecke. Ich habe das Problem recherchiert und mir die Lösungen angesehen: Ich verwende glScissor() und glViewport(), lösche mein Tiefenpufferbit, aktiviere mein Tiefenpufferbit und rendere nur einmal (nach einer Schleife). Aber offensichtlich fehlt mir etwas. Hier ist mein Code. Vielen Dank im Voraus.
Bearbeiten: Link zu den Screenshots: http://imgur\[dot\]com/a/sdoUy Grundsätzlich flackert das Mini-Blickfenster oben links, verschwindet und erscheint sehr schnell wieder.
void viewports() {
float width = wWidth;
float height = wHeight;
for (int i = 0; i < 2; i++) {
glClearColor(.392,.584,.929,0.0f);
if (i == 0) {
//Hauptansicht
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,(GLsizei)width,(GLsizei)height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,(GLfloat)width/(GLfloat)height,1.0,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
keyOp();
camera();
} else if (i == 1) {
glScissor(0,height - height/3,(GLsizei)height/3,(GLsizei)height/3);
glEnable(GL_SCISSOR_TEST);
glClear(GL_DEPTH_BUFFER_BIT);
glViewport(0,height - height/3,(GLsizei)height/3,(GLsizei)height/3);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,1,1.0,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,40,-15,0,-1,-15,1,0,0);
glDisable(GL_SCISSOR_TEST);
}
renderScene();
}
}