我想繪製該平面的圖片。 如何使用directX創建/繪製/渲染網格(平面)?
現在我嘗試頂點緩衝區和DrawPrimitive是D3DPT_LINESTRIP。但不是我想要的效果。
所以任何方式超過有效,???
請給我一些建議。謝謝。
我想繪製該平面的圖片。 如何使用directX創建/繪製/渲染網格(平面)?
現在我嘗試頂點緩衝區和DrawPrimitive是D3DPT_LINESTRIP。但不是我想要的效果。
所以任何方式超過有效,???
請給我一些建議。謝謝。
您可以使用DrawPrimitive
和D3DPT_TRIANGLESTRIP
作爲飛機。然後用D3DPT_LINELIST
繪製索引線,深度偏差。這樣,即使他們躺在飛機上,你也不會得到任何z戰鬥。
我將向你介紹一本書Introduction to 3D programming with DirectX
,它有一個很大 細節上如何做到這一點在第8章第4節
這可能是一種選擇,並不是最佳的,但會achive該網格
void DrawGrid (float32 Size, CColor Color, int32 GridX, int32 GridZ)
{
// Check if the size of the grid is null
if(Size <= 0)
return;
// Calculate the data
DWORD grid_color_aux = Color.GetUint32Argb();
float32 GridXStep = Size/GridX;
float32 GridZStep = Size/GridZ;
float32 halfSize = Size * 0.5f;
// Set the attributes to the paint device
m_pD3DDevice->SetTexture(0,NULL);
m_pD3DDevice->SetFVF(CUSTOMVERTEX::getFlags());
// Draw the lines of the X axis
for(float32 i = -halfSize; i <= halfSize ; i+= GridXStep)
{
CUSTOMVERTEX v[] =
{ {i, 0.0f, -halfSize, grid_color_aux}, {i, 0.0f, halfSize, grid_color_aux} };
m_pD3DDevice->DrawPrimitiveUP(D3DPT_LINELIST,1, v,sizeof(CUSTOMVERTEX));
}
// Draw the lines of the Z axis
for(float32 i = -halfSize; i <= halfSize ; i+= GridZStep)
{
CUSTOMVERTEX v[] =
{ {-halfSize, 0.0f, i, grid_color_aux}, {halfSize, 0.0f, i, grid_color_aux} };
m_pD3DDevice->DrawPrimitiveUP(D3DPT_LINELIST,1, v,sizeof(CUSTOMVERTEX));
}
}
的CUSTOMVERTEX結構:
struct CUSTOMVERTEX
{
float32 x, y, z;
DWORD color;
static unsigned int getFlags()
{
return D3DFVF_CUSTOMVERTEX;
}
};
注:僅與線網格,所以你需要畫一個堅實的平面上,爲了只要你想得到像結果一樣的樣子。
你是什麼意思「沒有效果我想要」?你究竟得到了什麼? –