iPhone GLGravity příklad pomocí čtveřice

hlasů
4

Příkladem GLGravity iPhone ukazuje, jak pomocí akcelerometru a OpenGL trpí gimbal lock problému. Zajímalo by mě, je tam nějaký kód k dispozici pomocí otáčení čtveřici namísto Euler úhly? Jakákoliv pomoc bude velmi ocenil, jsem zápasí s tímto od dlouhou dobu, aniž by úspěch ...

Položena 21/03/2010 v 19:04
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
3

Je dobré mít dobrý přehled o teorii věcí, než se snaží implementovat a používat jej sám. Níže jsou uvedeny dva úvodní články o použití čtveřic pro střídání. Oba jsou v prvé řadě vztahuje k hladkému otáčení interpolace a vyhnout výkyvný zámek v nahromaděných rotací:

Gamedev.net - čtveřice Powers

Gamasutra - Rotující objekty pomocí čtveřic

Nyní, pokud jde o skutečný kód jde, bych doporučil získání a používání, což je „silový průmysl“ vektor matematická knihovna v protikladu k válcování vlastní. Můj návrh by se sebral část LinearMath střely projektu Physics Middleware. Bullet fyzika, a součástí lineární matematická knihovna, byl vyvinut některými z nejlepších inženýrů společnosti Sony a byl v aktivním vývoji několik let. Je volně k dispozici, není omezena žádným licence (Zlib licence), a je používán profesionální vývojáře her po celém světě. Lib je multiplatformní / architektura a sestavuje na cokoli z iPhone na PS3.

Lib nabízí čtveřici třída, která vám umožní vytvořit čtveřice z Euler úhly nebo z rotace kolem libovolné osy, například pomocí setEulerZYX . Jakmile budete mít své čtveřice, jsou tam vestavěných funkcí pro všechny běžné operace se na ně vztahují; plus, minus, mul, normalizovat, slerp a mnoho dalšího.

Pro skutečně uplatnění konečného čtveřici OpenGL vykreslování se Transform třída umožňuje sestavit matici ze čtveřice. Třída přeměnit zase obsahuje funkce getOpenGLMatrix , který vám přímo dává kompatibilní matici předat OpenGL.

Lib obsahuje také řadu dalších velmi užitečných matrice a vektorových tříd a funkcí.

Chytit nejnovější Bullet dist z Google Code , nebo chytit jen LinearMath část kódu přímo z podvracení pomocí:svn checkout http://bullet.googlecode.com/svn/trunk/src/LinearMath

Odpovězeno 27/03/2010 v 03:21
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more