テクスチャは、プリミティブの表面に貼り付ける形で使用します。
テクスチャを貼り付けるプリミティブは、頂点データにテクスチャ座標を持っている必要があります。テクスチャ座標を持っているカスタム頂点は、次の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 |