「ワールド座標変換」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
Administrator (トーク | 投稿記録) |
||
1行目: | 1行目: | ||
'''ワールド座標変換'''とは、[[3Dモデル]]などを[[ワールド座標]]に配置することをいう。 | '''ワールド座標変換'''とは、[[3Dモデル]]などを[[ワールド座標]]に配置することをいう。 | ||
− | 3Dモデルの持つ各[[頂点]] | + | == 概要 == |
+ | 3Dモデルの持つ各[[頂点]]の座標は[[ローカル座標]]と呼ばれる。 | ||
いわゆる[[3DCAD]]などで作図したときの座標である。 | いわゆる[[3DCAD]]などで作図したときの座標である。 | ||
− | これを[[ゲーム]] | + | これを[[ゲーム]]のシーンなどの「ワールド」に配置する処理をいう。 |
+ | |||
+ | == 処理 == | ||
+ | ワールド座標変換で行われる操作は基本的には「拡縮」「回転」「移動」の3つの[[変換行列]]である。 | ||
+ | * [[拡大縮小行列]](scale) | ||
+ | * [[回転行列]](rotation) | ||
+ | * [[平行移動行列]](transform) | ||
+ | |||
+ | 上記の順番で行列の乗算を行うと[[ワールドマトリックス]]が得られる。 | ||
+ | float4x4 world = scale * rotation * transform; | ||
+ | |||
+ | '''この操作は「順序」が重要で、処理の順序を変えると残念な結果になる'''。以下はダメな例である。算数の教科書にはこの処理を指して「TRS」などと書かれているため逆順だと勘違いすることが多い。 | ||
+ | float4x4 world = transform * rotation * scale; | ||
== 関連項目 == | == 関連項目 == |
2020年1月24日 (金) 02:03時点における版
ワールド座標変換とは、3Dモデルなどをワールド座標に配置することをいう。
概要
3Dモデルの持つ各頂点の座標はローカル座標と呼ばれる。 いわゆる3DCADなどで作図したときの座標である。 これをゲームのシーンなどの「ワールド」に配置する処理をいう。
処理
ワールド座標変換で行われる操作は基本的には「拡縮」「回転」「移動」の3つの変換行列である。
上記の順番で行列の乗算を行うとワールドマトリックスが得られる。
float4x4 world = scale * rotation * transform;
この操作は「順序」が重要で、処理の順序を変えると残念な結果になる。以下はダメな例である。算数の教科書にはこの処理を指して「TRS」などと書かれているため逆順だと勘違いすることが多い。
float4x4 world = transform * rotation * scale;