【概要】
Direct3D の 3D シーンに描画可能な ビルボードクラス。テクスチャは複数使用可能。
| 重要度 | メソッド名と解説 | アクセス |
|---|---|---|
| ◎ | CBillboard(CD3DEnv *pEnv,int numTexture) 本クラスのコンストラクタ。描画環境へのポインタと使用するテクスチャの数を指定する。 | public |
| ◎ | ~CBillboard() デストラクタ | public |
| ◎ | HRESULT SetTexture(DWORD dwTexNo, LPSTR fName) テクスチャをファイル名で指定し、描画に使用できるようにする。 | public |
| ◎ | void Render(LPDIRECT3DDEVICE9 lpd3ddev,D3DXMATRIX *pMatWorld, D3DXMATRIX *pMatView, FLOAT fW, FLOAT fH, int texNo) 3Dモードでビルボードを描画する。 | public |
| ○ | void Render(LPDIRECT3DDEVICE9 lpd3ddev,D3DXMATRIX *pMatWorld, D3DXMATRIX *pMatView, FLOAT fW, FLOAT fH, DWORD dwU, DWORD dwV, DWORD dwW, DWORD dwH, int texNo) テクスチャの中の使用部分を指定して、3Dモードでビルボードを描画する。 | public |
| ○ | void Render(LPDIRECT3DDEVICE9 lpd3ddev,FLOAT x, FLOAT y, FLOAT w, FLOAT h, int texNo) 2Dモードでビルボードを描画する。テクスチャ番号を負の値にするとテクスチャ無しで矩形を描画する。 | public |
| ○ | void Render(LPDIRECT3DDEVICE9 lpd3ddev,FLOAT x, FLOAT y, FLOAT w, FLOAT h, DWORD dwU, DWORD dwV, DWORD dwW, DWORD dwH, int texNo) テクスチャの中の使用部分を指定して、2Dモードでビルボードを描画する。 | public |
| ○ | void Render2DVertices(LPDIRECT3DDEVICE9 lpd3ddev,D3DXVECTOR3 *pvec, int texNo) 2Dモードでビルボードを描画する。テクスチャ番号を負の値にするとテクスチャ無しで矩形を描画する。 | public |
| ○ | void Render2DVertices(LPDIRECT3DDEVICE9 lpd3ddev,D3DXVECTOR3 *pvec, DWORD dwU, DWORD dwV, DWORD dwW, DWORD dwH, int texNo) 2Dモードでビルボードを描画する。テクスチャ番号を負の値にするとテクスチャ無しで矩形を描画する。 | public |
| ○ | LPDIRECT3DTEXTURE9 GetTexture(UINT texNo) 指定したテクスチャへのポインタを返す。※テクスチャの参照カウントをインクリメントします。 | public |
| ○ | HRESULT GetTextureSize(UINT texNo, DWORD *w, DWORD *h) 指定したテクスチャのサイズを返す。 | public |
| ○ | void SetDiffuse(D3DCOLOR diffuse)
テクスチャ無しモードで描画する場合の色を指定する。 | public |
| ○ | void SetBlendingMethod(UINT method)
半透明時の背景との混色方法を指定 (BILLBOARD_SEMI_TRANS(半透明)/BILLBOARD_ADD_IN(加算混合))。 | public |
| ○ | void SetVirtualScreenSize(DWORD w, DWORD h)
想定画面のサイズを設定する。ビューポートに合わせた拡大・縮小の基準となる。 | public |
| ○ | void SetScreenFitMode(DWORD mode)
ビューポートサイズに応じた表示方法を設定する | public |
| ○ | void CalculateScreenScaledViewport(RECT *rc, FLOAT *wscale, FLOAT *hscale)
想定画面をビューポート内にスケーリングして表示する場合の位置とサイズを返す | public |
| ○ | static void SetDefaultScreenSize(DWORD w, DWORD h)
以降生成される Billboardオブジェクトに適用される想定画面のサイズを設定する。 | public |
| ○ | static void SetDefaultScreenFitMode(DWORD mode)
以降生成されるBillboardオブジェクトに適用されるビューポートサイズに応じた表示方法を設定する | public |
※重要度の意味:
| 引数: | pEnv:このメッシュオブジェクトが使用する描画環境へのポインタ。 |
| numTexture:使用するテクスチャの数を指定する。 |
| 引数: | dwTexNo:テクスチャ番号を指定。 |
| fName:指定したテクスチャ番号へ読み込むテクスチャのファイル名を指定。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| pMatWorld:表示に使用するワールド行列。 | |
| pMatView:表示に使用するビュー行列。 | |
| fW:表示幅。 | |
| fH:表示高。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| pMatWorld:表示に使用するワールド行列。 | |
| pMatView:表示に使用するビュー行列。 | |
| fW:表示幅。 | |
| fH:表示高。 | |
| dwU:使用する部分テクスチャの左上隅のX座標。 | |
| dwV:使用する部分テクスチャの左上隅のY座標。 | |
| dwW:使用する部分テクスチャの幅。 | |
| dwH:使用する部分テクスチャの高。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| x:x座標。 | |
| y:y座標。 | |
| w:表示幅。 | |
| h:表示高。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| x:x座標。 | |
| y:y座標。 | |
| w:表示幅。 | |
| h:表示高。 | |
| dwU:使用する部分テクスチャの左上隅のX座標。 | |
| dwV:使用する部分テクスチャの左上隅のY座標。 | |
| dwW:使用する部分テクスチャの幅。 | |
| dwH:使用する部分テクスチャの高。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| pvec:4点の頂点座標を格納したD3DXVECTOR3型の配列。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | lpd3ddev:描画に使用するDirect3D9 デバイス。 |
| pvec:4点の頂点座標を格納したD3DXVECTOR3型の配列。 | |
| dwU:使用する部分テクスチャの左上隅のX座標。 | |
| dwV:使用する部分テクスチャの左上隅のY座標。 | |
| dwW:使用する部分テクスチャの幅。 | |
| dwH:使用する部分テクスチャの高。 | |
| texNo:表示に使用するテクスチャ番号。 |
| 引数: | w:想定画面の幅。 |
| h:想定画面の高さ |
| 引数: | mode:画面サイズに合わせた表示方法。 |
| Flag | Desctiption |
|---|---|
| BILLBOARD_FIT_NONE | 画面に合わせた表示を行わない |
| BILLBOARD_FIT_SIZE | 画面サイズに合わせて表示する |
| BILLBOARD_FIT_KEEP_ASPECT | 拡大・縮小する際、縦横比を維持して拡大縮小する |
| BILLBOARD_FIT_CUT | サイドカットまたは上下カットして、非表示部分が出ないように拡大・縮小する |
| BILLBOARD_FIT_TOP | 上下の表示位置を上に合わせる |
| BILLBOARD_FIT_MIDDLE | 上下の表示位置を中央に合わせる |
| BILLBOARD_FIT_BOTTOM | 上下の表示位置を下に合わせる |
| BILLBOARD_FIT_LEFT | 左右の表示位置を左に合わせる |
| BILLBOARD_FIT_CENTER | 左右の表示位置を中央に合わせる |
| BILLBOARD_FIT_RIGHT | 左右の表示位置を右に合わせる |
| BILLBOARD_FIT_CLIPPING | 指定された想定画面の外に出る部分をトリミングする |
| 引数: | rc:[in]表示しようとするビューポートの位置とサイズを表すRECT/[out]ビューポートに収まるように配置・スケールされた想定画面をあらわすRECT |
| wscale:ビルボードを想定画面に表示する際の横方向のスケール | |
| hscale:ビルボードを想定画面に表示する際の縦方向のスケール |
RECT rc;
FLOAT wscale,hscale;
D3DXMATRIX *pProj = g_pD3DEnv->GetSystemProjection();
rc.top = 0;
rc.left = 0;
rc.right = g_pD3DEnv->GetBackBufferWidth();
rc.bottom = g_pD3DEnv->GetBackBufferHeight();
g_pBillboard->CalculateScreenScaledViewport(&rc,&wscale,&hscale);
D3DXMatrixPerspectiveFovLH(pProj,D3DX_PI*0.25f,(FLOAT)(rc.right-rc.left) / (FLOAT)(rc.bottom - rc.top),1.f,100.f);
g_pD3DEnv->RenderSceneWithVP(&rc,RenderScene,NULL,true);
| 引数: | w:想定画面の幅。 |
| h:想定画面の高さ |
| 引数: | mode:画面サイズに合わせた表示方法。 |