DirectX 游戏编程之3D空间,顶点缓存及索引缓存

本文介绍了3D物体在DirectX中的表示方式,通过三角形网格来构建模型。讲解了基本图元如点、线和三角形,以及多种顶点缓存和索引缓存的概念、创建方法和使用。讨论了如何通过D3D的顶点格式FVF自定义顶点信息,并展示了如何访问缓存内容、设置绘制状态和绘制图元。
摘要由CSDN通过智能技术生成

3D物体的模型表示

场景(scene)是物体或模型的的集合,所有物体都可以使用三角形网格逼近表示:


三角形(triangle)是构建物体模型的基本单元,也是基本图元之一(Primitive,包括点和线段)

而构成三角形的则是顶点(vertex ),顶点在3D系统中描述一个点,三角形由三个点构成

基本图元(Primitives)

3D空间图形的基本组成元素就是图元(Primitive),不仅仅是三角形,包括以下:

(以下图形在z=0平面)

1点列表(Point Lists):由系列顶点组成,每个点都是独立的,散列的

2线列表(Line Lists):每一组顶点构成一条独立分隔的线段,通常用做3D网格,雨点,路标线等物体建模

3线条纹(Line Strips):类似于线列表,但是每两条线又被一条线段连接,常用于wire-frame物体,如地形,草丛


4三角形列表(Triangle Lists):每三个顶点一组构成一个独立的三角形

5三角形条纹(Triangle Strips):三角形间相互连接


6三角形扇面(Triangle Fans):所有三角形拥有一个共同顶点


顶点缓存与索引缓存

D3D使用灵活顶点格式(Flexible Vertex Format,FVF),定义一个顶点的位置及其他信息,包括颜色、法线等,通过组合不同顶点格式,以令我们可以自定义自己的顶点格式

#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw;    // from the D3DFVF_XYZRHW flag
    DWORD color;    // from the D3DFVF_DIFFUSE flag
}

几个重要的顶点格式:

D3DFVF_XYZ

指定x,y,z坐标位置,同时它是Untransformed的,表明未经过顶点转换到屏幕坐标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值