perspektivenkorrektur mit sdl + opengl
-
in den nehe tutorials gibt es in lektion 1 die zeile
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
(glut?)
mit der anhand der gegebenen höhe und breite des fensters die perspektive erneut berechnet wird.
was wäre das äquivalent dazu unter sdl?
ich frage deshalb, da bei glTranslatef(x,y,z) bei den z werten nur werte zwischen 1.0 und -1.0f funktionieren, ansonsten bleibt alles dahinter oder davor gezeichnete schwarz (also nicht sichtbar) was mich irgendwie vermuten lässt das was mit dem depth buffer oder der perspektive nicht stimmt.
mfg
edit:wenn ich gluperspective benutze bringt es auch nichts, das dreieck verschiebt sich nicht wenn ich mit glTranslatef einen z wert zwischen 1.0 und -1.0 wähle sondern bleibt genauso nah, genauso groß. wenn ich nen wert drunter oder drüber nehem verschwindet es einfach
der code ist hier:
http://www.rafb.net/paste/results/xxNm8W35.htmledit: gelöst
-
gluPerspective() hat nix mit SDL zu tun. Falls dir die Funktion nicht gefällt, probier glFrustum(), aber der Befehl ist nicht wirklich leichter zu benutzen.
BTW: Zum besseren Verständnis solltest du mal im Redbook nachschlagen (findest du bei OpenGL.org).
-
Wenn SDL_Surface* screen dein Bildschirm-Surface ist, so kannst du mit
screen->w
die Breite (deine Variable width)
und mit
screen->h
die Höhe (deine Variable height)
deines Surfaces herausfinden.Ich nehme an, das ist es, was du wissen wolltest?
-
wolfgke schrieb:
Wenn SDL_Surface* screen dein Bildschirm-Surface ist, so kannst du mit
screen->w
die Breite (deine Variable width)
und mit
screen->h
die Höhe (deine Variable height)
deines Surfaces herausfinden.Ich nehme an, das ist es, was du wissen wolltest?
nein, ganz und gar nicht. das problem hat sich übrigends mittlerweile gelöst.
-
nehe.gamedev.net -> article -> Glut/glFustrum .. ~~