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.html

    edit: 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 .. ~~


Anmelden zum Antworten