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

[OpenGL] Funkcja gluLookAt()

Ostatnio zmodyfikowano 2012-12-22 16:40
Autor Wiadomość
matka5432
Temat założony przez niniejszego użytkownika
[OpenGL] Funkcja gluLookAt()
» 2012-12-21 20:06:04
Witam, moj problem polega na tym, iz nie potrafie zrozumiec dzialania funkcji gluLookAt(). W kursie oczywiscie jest wszystko wytlumaczone, niby to rozumiem, ale gdy probowalem wykorzystac to w praktyce, dzialy sie dziwne rzeczy. Aby wytlumaczyc o co konkretnie chodzi posluze sie przykladem z kursu:
gluLookAt( eyex, eyey, eyez, centerx, centery, centerz, 0, 1, 0 );

Oczywiscie 3 pierwsze parametry sa dla mnie jasne, ale nie wiem o co dokladnie chodzi w 4, 5 i 6. Z tego co zrozumialem, kazdy z tych 3 parametrow (4-6) okresla kat ustawienia kamery wzgledem 3 prastych (x, y, z), ktore sa zawsze w srodku kamery. Czyli zwiekszenie/zmniejszenie zmiennej centerz spowoduje przechylenie kamery w dol albo w gore. Jednak po zmianie danego parametru, w przestrzeni okna tworza sie rozne znieksztalcenia, albo wyrenderowany szescian ma dziwny ksztalt "rownolegloboku?" (nie wiem jaka ma to nazwe w 3d), a przestrzen ma ksztalt kuli? Bardzo bym prosil, aby ktos wytlumaczyl mi te 3 parametry na przykladzie czlowieka na podworku (bedzie to kamera) i jakiegos obiektu (bedzie przedstawial moj szescian).
P-71579
Mrusio
» 2012-12-21 20:24:10
eyex, eyey, eyez to są współrzędne połorzenia obserwatora
centerx, centery, centerz - współrzędne punktu na który obserwator się patrzy

ustaw :
gluLookAt( 10, 0, 10,
0, 0, 0,
0, 1, 0 );

i umieść jakiś obiekt (np sześcian) w punkcie 0,0,0. Kamera będzie patrzeć na 0,0,0, ale będzie odsunięta o 10 w x i z
P-71582
matka5432
Temat założony przez niniejszego użytkownika
» 2012-12-21 20:38:55
Ehh... rozumiem juz o co chodzi... dzieki. Mam jeszcze jedno pytanie. Dlaczego po zmianie jednego z parametrow 4 - 6 znieksztalca sie szescian? Wyglada to takj, jakby przedi i tylni bok obracaly sie wzgledem osi x w taki sposob w jaki trzeba, ale nie przesuwaja sie wzgledem siebie w zadnen sposob. Jeden powinien byc wyzej, a drugi nizej. Czyli odcinki laczace przedni i tylni kwadrat w szescianie, zawsze sa rownolegle do osi Z, nie wazne czy patrze na szescian od gory, czy od przodu
P-71583
krzyk
» 2012-12-21 20:50:00
Użyłeś gluPerspective lub glFrustum?
Tutaj więcej info » Kurs OpenGL, C++Definiowanie sceny 3D lekcja
P-71585
kubawal
» 2012-12-22 11:25:44
Musisz użyć funkcji gluPerspective() na początku kodu.
P-71633
matka5432
Temat założony przez niniejszego użytkownika
» 2012-12-22 16:40:43
Ok juz dziala tak jak nalezy ;p dzieki
P-71666
« 1 »
  Strona 1 z 1