顶点
在dx11中,顶点由空间位置和各种附加属性组成。D3D允许我们灵活地建立属于自己的顶点格式。要创建一个自定义的顶点格式,必须创建一个包含顶点数据的结构体。
例如下面两种不同类型的顶点格式,第一个由位置和颜色组成,另一个由位置、发现和纹理坐标组成。
struct Vertex1
{
XMFLOAT3 Pos;
XMFLOAT4 Color;
};
struct Vertex2
{
XMFLOAT3 Pos;
XMFLOAT3 Normal;
XMFLOAT2 Tex0;
XMFLOAT2 Tex1;
};
顶点缓存
物体模型是用多边形网格来描述的,一般的是三角形,顶点缓存就是来存储用来描述物体模型的所有多面形的顶点的信息,这些信息有顶点的三维坐标,顶点颜色,顶点法向量,纹理坐标等。
如何使用顶点缓存
使用顶点缓存分为四步
1 设计顶点缓存
就是用来说明你的顶点中有哪些信息
比如:
struct MYVERTEX
{
float x,y,z;//顶点的三维坐标 x,y,z
DWORD color;//顶点的颜色值
}
然后用一个宏来描述顶点所包含的信息,以便随后设置到环境中
#deifne D3DFVF_MYVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
2 创建顶点缓存
函数 CreateVertexBuffer
LPDIRECT3DVERTEXBUFFER9g_pVertexBuffer = NULL;
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVertexBuffer, NULL ) ) )
{
return E_FAIL;
}
3 访问顶点缓存
访问之前需要先把顶点缓存的内存锁住,然后读写数据,然后解锁,直接贴出代码
4 绘制图形
这里就是绘制三角形