Author |
Post |
|
#1 Sun Oct 23, 2011 10:54 pm
|
Member
Registered: Oct 2011
Posts: 16
|
エフェクトを傾けるため、managerのビュー行列を変更しようとしましたがどうも上手くいきません。 ml::matrix44 view; ml::vector3d v3eye(0.0f,eye_ypos,1.0f,0.0f); ml::vector3d v3at(0.0f,0.0f,0.0f,0.0f); ml::vector3d v3up(0.0f,1.0f,0.0f,0.0f); view.lookat_l(v3eye,v3at,v3up); Manager->SetView(view);
やり方はこれで合っていますでしょうか? _______________ twitter: @eiki_okuma
|
|
#2 Mon Oct 24, 2011 11:54 am
|
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
|
BMManagerのBegin2Dメソッドのあとに呼び出していますでしょうか。 Begin2Dの中で、SetViewされているので上書きされているかもしれません。
|
|
#3 Mon Oct 24, 2011 2:36 pm
|
Member
Registered: Oct 2011
Posts: 16
|
ありがとうございます。 仰るとおりBegin2D〜End外で呼び出していました。 が、中に記述しても変化が見られないようです。 サポートメールアドレスの方にソースコードを送付致しましたため、 見て頂ければ幸いです。 宜しくお願いします。 _______________ twitter: @eiki_okuma
|
|
#4 Mon Oct 24, 2011 7:31 pm
|
Administrator
Registered: Oct 2011
Posts: 206
Location: Tokyo
|
BMManager::SetView, BMManager::SetProjectionはBMManager::Beginの前にコールして下さい。 また、ビューやプロジェクション行列を変更したい場合はBegin2Dを呼ばずにBeginを呼んで下さい。 Begin2Dの内部でSetView/SetProjectionされているので設定しても上書きされてしまいます。 e.g. BMManager *manager = ...;
// ビュー行列の設定 ml::matrix44 view; ml::vector3d eye(10, 10, 10, 0); ml::vector3d at(0, 0, 0, 0); ml::vector3d up(0, 1, 0, 0); view.lookat_r(eye, at, up); manager->SetView(view);
// プロジェクション行列の設定 ml::matrix44 proj; float angle = ml::to_radian(60.f); float aspect = SCREEN_WIDTH/SCREEN_HEIGHT; float near = 1; float far = 1000; proj.perspectivefov_r(angle, aspect, near, far); manager->SetProjection(proj);
// 描画 manager->Begin(); ... manager->End();
|
|
#5 Mon Oct 24, 2011 8:46 pm
|
Member
Registered: Oct 2011
Posts: 16
|
ありがとうございます。 Begin2Dの代わりに自前でSetView/SetProjectionを設定し、上手く行きました。 _______________ twitter: @eiki_okuma
|