ワールド変換World transform

ワールド変換は、座標系をモデル空間からワールド空間に変更します。モデル空間では、頂点はモデルのローカル原点を基準として相対的に定義されます。A world transform changes coordinates from model space, where vertices are defined relative to a model's local origin, to world space. ワールド空間では、頂点はシーン内のすべてのオブジェクトに共通の原点を基準として相対的に定義されます。In world space, vertices are defined relative to an origin common to all the objects in a scene. ワールド変換は、モデルをワールド空間に配置します。The world transform places a model into the world.

次の図は、ワールド座標系とモデルのローカル座標系の関係を示しています。The following diagram shows the relationship between the world coordinate system and a model's local coordinate system.

ワールド座標とローカル座標の関係を示す図

ワールド変換には、平行移動、回転、スケーリングを任意に組み合わせて含めることができます。The world transform can include any combination of translations, rotations, and scalings.

ワールド行列を設定Setting Up a World Matrix

ワールド変換を作成するには、他の変換と同様に、複数の行列を組み合わせて、それらの効果をすべて含む 1 つの行列に連結します。As with any other transform, create the world transform by concatenating a series of matrices into a single matrix that contains the sum total of their effects. 最も単純な例として、モデルがワールド原点に位置し、そのローカル座標軸がワールド空間と同じ方向であるとすると、ワールド行列は単位行列になります。In the simplest case, when a model is at the world origin and its local coordinate axes are oriented the same as world space, the world matrix is the identity matrix. より一般的な例でのワールド行列は、ワールド空間への平行移動と、必要に応じてモデルを回転させる 1 つ以上の回転の組み合わせになります。More commonly, the world matrix is a combination of a translation into world space and possibly one or more rotations to turn the model as needed.

Direct3D は、ユーザーが設定したワールド行列とビュー行列を使って、いくつかの内部データ構造を構成します。Direct3D uses the world and view matrices that you set to configure several internal data structures. 新しいワールド行列またはビュー行列を設定するたびに、関連付けられた内部構造がシステムによって再計算されます。Each time you set a new world or view matrix, the system recalculates the associated internal structures. これらの行列を頻繁に、たとえばフレーム当たりに数千回という頻度で設定すると、計算に時間を要することになります。Setting these matrices frequently-for example, thousands of times per frame-is computationally time-consuming. 必要な計算回数を最小限に抑えるには、ワールド行列とビュー行列を連結して 1 つのワールド ビュー行列を作成し、それをワールド行列として設定した後、ビュー行列を単位元に設定します。You can minimize the number of required calculations by concatenating your world and view matrices into a world-view matrix that you set as the world matrix, and then setting the view matrix to the identity. このとき、必要に応じてワールド行列を変更、連結、リセットできるように、個々のワールド行列とビュー行列のキャッシュ コピーを保持しておくことをお勧めします。Keep cached copies of individual world and view matrices so that you can modify, concatenate, and reset the world matrix as needed.

関連トピックRelated topics

変換Transforms