FVF(FlexibleVertexFormat)是Direct3d中的可变顶点格式通过它可以定义三角形的顶点格式然后通过创建顶点缓冲区并设置渲染源 FVF(Flexible Vertex Format) 是Direct3d中的可变顶点格式通过它可以定义三
使用的是2-D图形就指定2D屏幕坐标如果使用的是本地或者世界空间的坐标就能指定3d中的坐标。
FVF所有适合的标志如下
D3DFVF_XYZ 3D
D3DFVF_XYZRHW 2D
DEDFVF_NORMAL 包含法线
D3DFVF_DIFFUSE 包含漫反射分量
D3DFVF_TEX1 包含一个纹理坐标对
D3DFVF_XYZ和D3DFVF_XYZRHW的区别是
1.D3DXYZ默认的坐标系统用户区中心是 (0,0) 而rhw的是左上角 (0,0)
2.D3DXYZ默认的非光照的而RHW默认就是高洛夫的光照模式。
D3DFVF_XYZ的代码可以这样 struct CUSTOMVERTEX { FLOAT x, y, z; }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL) CUSTOMVERTEX Vertices[] { { -1,-1,0,}, { 0,1,0,}, { 1,-1,0,}, }; D3DFVF_XYZRHW的代码是这样的 struct CUSTOMVERTEX { float x,y,z; DWORD color; }; #define D3DFVF_CUSTOMERVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) CUSTOMVERTEX vertices [ ]{ { 0.0f,100.0f, 0.0f, 1.0f,0xffff0000}, { 200.0f,100.0f, 0.0f,1.0f, 0xff0000ff}, { 100.0f,300.0f, 0.0f, 1.0f,0xffffffff, } };