質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

Q&A

1回答

1080閲覧

OpenFrameWorks におけるモデルビュープロジェクション変換

seri

総合スコア422

openFrameworks

openFrameworksは、C++で記述されたライブラリ群です。既存のライブラリの設定なしで使用できるため「糊」のようなツールキットと呼ばれています。簡単なコードだけで様々なグラフィックスやインタラクションをデザインすることが可能です。

0グッド

0クリップ

投稿2017/02/17 02:44

モデル座標行列をmM
ビュー座標行列をvM
プロジェクション座標行列をpM

とすると。

mvpM(モデルビュープロジェクション変換行列)は

pMvMmM

で求まると思いますが。

なぜかOpenFrameWorksでは

mMvMpMが正常なmvpMが求まります。

mvpM = mM*cam.getModelViewMatrix()*cam.getProjectionMatrix();

これが長い間疑問だったのですが、どなたか解説していただけないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ただの決まり事と考えればいいと思います。
ご存知かと思いますが行列の掛け算(内積や外積など)は交換法則が成り立たないので左右どちらから掛け算をするかによって行列の形をあらかじめ決めることになります。

簡単な例で言えばベクトルx, yを左へ回転させる行列を考えるとき

Matrix Vector

とするならMatrixは以下のようにするでしょうし

cosΘ -sinΘ sinΘ cosΘ

Vector Matrix

としたいならMatrixを以下のように決めるだけのことです

cosΘ sinΘ -sinΘ cosΘ

似たような話だと思いますが空間座標を右手系にするか左手系にするかなどでもマトリックスは変化します。自分の勘違いかも知れませんがOpenGLは左手系(?)かなと思いました。JavaFXなどでは右手系です。自分で変換行列を計算する場合などはこうしたルールを意識する必要がありますよね。

投稿2017/02/17 05:05

編集2017/02/17 05:07
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問