第一个平行四边形

   昨天下午画出第一个D3D下的三角形,二个小时候画出第一个平行四边形。虽然粗糙点,但还算有点成绩,哈哈。

绘制前需要掌握的一些知识。
一、顶点(Vertex):D3D中的一个坐标点。坐标点由(x,y,z)三个坐标值来定位。
二、FVF(Flexible Vertex Format):自由顶点格式,也有资料叫灵活顶点格式。反正都查不多。意思就是根据自己的需要,自己来定义一个记录顶点信息的结构体。
注:虽然自己能做了,但是对这个东西确实有点是是而非的理解。D3D凭什么能从一个内存区域中识别我的格式定义?OK,SetFVF的参数中已经指定了结构体中包含的有哪些字段,但是字段的顺序呢?我声明了 D3DFVF_XYZRHW 标记,但是如果我的结构体定义的字段是a,b,c,rhw怎么办,或者我不按顺序,弄个x,rhw,z,y,他也可以正确识别吗?就我现在那点C++基础,还是不去深究这个问题了,不过早晚会有一天,我要把这个问题挖出个根出来的。
三、顶点缓冲(Vertex Buffer):据说有2种缓冲,不过暂时接触的就这一钟了,其实就是用来存储一个顶点结构体的数组。为了定义并使用这个顶点缓冲,需要由至少3个函数配合使用,依次如下:
1.CreateVertexBuffer:创建一个顶点缓冲区
2.SetStreamSource:绑定一个顶点缓冲区到指定的着色寄存器内。一个DirectD3DDrive可以最多拥有16个着色寄存器;
3.SetFVF:设置d3d着色寄存器中顶点数据的格式。
四、绘制操作。貌似很多D3D的绘制都这个叫 DrawPrimitive 的函数,函数的第一个参数是一个枚举值,分别如下:

D3DPT_POINTLIST
点列表:将一连串的顶点作为像素进行绘制
D3DPT_LINELIST
线列表:彼此孤立(彼此没有发生连接)的一些直线
D3DPT_LINESTRIP
线带:一连串连接的直线。每条直线都是从前一个顶点到当前顶点绘制而成,很像连接点
D3DPT_TRIANGLELIST
三角形列表:索引区每隔三个一个三角形。
D3DPT_TRIANGLESTRIP
三角形带:索引区中每三个一个三角形,前一个三角形的后两个顶点和后一个三角形的前两个顶点重合。即绘制的第一个三边形使用3个顶点,后面绘制的每一个三角形只使用一个额外的顶点。
D3DPT_TRIANGLEFAN
   三角扇形:索引区中第一个点为公共顶点,后面依次展开,每两个点和公共定点组成三角形。
D3DPT_FORCE_DWORD
   还不清楚干什么用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值