A gluLookAt függvény megértése

Üdv!

Van nekem ez a kódom: http://pastebin.com/ddkCUJu3.

A feladat az, hogy kirajzoljak egy kockát, benne egy gömbbel. A gömbnek mozognia kell a kockán belül és visszapattannia a falairól. Ez volt a könnyű része.Na most bele kellene programozni kétféle kameraállást. Amikor megláttam a gluLookAt függvényt azt hittem sínen vagyok, nem lesz túl nehéz dolgom. Kér három vektort, egyik megadja a kamera pozícióját, a második hogy merre néz a kamera, a harmadik pedig hogy merre néz a kamera teteje. Elsőre egyszerűnek tűnt, de csak nem akarja az elvárt eredményt produkálni.

A kockám élei 1 egység szélesek, a középpontja pedig a (0, 0, 0) pontban helyezkedik el. A következő kódrészlettel a kamerát elhelyezem a kocka középpontjába úgy, hogy az csúcsra nézzen:


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
gluLookAt(0, 0, 0, 0.5, 0.5, 0.5, 0, 1, 0);
draw_sphere(&sphere);
draw_cube(&cube);
glPopMatrix();

Először is azt feltételezném hogy a kamera távolságától függ a megfigyelt objektum mérete, de sajnos nem így van, pedig ez lenne kívánatos.

A fenti kód pedig ezt eredményezi: http://www.kepfeltoltes.hu/141016/cube_www.kepfeltoltes.hu_.jpg. Na most amit feltételeznék az az, hogy nem fogok feketeséget látni, hiszen a kamera a kocka belsejében van, tehát elvileg csak a kocka színes és áttetsző oldalait láthatja.

Abban szeretnék segítséget kérni hogy össze tudjam hozni úgy a dolgot mintha egy valódi, a kockában elhelyezett kamerán keresztül néznénk az eseményeket.

Őszintén szólva nem értek a grafikához, és nem is nagyon érdekel, de meg kellene csinálnom, szóval minden segítségért nagyon hálás lennék.

Hozzászólások

Nem állítottad be a perspektivikus projekciót, lásd gluPerspective függvény.

"Őszintén szólva nem értek a grafikához, és nem is nagyon érdekel, de meg kellene csinálnom, szóval minden segítségért nagyon hálás lennék."

3D-t nem lehet úgy programozni, hogy nem érted, és nem érdekel.

Nagyon köszönöm, esetleg erre ránézhetnél ha van pár perced. Őszintén szólva csak annyira akarok elmélyedni a dologban amennyire feltétlenül szükséges ahhoz, hogy valahogy túljussak a tantárgyon. Így mindig csak az éppen aktuális feladattal foglalkozom és a hozzá kapcsolódó problémákra akarok megoldást találni.