gluLookAt w OpenGL

gluLookAt w OpenGL
TE
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 3 lata
  • Postów:61
0

Mam obiekt - kulę, która ma pozycję w przestrzeni (0,0,0) = (x,y,z).
Jak ustawiać kamerę?
W gluLookAt mam 3 rzeczy: eye(x,y,z), center(x,y,z), up(x,y,z).

Z tutoriali, które przeczytałem dowiedziałem się, że eye to widok, który odbieramy (widzimy), center to punkt (jaki punkt? nie wiem.), a up to wektor kamery.

Tak więc obiekt to 0,0,0, a chcę, aby kamera była 0,0,-50.
Jak to ustawić?
Próbowałem np. gluLookAt(0,0,-50,0,0,0,0,0,0) i nic. Widziałem czasami cosinusy, ale nie wiem po co one tam są. Mógłby ktoś mi wytłumaczyć na czym polega gluLookAt i jak to konfigurować, żeby obracać tą kamerą za pomocą strzałem/WASD?

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 4 godziny
0
Kopiuj
void WINAPI gluLookAt(
  // gdzie jesteś (pozycja):
  GLdouble eyex,
  GLdouble eyey,
  GLdouble eyez,

  // na co się patrzysz (pozycja):
  GLdouble centerx,
  GLdouble centery,
  GLdouble centerz,

 // gdzie jest góra (wektor jednostkowy):
  GLdouble upx,
  GLdouble upy,
  GLdouble upz
);

Przy czym

The up vector must not be parallel to the line of sight from the eye to the reference point.

spróbuj

Kopiuj
  gluLookAt(0,0,-50, 0,0,0, 0,1,0)

tak na dobry początek.

edytowany 2x, ostatnio: Azarien
TE
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 3 lata
  • Postów:61
0

O widzę obiekt xD Dzięki.

//Edit
A jak tym poruszać? Mam status klawiatury, że jak klika prawy/lewy to rusza, ale co ma ruszać? Eye czy center? Czy może up?

edytowany 1x, ostatnio: Temessis
EE
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 11 lat
  • Postów:152
0

Poczytaj o zwykłych przekształceniach euklidesowych. gluLookAt tylko ryje beret i ukrywa prostotę zwykłych operacji na macierzach.


"Robienie w Javie moge porównac do spuszczania wody w kiblu za pomoca wiadra z wodą przyniesioną ze studni zza 7 gór, którą się dodatkowo samemu wykopało łyżeczką do słodzenia herbaty."

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.