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