DirectX的Vertex Buffer顶点缓冲的理解和应用 Shader必知必会
gd3dDevice->SetVertexDeclaration(Decl);gd3dDevice->SetStreamSource(0, mGridVB, 0, sizeof(VertexPNT));gd3dDevice->SetIndices(mGridIB));
如下定义了一个数组,包括了顶点位置,单位向量和纹理坐标。然后顶一个了一个IDirect3DVertexDeclaration9接口Decl
D3DVERTEXELEMENT9 VertexPNTElements[] = {{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},{0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0},{0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},D3DDECL_END()};HR(gd3dDevice->CreateVertexDeclaration(VertexPNTElements, &Decl));
总的来说,这个是非常难理解的概念,但是要用shader的话,又是必须要过的第一关。这也是shader入门难的缘故之一吧。