[[cg:start|CG用語集トップ]] > [[cg:fundamentals:start|第1章 基礎・座標・色・ディジタル画像]] ====== 合成変換 ====== ===== 概要 ===== 合成変換は、[[cg:fundamentals:translation|平行移動]]、[[cg:fundamentals:rotation|回転]]、[[cg:fundamentals:scaling|拡大・縮小]]など複数の基本変換を順番に適用し、1つの変換として扱う考え方である。基本変換を組み合わせることで、単独では扱いにくい変換を実現できる。特に重要なのは、変換の順序を入れ替えると一般に結果が変わる点である。 {{:cg:figures:chapter01:fig_1_19_composite_transform_rotation_about_non_origin.png?600|合成変換による原点以外での回転の例}} ===== 詳しい説明 ===== 基本変換は単独でも使えるが、実際のCGでは複数の変換を組み合わせて使うことが多い。たとえば、原点以外の点を中心に図形を回転したい場合、まず回転中心を原点へ移す平行移動を行い、原点中心で回転し、最後に元の位置へ戻す平行移動を行う。この一連の処理が合成変換である。 合成変換では順序が非常に重要である。同じ平行移動と回転を使っても、先に回転するか、先に平行移動するかで、最終的な位置は変わる。これは、変換を単なる操作名の並びではなく、座標に順番に作用する処理として理解する必要があることを示している。後の行列による変換理解にもつながる重要な概念である。 {{:cg:figures:chapter01:fig_1_20_composite_transform_order_difference.png?600|順番を入れ換えると合成変換が異なる例}} ===== CG制作との関係 ===== CG制作では、モデルを拡大してから回転し、さらに移動するといった操作がよく行われる。カメラ、ライト、モデルの配置も、複数の変換が組み合わさって決まる。変換順序を意識しないと、思った位置や向きにならないことがある。 ===== ゲーム開発との関係 ===== ゲーム開発では、オブジェクトのワールド行列や親子関係の計算に合成変換が関係する。モデルをローカル座標で回転させてからワールド位置へ移動する場合と、ワールド位置へ移動してから原点まわりに回転する場合では、見た目が異なる。変換順序は、描画や当たり判定のズレにも影響する。 ===== 制作・実装での例 ===== 原点以外を中心に回転したい場合、対象をいったん原点へ平行移動し、回転し、逆方向に平行移動する。これにより、基本的な原点中心の回転を使って、任意の点を中心にした回転を表現できる。2Dでも3Dでも、複数変換の順序を意識することが重要である。 ===== 検定対策ポイント ===== 合成変換は、複数の基本変換を組み合わせた変換である。単に変換を足し合わせるのではなく、順番に適用する点が重要である。[[cg:fundamentals:two_dimensional_affine_transformation|2次元アフィン変換]]は、基本変換や合成変換をまとめて扱う概念であり、合成変換そのものとは区別する。 ===== 関連用語 ===== * [[cg:fundamentals:translation|平行移動]] * [[cg:fundamentals:rotation|回転]] * [[cg:fundamentals:scaling|拡大・縮小]] * [[cg:fundamentals:geometric_transformation|幾何学的変換]] * [[cg:fundamentals:two_dimensional_affine_transformation|2次元アフィン変換]] * [[cg:fundamentals:three_dimensional_affine_transformation|3次元アフィン変換]] ===== タグ ===== * CGエンジニア検定 * 第1章 ---- [[cg:fundamentals:start|← 第1章 基礎・座標・色・ディジタル画像 の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]