| |
 |
8.4 高度なテクスチャ設定
ポリゴン描画を行なう前に、ポリゴンへの貼り付け方法を指定することも可能です。指定する値としては、主にラッピングモード・テクスチャフィルタ・テクスチャ関数の3つがあります。
ラッピングモード:
テクスチャ座標値を0.0〜1.0の範囲外に指定した場合の貼り付け方法を、繰り返し貼り付けを行なうリピート(C3DL_REPEAT)か、クランプ(C3DL_CLAMP)のいずれかで選択します。
| 使用例)g3d.texParameter (
|
g3d.C3DL_TEXTURE_2D,
g3d.C3DL_TEXTURE_WRAP_S,
g3d.C3DL_REPEAT ); |
// ペイント処理の記述例(ダミー)
void paint( C3DGraphics g3d )
{
// 初期化処理の記述
if( false == hasInitialized )
{
/* 前述のため省略 */
}
// テクスチャ付ポリゴンの描画処理開始
int targetTexName = 1; // 描画に使用するテクスチャは1
g3d.enable( g3d.C3DL_TEXTURE_2D ); // テクスチャマッピング機能の有効化
g3d.bindTexture( g3d.C3DL_TEXTURE_2D, targetTexName );// テクスチャオブジェクト指定
/* テクスチャの貼り付け方法を指定するときは、この位置で行ないます */
// 三角形描画
g3d.begin( g3d.C3DL_TRIANGLES );
// 頂点1
g3d.texCoord( 0x00000, 0x00000 ); // s=0.0, t=0.0
g3d.vertex ( 0x00000, 0x00000, 0x00000 ); // x=0.0, y=0.0, z=0.0
// 頂点2
g3d.texCoord( 0x00000, 0x10000 ); // s=0.0, t=1.0
g3d.vertex ( 0x00000, 0x10000, 0x00000 ); // x=0.0, y=1.0, z=0.0
// 頂点3
g3d.texCoord( 0x10000, 0x00000 ); // s=1.0, t=0.0
g3d.vertex ( 0x10000, 0x00000, 0x00000 ); // x=1.0, y=0.0, z=0.0
g3d.end();
// コマンドをフラッシュして描画を開始
g3d.flush();
}
|
|
|