D3DXDrawSprite3D
4 点を指定すると、D3DXDrawSprite3D 関数はこれらの点を内包するスプライトを描画する。これらの点は、スクリーン座標で指定する。この関数は、IDirect3DDevice7::BeginScene 関数を呼び出した後で、IDirect3DDevice7::EndScene 関数を呼び出す前に呼び出す必要がある。
HRESULT D3DXDrawSprite3D(
LPDIRECTDRAWSURFACE7 pd3dTexture,
LPDIRECT3DDEVICE7 pd3dDevice,
const D3DXVECTOR4 quad[4],
float alpha = 1.0f,
const RECT* pSourceRect = NULL,
);
パラメータ
- pd3dTexture
- スプライトのソース イメージとして使用するサーフェスを示し、テクスチャが格納されているサーフェスの IDirectDrawSurface7 インターフェイスへのポインタ。これが NULL の場合、アプリケーションがテクスチャ ステージ 0 に対して IDirect3DDevice7::SetTexture を既に呼び出していると見なされる。
- pd3dDevice
- Direct3D レンダリング デバイスの IDirect3DDevice7 インターフェイスへのポインタ。レンダリング状態がセットアップされていると見なされる。詳細については、「D3DXPrepareDeviceForSprite」を参照すること。
- quad
- スクリーン座標の 4 点の配列を左上、右上、右下、左下の順序で表した D3DXVECTOR4 構造体の配列。この関数は、これらのベクトルに w 値が含まれている場合、その値を逆にして、rhw 値として渡す (逆同次座標)。IDirect3DDevice7::DrawPrimitive メソッドに渡す D3DTLVERTEX の z 座標と rhw 座標は、z 座標と w 座標が使用される。
- alpha
- スプライトに適用されるアルファ値。1.0 は全体的に不透明であり、0.0 は全体的に透明であることを意味する。ただし、アルファを使用する場合は、アーティファクト (人工物) がレンダリングされないようにするために、背景から前景へレンダリングすること。また、半透明のオブジェクトが交差しないようにすること。このアルファ値は、テクスチャ イメージ内に存在するアルファ (存在する場合) と組み合わせられる。
- pSourceRect
- ソース テクスチャの中でスプライトに使用する部分を示す RECT 構造体へのポインタ。このパラメータが NULL の場合、ソース イメージ全体がスプライトで使用される。一方、代わりにソース イメージの小矩形を指定できる。ソース テクスチャが Direct3DX を使用して作成されている場合、RECT 構造体はオリジナル イメージの座標で指定する。そのため、Direct3D カレント デバイスでイメージが機能するように Direct3DX により行われた伸張やスケーリングは必要ない。また、X と Y のミラーリングについては、この RECT 構造体の left、top パラメータと right、bottom パラメータを入れ替えるだけで簡単に指定できる。
戻り値
成功すれば、S_OK を返す。
失敗すれば、次いずれかの値を返す。
注意
C プログラマは、alpha パラメータと pSourceRect パラメータでデフォルト値を使用できない。
D3DXDrawSprite3D 関数を、非頂点三角形で使用することはお勧めしない。
この関数は、テクスチャを 3D 多角四角形にレンダリングする。四角形 ABCD を 2 つの三角形 ABC と ACD に分割し、IDirect3DDevice7::DrawPrimitive メソッドを呼び出してレンダリングする。
高度なアプリケーションでもっと豊富な制御機能が必要な場合には、IDirect3DDevice7::DrawPrimitive メソッドを参照すること。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以上が必要。Windows 95 用に再配布可能な形で使用可能。
バージョン : DirectX 7.0 が必要。
ヘッダー : d3dxsprite.h で宣言。
ライブラリ : d3dx.lib を使用。