10/07/25 10:57:55
プラネタリウムのようなソフトを作っています。
天球の中心にカメラを置いて、注視点をぐりぐり移動させる所でつまずいています。
今やっているのはglRotateで±1°ずつ回転させて(角度変数も用意して増減させる)
実装しています。この場合だとぐりぐり移動はできるのですが現在どの角度を向いているか
が正しく取得できません。(斜め移動すると表示と値がずれる)
プラネタリウム(というよりは星座早見盤)をつくるのに今見ている角度を正しく
取得しなければならないのですが、いい方法はありますか?
652:デフォルトの名無しさん
10/07/25 11:03:56
mCamera->setOrientation(Quaternion::IDENTITY);
mCamera->rotate(Vector3::UNIT_Y, Radian(mTheta));
mCamera->pitch(Radian(mPhi));
653:デフォルトの名無しさん
10/07/25 16:03:07
回転を四元数で管理
654:デフォルトの名無しさん
10/07/25 17:28:28
LoadIdentityの代わりに、単位行列をピヴォットした行列をロードするだけでZ-Upとかに対応できたりするんでしょうか?
655:デフォルトの名無しさん
10/07/25 22:06:55
OpenGL用の行列やベクトル、クォータニオンなんかのライブラリでオススメあれば教えて下さい。
DirectXのライブラリみたいにSIMD使った最適化までしてくれたら嬉しいです。
656:デフォルトの名無しさん
10/07/25 22:38:24
Bullet の LinearMath
657:デフォルトの名無しさん
10/07/25 23:15:50
>>652
Cで書いていて、かつかじったばっかりなので何をやってるのか理解できませんでした。
すみません。
>>653
検索したら参考ページが出てきたので頑張ってみます。
ありがとうございました。
658:デフォルトの名無しさん
10/07/26 00:37:24
床井さんのところ
URLリンク(marina.sys.wakayama-u.ac.jp)
のサンプルで、クォータニオン使ったのがあったはず。
659:デフォルトの名無しさん
10/07/26 00:56:20
>>651
単に回転する順番とかが間違ってるだけなんじゃないのかな
クォータニオンとか導入しないとならない問題じゃないと思うんだが
660:デフォルトの名無しさん
10/07/26 02:55:33
普通に天球の極座標も理解出来てないと思う。