Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Mivoj
Založen: 11. 12. 2012 Příspěvky: 32
|
Zaslal: 11. prosinec 2012, 17:00:11 Předmět: Problém s rotací bodu okolo pozice kamery |
|
|
Ahoj jsem tu nový a potřeboval bych poradit jak na rotaci bodu tak, aby ten bod se po otočení kamery nacházel jakoby pod myší. Prostě potřebuji znát polohu toho bodu jako vektor. Pokud použiji modelovou matici Opengl tak to jde, ale z toho nezískám ten vektor. Když jsem zkoušel rotovat vektorem tak se ten bod otáčel okolo nulove pozice a ne okolo kamery. Zkoušel jsem to i přes matice, ale asi je pořádně ještě nechápu, protože mně to dobře rotuje jen bud v ose x nebo y, ale v obou najednou ne. Prostě chtěl bych vytvořit něco jako testování přímkou mezi bodem kamery a tím rotujícím bodem.
Díky za pomoc s mojím problémem. |
|
Návrat nahoru |
|
 |
TeaTime
Založen: 17. 06. 2011 Příspěvky: 264
|
Zaslal: 14. prosinec 2012, 12:40:43 Předmět: |
|
|
Jakou používáš konkrétně technologii? Odkud kam přesně chceš ten objekt dostat? Kolik toho víš o transformačních maticích? |
|
Návrat nahoru |
|
 |
Mivoj
Založen: 11. 12. 2012 Příspěvky: 32
|
Zaslal: 14. prosinec 2012, 21:32:57 Předmět: |
|
|
Ahoj díky za pomoc. No používám samozřejmě na posun a zjištování pozice vektory. Na rotaci matice 4x4 zatím no a moc to s nima neumím. Pak dále zkouším Quaterniony, ale ty chápu ještě mín. Dále používám klasické ještě transfomační matice opengl na vykreslení a pohyb. Tak jsem to tak nějak vyřešil. Sice to neni nejpřesnější ale funguje to, jinak pokud bys věděl o lepším řešení byl bych rád.
float mMatrix[16];
glGetFloatv(GL_MODELVIEW_MATRIX, mMatrix);
Vector3 rotujiciBod = pozKamery + vzdalenost * Vector3(-mMatrix[2],-mMatrix[6],-mMatrix[10]);
No měl jsem to sice k něčemu jínemu, ale kdybych věděl jak to funguje tak bych to použil dřív na mojem projektu jednoho simulátoru. Spíš to skládám a kopíruji z různých tutoriálu a zdrojáků než kdybych věděl jak to přesně funguje. Prostě to bastlím jak se dá. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 17. prosinec 2012, 09:53:15 Předmět: |
|
|
Máš na mysli otáčení kamery okolo nějakého bodu (pod myší), přičemž kamera se dívá na ten bod ...neboli "orbit"? _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Mivoj
Založen: 11. 12. 2012 Příspěvky: 32
|
Zaslal: 18. prosinec 2012, 11:29:17 Předmět: |
|
|
No ano, prostě aby se ten bod nacházel uprostřed jak kurzor a reagoval na pohyb myši současně. Kurzor mám vyřešený a zobrazený přes glOrtho funkci. Takže pokud to nebylo pochopitelné z první zprávy tak se omlouvám.
Jinak jak jsem psal mám to tak nějak vyřešené, ale s tím že to trošku reaguje zpožděně a nevím jestli to můžu nějak líp upravit nebo mám něco blbě nastavené. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 18. prosinec 2012, 11:44:33 Předmět: |
|
|
Tak takovýto orbit se skládá z několika fází:
- Nejdřív najdeš ten bod pod kurzorem:
1) čtení z depth bufferu (může se lišiš, tuším glReadPixels?)
2) přenesení bodu z window souřadnic do 3D, např. pomocí gluUnproject (nebo podobně přes vlastní maticovou matematiku)
nyní máš bod pod kurzorem, ale ve 3D souřadnicích (P)
- Pak rotuješ pozici kamery okolo toho bodu
1) vytvoříš vektor V od bodu P k pozici kamery (C): V = C - P
2) vektor V otočíš pomocí rotační matice: stačí vygooglit a celkem rychle najdeš, jak sám takovou matici vytvořit...
3) nastavíš novou pozici kamery C = P + V.
- následně je potřeba kameru zamířit znovu na bod P, třeba pomocí gluLookAt... _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
Mivoj
Založen: 11. 12. 2012 Příspěvky: 32
|
Zaslal: 18. prosinec 2012, 12:07:26 Předmět: |
|
|
Diky za pomoc jak vidím tak to mám asi uplně jinak než by se to mělo dělat. Nad tím budu asi trávit trochu víc času než to uplně pochopím, ale jsem rád když mně někdo zkušenější vysvětlí postup. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 18. prosinec 2012, 12:10:47 Předmět: |
|
|
Tak jak to máš ty, to může být vpohodě, ale asi to bude trochu nepřesné...No kdyžtak se ptej, od toho jsou diskuzní fóra. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
|