关于FVF

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, } 
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值