.[ ČeskéHry.cz ].
Získání pozice kamery z modelview matice

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Poky



Založen: 29. 06. 2009
Příspěvky: 184
Bydliště: Písek / Plzeň

PříspěvekZaslal: 6. listopad 2011, 12:47:20    Předmět: Získání pozice kamery z modelview matice Odpovědět s citátem

Ahoj, mám takový (možná pro vás triviální) dotaz:

Jak z ModelView matice (OpenGL) získám pozici kamery, popř. jestli to vůbec nějak jednoduše jde. Díky za odpovědi.


Naposledy upravil Poky dne 9. listopad 2011, 18:44:33, celkově upraveno 1 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
michalferko



Založen: 29. 09. 2008
Příspěvky: 83

PříspěvekZaslal: 6. listopad 2011, 13:10:31    Předmět: Odpovědět s citátem

Invertuj ju a prenasob nou bod (0, 0, 0).

View matica transformuje objekty z world space do eye space (v ktorom je pozicia kamery (0, 0, 0)). Ked teda prenasobis bod (0, 0, 0, 1) inverznou maticou, dostanes poziciu kamery vo world space. Toto plati ak "Model" cast ModelView matice je identita, teda world space a object space su identicke. Pre sikovnejsiu pracu tuto maticu vzdy rozdelujem na dve - Model a View. Myslim, ze tak sa to robi aj v DirectX.
_________________
Moje minihry a ine projekty
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 6. listopad 2011, 13:15:44    Předmět: Odpovědět s citátem

tak pozicia kamery je posledny stlpec/riadok podla toho ci pouzivas DX/OGL ale toto je len pozicia relativne k modelu. world poziciu ale zistis len z view matice.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
costa



Založen: 10. 10. 2011
Příspěvky: 29
Bydliště: u hranic s malým 'h'

PříspěvekZaslal: 7. listopad 2011, 09:43:51    Předmět: Odpovědět s citátem

Pokud bys znal matici modelu, tak by to mělo jít..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Poky



Založen: 29. 06. 2009
Příspěvky: 184
Bydliště: Písek / Plzeň

PříspěvekZaslal: 7. listopad 2011, 12:14:13    Předmět: Odpovědět s citátem

Tak už jsem na to přišel a funguje to skvěle:

kód:
Vector3(-(modl.m[0] * modl.m[12] + modl.m[1] * modl.m[13] + modl.m[2] * modl.m[14]),
                        -(modl.m[4] * modl.m[12] + modl.m[5] * modl.m[13] + modl.m[6] * modl.m[14]),
                        -(modl.m[8] * modl.m[12] + modl.m[9] * modl.m[13] + modl.m[10] * modl.m[14]))
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna