テクスチャは、プリミティブの表面に貼り付ける形で使用します。
テクスチャを貼り付けるプリミティブは、頂点データにテクスチャ座標を持っている必要があります。テクスチャ座標を持っているカスタム頂点は、次の5つです。
位置 (X, Y, Z) |
同次座標wの逆数 (Rhw) |
頂点の色 (Color) |
頂点の法線 (Nx, Ny, Nz) |
テクスチャ座標 (Tu, Tv) |
|
---|---|---|---|---|---|
PositionTextured | ○ | ○ | |||
PositionColoredTextured | ○ | ○ | ○ | ||
PositionNormalTextured | ○ | ○ | ○ | ||
TransformedTextured | ○ | ○ | ○ | ||
TransformedColoredTextured | ○ | ○ | ○ | ○ |
public PositionTextured( Vector3 pos, // 位置 float u, // テクスチャ座標 u float v // テクスチャ座標 v );
public PositionColoredTextured( Vector3 pos, // 位置 int c, // 色 float u, // テクスチャ座標 u float v // テクスチャ座標 v );
public PositionNormalTextured( Vector3 pos, // 位置 Vector3 nor, // 法線の頂点 float u, // テクスチャ座標 u float v // テクスチャ座標 v );
テクスチャ座標はテクスチャの左上を (0.0, 0.0)、右下を (1.0, 1.0) とする座標です。
public Texture( Device device, // テクスチャに関連付けるデバイス Stream data, // 画像データのストリーム Usage usage, // 使用方法 (常に0を指定) Pool pool // テクスチャを格納するメモリの種類 );
TextureLoader.FromFile()メソッド
public static Texture FromFile( Device device, // デバイス string srcFile // ファイル名 );
Mesh.FromFile()メソッドで取得できるExtendedMaterial構造体からファイル名を取得し、TextureLoader.FromFile()メソッドでファイルから読み込みます。
デバイス ステージにテクスチャを関連付けます。
public void SetTexture( int stage, // デバイス ステージのインデックス値 BaseTexture texture // 設定するテクスチャを表す BaseTextureオブジェクト );
テクスチャを描画するときには、ライトを無効にします。
Device.TextureStateプロパティからテクスチャのステート値を設定します。
プロパティ | 内容 | 型 | デフォルト値 | |
---|---|---|---|---|
Color | ColorArgument0 | 三項演算 (積和および線形補間) の3番目の色オペランドの設定 | TextureArgument | Current |
ColorArgument1 | ステージの1番目の色引数 | TextureArgument | TextureColor | |
ColorArgument2 | ステージの2番目の色引数 | TextureArgument | Current | |
ColorOperation | テクスチャ カラー ブレンディング処理 | TextureOperation | Modulate | |
ConstantColor | TextureArgument.Constantのと使用されスージごとの色の定数 | System.Drawing.Color | ||
ConstantColorValue | int | |||
Alpha | AlphaArgument0 | 三項演算 (積和および線形補間) のアルファ チャンネル セレクタ オペランドの設定 | TextureArgument | Current |
AlphaArgument1 | ステージの1番目のアルファ引数 | TextureArgument | TextureColor | |
AlphaArgument2 | ステージの2番目のアルファ引数 | TextureArgument | Current | |
AlphaOperation | テクスチャ アルファ ブレンディング処理 | TextureOperation | SelectArg1 | |
ResultArgument | TextureArgument.Currentの値 | TextureArgument | ||
Bump | BumpEnvironmentLuminanceOffset | バンプマップ輝度に使用する浮動小数点数のオフセット | float | 0.0 |
BumpEnvironmentLuminanceScale | バンプマップ輝度に使用する浮動小数点数のスケール値 | float | 0.0 | |
BumpEnvironmentMaterial00 | バンプ マッピング行列の[0][0]要素 | float | 0.0 | |
BumpEnvironmentMaterial01 | バンプ マッピング行列の[0][1]要素 | float | 0.0 | |
BumpEnvironmentMaterial10 | バンプ マッピング行列の[1][0]要素 | float | 0.0 | |
BumpEnvironmentMaterial11 | バンプ マッピング行列の[1][1]要素 | float | 0.0 | |
TextureCoordinateIndex | テクスチャ座標のインデックス | int | ||
TextureTransform | テクスチャ座標のトランスフォーム | TextureTransform |