[OpenGL] glFrustum() a gluPerspective()
Ostatnio zmodyfikowano 2010-10-23 02:15
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 |
|
SeaMonster131 |
» 2010-10-22 21:59:42 |
|
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. |
|
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) |
|
VND |
» 2010-10-23 02:15:33 Najczęściej używa się gluPerspective - jest wygodna. Tak samo gluLookAt. |
|
« 1 » |