Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[OpenGL] glFrustum() a gluPerspective()

Ostatnio zmodyfikowano 2010-10-23 02:15
Autor Wiadomość
dmx81
Temat założony przez niniejszego użytkownika
[OpenGL] glFrustum() a gluPerspective()
» 2010-10-22 20:38:57
kolejny temat z open gl :P jak tylko mam czas, to go męcze - no i bawie sie w ruch kamera po scenie miedzy narysowanymi obiektami - tu napotkalem na problem, poniewaz uzywajac pierwszej wymienionej w tytule funkcji, posuwajac sie po osi x majac obiekty przed soba, po chwili powinny mi zniknac z widoku, jednak tak sie nie dzieje, one na chwile znikaja, po czym pokazuja sie znowu nieco oddalone i wracajac na srodek ekranu (az z nikna ze sceny) i robi to wrazenie, jakbym poruszal sie jakims wielkim łukiem wokol tych obiektow, co mi wcale nie odpowiadalo, podobnie jak sie przyblizylem miedzy 2 linei obiektow, to ciezko bylo wyczuc, czy dobrze sie ustawiam, aby przejsc pomiedzy nimi, bo jakos "nienaturalnie" sie ustawialy, wychylaly jeden za drugim

rozwiazanie przyszlo z druga wymieniana funkcja - dziala ona duzo "naturalniej" i wygodniej sie ja stosuje, ale chcialem zapytac, co z ta pierwsza funkcja, czy tam obowiazuja inne reguly rzutowania? bo wole poznac wszytskie funkcje, niz je omijac
P-23172
SeaMonster131
» 2010-10-22 21:59:42
Wole DirectX'a i dlatego sie nie interesuje OpenGL ale znalazłem coś tutaj na ten temat:
glFrustum()
gluPerspective()
;)
P-23174
VND
» 2010-10-23 00:19:52
Po to są dwie, że właśnie w różny sposób tworzą macierz rzutowania.
W glFrustrum parametry zNear i zFar (płaszczyzny odcięcia) definiują także kąt widzenia, czyli to co podajesz jako pierwszy parametr funkcji gluPerspective.
Jeśli zNear jest równe np: 30 to obiekty o wsp. z większych od -30 nie zostaną wyświetlone pomimo tego, że znajdują się między obserwatorem a ekranem. Dzieje się tak bo znajdują się przed płaszczyzną odcięcia zdefiniowaną przez zNear. 
Ustawienie nieprawidłowych wartości zNear,zFar powoduje efekt "rybiego oka", bardzo szeroki kąt widzenia.
Dlatego przemieszczając się po prostej mamy wrażenie poruszania się po łuku.

W gluPerspective kąt widzenia i płaszczyzny odcięcia są rozdzielone, nie mają na siebie wpływu.
Drugi parametr (aspect) powinien wynosić szerokość/wysokość okna jaką ustawiłeś w glViewport.
W przeciwnym wypadku obraz będzie zniekształcony.
P-23176
dmx81
Temat założony przez niniejszego użytkownika
» 2010-10-23 01:52:24
a czy ktoras jest bardziej popularna(powszechnie czesciej stosowana)? czy to raczej zalezy tylko od programisty (bo dla mnie poki co duzo lepiej operuje sie na gluPerspective laczac gluLookAt - do przemieszczania kamery, chociaz z tym tez slyszalem ze mozna zastapic przez translatef i rotatef)
P-23177
VND
» 2010-10-23 02:15:33
Najczęściej używa się gluPerspective - jest wygodna. Tak samo gluLookAt.
P-23178
« 1 »
  Strona 1 z 1