[ Srki_82 @ 08.08.2004. 16:12 ] @
Ne umem bas najbolje da radim s vektorima pa ne umem da napisem program da racuna koordinate za vUpVec.

Code:

D3DXVECTOR3 vEyePt( eX , eY , eZ );
D3DXVECTOR3 vLookatPt( lX , lY, lZ );
D3DXVECTOR3 vUpVec( uX, uY, uZ );
D3DXMATRIX matView;
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );


U svakom trenutku znam koordinate za vEyePt i vLookatPt. Do sad sam uvek imao kameru koja se nalazi na odredjenim koordinatama i gleda u odradjenu tacku pa sam na papiru nacrtao gde gleda kamera i gde bi trebao da bude vUpVec i na osnovu toga upisao vrednosti u programu za vUpVec, ali sad imam kameru koja se krece pa bi trebao da za svaku promenu racunam i vUpVec.
[ Nothingman @ 08.08.2004. 22:12 ] @
Nemam nameru da se pravim pametan, ali mislim da bi stvarno trebao da procitas neku dobru knjigu iz analiticke geometrije ako mislis ozbiljno da se bavis 3d programiranjem. Zivot ce ti biti mnogo laksi...
Posto vidim da si iz Srbije, mislim da lako mozes da dodjes do knjige koju je napisao Dusan Belajcic(zove se Analiticka geometrija, ili nesto slicno), knjiga je lepo napisana i trebala bi da ti bude sasvim dovoljna.
[ Srki_82 @ 08.08.2004. 23:09 ] @
Hvala na savetu. Upravo citam OpenGL Programming Guide - RedBook pa cu posle toga da pogledam tu ili neku slicnu knjigu.
[ Reljam @ 08.08.2004. 23:10 ] @
Ako ti se kamera trivijalno rotira, recimo samo oko y ose, i po 'malo' (<90 stepeni po x i z osama), onda mozes da izbegnes celu pricu tako sto namestis da ti up uvek bude (0, 1, 0).

Ako hoces da imas malo komplikovaniju kameru, onda ces morati sam da pratis gde ona gleda, i gde su joj 'gore' i 'desno'. Ispostavlja se da je najlakse da imas matricu za kameru koju u startu izgenerises pomocu D3DXMatrixLookAtLH i da onda u svakom sledecem frejmu tu matricu transformises matricom za rotaciju i pomeraj.

Znaci, u prvom frejmu uradis D3DXMatrixLookAtLH
U svakom sledecem izracunas matricu za pomeraj i za rotaciju i onda matricu kamere pomnozis sa ove dve. Time izbegavas ceo ovaj problem sa time sta je 'gore'. A uzgred budi receno, 'gore' ce biti drugi vektor (Y komponenta) u matrici.
[ Nothingman @ 09.08.2004. 11:25 ] @
Citat:

Hvala na savetu. Upravo citam OpenGL Programming Guide - RedBook pa cu posle toga da pogledam tu ili neku slicnu knjigu.


I ja sam bas juce poceo da citam Redbook i nakon treceg chaptera moram da primetim da je knjiga zanimljiva kao telefonski imenik...