Directx 顶点和顶点缓存

顶点

    在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;
}

扫描二维码关注公众号,回复: 12789940 查看本文章

    3 访问顶点缓存
    访问之前需要先把顶点缓存的内存锁住,然后读写数据,然后解锁,直接贴出代码

    4 绘制图形
    这里就是绘制三角形

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/113706791