PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sichtpunkt in OpenGL


Ganon@work
2004-10-13, 11:10:46
Hi.

Ich habe ein (hoffendlich) kleines Problemchen bezüglich GLUT (mit GLUI-Erweiterung)/OpenGL/C++.
Und zwar bräuchte ich einen 2D-Sichtpunkt auf das Koordinaten-System von OpenGL bezogen auf das GLUT-Fenster.
Also das GLUT-Fenster hat jetzt z.B. eine Auflösung von 640x480 (veränderbar). Die Bildschirmkoordinate 0x0 (ich weiß jetzt nicht wo GLUT da anfängt. oben links oder unten links) sollte nun der OpenGL-Koordinate 0.0.0 entsprechen.

Der GLUT-Punkt 120x380 sollte nun ebenfalls der OpenGL-Koordinate 120.380.0 entsprechen. 640x480 sollte dann 640.480.0 in OpenGL sein.

Also praktisch die Standard-Mal-Funktionen von Java, Delphi, etc. so nachbilden, ohne großes umherrechnen.

Wenn ich dann z.B. eine Linie so ziehe (Auflösung 800x600):

glVertex3f(0.0,0.0,0.0)
glVertex3f(800.0,600.0,0.0)

dann sollte eine Linie quer über das Bild gehen von der einen bis zur anderen Ecke.

Was muss ich dafür machen, bzw. welche Befehle brauche ich?

Danke. :)

Gast
2004-10-13, 11:56:09
Ganz einfach mit:


glMatrixMode(GL_PROJECTION);
glOrtho(0, width, 0, height, 0, 1);


Infos: z.b. http://www.hmug.org/man/3/glOrtho.html

Allerdings ist das dann keine perspektivische Projection-Matrix mehr. D.h. weiter entfernte Objekte erscheinen nicht kleiner.
(wenn du das willst, geht mit Umwegen auch)

cu DerTod

Gnafoo
2004-10-13, 11:58:22
Hm war nicht eingeloggt :D
Was ich gerade noch editieren wollte:

Es kann sein, dass die Y-Achse verdreht ist (bin mir nicht sicher). Dann musst du einfach top und bottom vertauschen.

cya DerTod

Ganon@work
2004-10-13, 12:36:45
Hi.

Danke erst mal. Ich werd es ausprobieren, wenn ich zu Hause bin.

Tiefe brauche ich nicht. Soll alles 2D werden. :)

Ganon
2004-10-13, 18:17:28
Vielen Dank. :)

Funktioniert prächtig. :)