Diese kein glViewport
hat und zieht richtig:einfachen Aufruf zu glViewport verursacht leeren Bildschirm
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0,0);
glBegin(GL_TRIANGLES);
{
glVertex3f( 0.0, 1, 0.0);
glVertex3f(-0.2, -0.3, 0.0);
glVertex3f( 0.2, -0.3 ,0.0);
}
Die Koordinaten der Eckpunkte sind alle innerhalb von -1 und 1, so habe ich ein Ansichtsfenster, die sie enthalten sollte:
glViewport(-1,-1,2.0,2.0);
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0,0);
glBegin(GL_TRIANGLES);
{
glVertex3f( 0.0, 1, 0.0);
glVertex3f(-0.2, -0.3, 0.0);
glVertex3f( 0.2, -0.3 ,0.0);
}
Sobald ich dies tue, ist der Bildschirm leer. Ohne das Ansichtsfenster scheint der Bildschirm in Einheiten zu zeichnen, so dass die Bildschirmbreite und -höhe 2 sind, wie das Demo-Dreieck zeigt. Ich kann auch etwas auf -1, -1 setzen und es befindet sich in der linken unteren Ecke, weshalb meine glViewport
auch die untere linke Koordinate ist. Was ist der offensichtliche Grund, dass nach dem Viewport nichts angezeigt wird?
Ich denke 'glOrtho' oder' glTranslatef' und 'glScalef' sind erwähnenswert. – lisyarus
Vielen Dank, wie sich herausstellen würde, dass mein Fehler auf ein Problem mit meiner vorhandenen Orthoprojektion mit GLKit unter OSX zurückzuführen ist. Ich habe eine neue Frage eröffnet. – johnbakers
@lisyarus Alle drei dieser Funktionen sind veraltet und im Kern-OpenGL nicht verfügbar. Sie verwenden eine Bibliothek wie GLM besser. –