座標系とジオメトリCoordinate systems and geometry

Direct3D アプリケーションをプログラムするには、3D ジオメトリの原理を実務で熟知していることが必要です。Programming Direct3D applications requires a working familiarity with 3D geometric principles. このセクションでは、3D シーンを作成するための最も重要な幾何学的概念について説明します。This section introduces the most important geometric concepts for creating 3D scenes.

このセクションの内容In this section

トピックTopic 説明Description

座標系Coordinate systems

通常、3D グラフィック アプリケーションでは、2 種類のデカルト座標系、つまり左手系と右手系が使用されます。Typically 3D graphics applications use one of two types of Cartesian coordinate systems: left-handed or right-handed. いずれの座標系においても、x 軸の正の向きは右を指し、y 軸の正の向きは上を指します。In both coordinate systems, the positive x-axis points to the right, and the positive y-axis points up.

プリミティブPrimitives

3D プリミティブは、単一の 3D エンティティを形成する頂点の集合です。A 3D primitive is a collection of vertices that form a single 3D entity.

顔と頂点の法線ベクトルFace and vertex normal vectors

メッシュ内の各面には、垂直な単位法線ベクトルがあります。Each face in a mesh has a perpendicular unit normal vector. ベクトルの方向は、頂点が定義された順序によって、また座標系が右手系であるか左手系であるかによって決まります。The vector's direction is determined by the order in which the vertices are defined and by whether the coordinate system is right- or left-handed.

四角形Rectangles

Direct3D および Windows のプログラミングにおいて、画面上のオブジェクトは境界矩形として示されます。Throughout Direct3D and Windows programming, objects on the screen are referred to in terms of bounding rectangles. 境界矩形のサイドは、常に画面のサイドと平行になっています。そのため、矩形は左上隅と右下隅の 2 つのポイントで描画されます。The sides of a bounding rectangle are always parallel to the sides of the screen, so the rectangle can be described by two points, the upper-left corner and lower-right corner.

三角形に補間Triangle interpolation

レンダリング中、パイプラインは各三角形で頂点データを補間します。During rendering, the pipeline interpolates vertex data across each triangle. 頂点データにはさまざまなデータがあり、拡散色、反射色、拡散色アルファ (三角形の不透明度)、反射色アルファ、フォグ係数などを含めることができます。Vertex data can be a broad variety of data and can include (but is not limited to): diffuse color, specular color, diffuse alpha (triangle opacity), specular alpha, and a fog factor.

ベクトル、頂点、および四元数Vectors, vertices, and quaternions

Direct3D では、頂点は位置と方向を表します。Throughout Direct3D, vertices describe position and orientation. プリミティブの各頂点は、位置を決定するベクトル、色、テクスチャ座標、および方向を決定する法線ベクトルによって示されます。Each vertex in a primitive is described by a vector that gives its position, color, texture coordinates, and a normal vector that gives its orientation.

変換Transforms

Direct3D の機能の一部で、ジオメトリを固定機能ジオメトリ パイプラインに挿入する変換エンジンです。The part of Direct3D that pushes geometry through the fixed function geometry pipeline is the transform engine. 変換エンジンは、モデルとビューアーをワールド座標に配置し、画面表示のために頂点を投影し、ビューポートに頂点をクリッピングします。It locates the model and viewer in the world, projects vertices for display on the screen, and clips vertices to the viewport. さらに変換エンジンは照明計算を実行し、各頂点における拡散成分および鏡面成分を決定します。The transform engine also performs lighting computations to determine diffuse and specular components at each vertex.

ビューポートとクリッピングViewports and clipping

"ビューポート" とは、3D シーンが投影される 2 次元 (2D) の矩形です。A viewport is a two-dimensional (2D) rectangle into which a 3D scene is projected. Direct3D では、この四角形は Direct3D サーフェス内の座標として存在し、システムによってレンダー ターゲットとして使われます。In Direct3D, the rectangle exists as coordinates within a Direct3D surface that the system uses as a rendering target. 射影変換は、頂点をビューポートで使われる座標系に変換します。The projection transformation converts vertices into the coordinate system used for the viewport. ビューポートは、シーンがレンダリングされるレンダー ターゲット サーフェス上の深度値の範囲 (通常は 0.0 ~ 1.0) を指定するためにも使われます。A viewport is also used to specify the range of depth values on a render-target surface into which a scene will be rendered (usually 0.0 to 1.0).

 

関連トピックRelated topics

Direct3D グラフィックス学習ガイドDirect3D Graphics Learning Guide