[OpenGL]Ortho -> Kooardinatenproblem
-
Hab ein kleines Problem mit dem Orthomode beo OpenGL. Mit dem folgenden Code ist immer die x-Achse nach unten und die y-Achse dezent nach links verschoben. Eigentlich müßte x=0 und y=0 genau oben in der linken ecke sein.
Wäre über Hilfe sehr Dankbar!void OGL_Engine::ENG_SetOrtho(int width, int height) { if(height == 0)height = 1; glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0f, width, height, 0.0f, -1.0f, 100.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }Mit dem zeichne ich dann zb die Objekte, aber sie sind nicht an der gewümschten Stelle:
glLoadIdentity(); glBegin(GL_LINES); glColor3ub(255, 0, 0); for(int x = 0; x <= ref.height; x = x + 100) { glVertex2d(0, x); glVertex2d(ref.width, x); } glEnd();Über width und height übergeb ich die Auflösung, zb 640x480 etc. Aber bei jeder Auflösung ist die Verschiebung drinne...???
ref.height und ref.width beinhaltet die Aktuelle auflösung
-
Versuch's mal so:
glOrtho(-0.375, width-0.375, height-0.375, -0.375, -1.0, 100.0);Davon ab macht es deinen Code nicht direkt deutlicher wenn du die Variable für die y-Koordinate x nennst... und dass ref.height & ref.width nicht mehr auf dem Schirm sind ist dir auch klar, ja?
-
Hab jetzt deins versuchst, aber die Wirkung ist die selbe wie bei mir -> Die Verschiebung ist immer noch genauso stark da wie vorher. Nur die auf 0 Gezeichnete Linie seh ich nicht mehr.
Das ref.height und ref.width auserhalb vom Bildschirm sind ist mir schon bewußt...Das ich x mit y vertauscht hab ist ein fehler meinerseits, hab vergessen ihn zu korrieren...