テクスチャはりはり
ポリゴンにテクスチャをはってみたくなり、設定してみました
G9lib.cpp
//------------------------------------------------------------------------------ //■ライブラリ初期化 //------------------------------------------------------------------------------ void G9lib::Init() { : :前回の内容参照 : if( D3DXCreateTextureFromFile(pD3DDevice, L"i01.bmp", &image1 ) != D3D_OK ){ image1 = NULL; } } //------------------------------------------------------------------------------ //■ライブラリ開放 //------------------------------------------------------------------------------ void G9lib::Exit( void ) { : :前回の内容参照 : if( image1 != NULL ){ image1->Release(); image1 = NULL; } } //------------------------------------------------------------------------------ //■テスト描画 //------------------------------------------------------------------------------ void G9lib::TestDraw() { D3DXMATRIX matView; D3DXMATRIX matProj; D3DXMATRIX matWorld; pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0, 0); pD3DDevice->BeginScene(); //----------------------------------------- //ワールド座標の回転 D3DXMatrixRotationY( &matWorld,timeGetTime()/5000.0f ); pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld ); //----------------------------------------- //View 座標の設定 D3DXMatrixLookAtLH(&matView,&D3DXVECTOR3(0.0f, 0.0f, 20.0f), &D3DXVECTOR3(0.0f, 0.0f, 0.0f), &D3DXVECTOR3(0.0f, 1.0f, 0.0f)); pD3DDevice->SetTransform( D3DTS_VIEW, &matView ); //----------------------------------------- // pD3DDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ); //両面 pD3DDevice->SetRenderState( D3DRS_LIGHTING,FALSE); //光源無効 //----------------------------------------- //透視変換の設定 D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, width/height, 10.0f, 2000.0f ); pD3DDevice->SetTransform( D3DTS_PROJECTION,&matProj ); //----------------------------------------- // モデル登録 D3DVERTEXTEX1 vtx[ 6 ]={ { -5.0f, 5.0f, -5.0f, 1.0f, 0.0f }, { -5.0f, -5.0f, -5.0f, 1.0f, 1.0f }, { -5.0f, -5.0f, 5.0f, 0.0f, 1.0f }, { -5.0f, 5.0f, -5.0f, 1.0f, 0.0f }, { -5.0f, -5.0f, 5.0f, 0.0f, 1.0f }, { -5.0f, 5.0f, 5.0f, 0.0f, 0.0f } }; pD3DDevice->SetTexture( 0, image1 ); pD3DDevice->SetFVF(D3DVERTEXTEX1::FVF); pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, vtx, sizeof(D3DVERTEXTEX1)); pD3DDevice->SetTexture( 0, NULL ); //----------------------------------------- // 描画 pD3DDevice->EndScene(); pD3DDevice->Present(NULL, NULL, NULL, NULL); }
頂点フォーマットをこんな感じで指定
G9lib.h
class G9lib { : :前回の内容参照 : LPDIRECT3DTEXTURE9 image1; // } struct D3DVERTEXTEX1 { float x,y,z; float u1,v1; enum { FVF = D3DFVF_XYZ | D3DFVF_TEX1 } ; };
これを表示すると、"i01.bmp"ファイルのイメージを表示します。