Microsoft DirectX 8.0 (Visual Basic)

ボリューム テクスチャの使い方

次のコードは、ボリューム テクスチャを使用するために必要な手順を示している。

まず、各頂点に対して 3 つのテクスチャ座標を持つカスタム頂点タイプを指定する。次のコードに例を示す。

Private Type VOLUMEVERTEX
    Dim x As Single
    Dim y As Single
    Dim z As Single
    Dim color As Long
    Dim tu As Single
    Dim tv As Single
    Dim tw As Single
};

Const D3DFVF_VOLUMEVERTEX = (D3DFVF_XYZ Or D3DFVF_DIFFUSE Or _
                             D3DFVF_TEX1 Or D3DFVF_TEXCOORDSIZE3_0)

次に、頂点にデータを設定する。

Dim Vertices(3) As VOLUMEVERTEX

With Vertices(0):
    .x = 1.0: .y = 1.0: .z = 0.0: .color = &HFFFFFFFF .tu = 1.0: .tv = 1.0: .tw = 0.0
End With

With Vertices(1):
    .x = -1.0: .y = 1.0: .z = 0.0: .color = &HFFFFFFFF .tu = 0.0: .tv = 1.0: .tw = 0.0
End With

With Vertices(2):
    .x = 1.0: .y = -1.0: .z = 0.0: .color = &HFFFFFFFF .tu = 1.0: .tv = 0.0: .tw = 0.0
End With

With Vertices(3):
    .x = -1.0: .y = -1.0: .z = 0.0: .color = &HFFFFFFFF .tu = 0.0: .tv = 0.0: .tw = 0.0
End With

次に、頂点バッファを作成し、頂点のデータを設定する。

次の手順は、Direct3DDevice8.CreateVolumeTexture メソッドを使用して頂点シェーダを作成することである。次のコードにその例を示す。

Dim volTexture As Direct3DVolumeTexture8

Set volTexture = m_D3DDevice.CreateVolumeTexture(8, 4, 4, 1, 0, _
                                                 D3DFMT_R8G8B8, _
                                                 D3DPOOL_MANAGED)

プリミティブをレンダリングする前に、カレント テクスチャを前の手順で作成したボリューム テクスチャに設定する。次のコードは、三角形のストリップのレンダリング プロセス全体を示している。

d3dDevice.BeginScene

' ボリューム テクスチャで四角形を描画する。
Call d3dDevice.SetTexture(0, volTexture)
Call d3dDevice.SetVertexShader(D3DFVF_VOLUMEVERTEX)
Call d3dDevice.SetStreamSource(0, VB, len(Vertices(0))
Call d3dDevice.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2)

' シーンを終了する。
d3dDevice->EndScene