openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。
Q&A
1回答
1166閲覧
総合スコア422
0グッド
0クリップ
投稿2017/02/17 02:44
0
モデル座標行列をmM ビュー座標行列をvM プロジェクション座標行列をpM
とすると。
mvpM(モデルビュープロジェクション変換行列)は
pMvMmM
で求まると思いますが。
なぜかOpenFrameWorksでは
mMvMpMが正常なmvpMが求まります。
mvpM = mM*cam.getModelViewMatrix()*cam.getProjectionMatrix();
これが長い間疑問だったのですが、どなたか解説していただけないでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答1件
ただの決まり事と考えればいいと思います。 ご存知かと思いますが行列の掛け算(内積や外積など)は交換法則が成り立たないので左右どちらから掛け算をするかによって行列の形をあらかじめ決めることになります。
簡単な例で言えばベクトルx, yを左へ回転させる行列を考えるとき
Matrix Vector
とするならMatrixは以下のようにするでしょうし
cosΘ -sinΘ sinΘ cosΘ
Vector Matrix
としたいならMatrixを以下のように決めるだけのことです
cosΘ sinΘ -sinΘ cosΘ
似たような話だと思いますが空間座標を右手系にするか左手系にするかなどでもマトリックスは変化します。自分の勘違いかも知れませんがOpenGLは左手系(?)かなと思いました。JavaFXなどでは右手系です。自分で変換行列を計算する場合などはこうしたルールを意識する必要がありますよね。
投稿2017/02/17 05:05
総合スコア18406
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
OpenFrameWorks におけるモデルビュープロジェクション変換
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。