DirectX11 输入装配阶段

输入装配(Input Assembler,IA)阶段是DirectX11图形管线的一部分,负责读取几何数据(顶点和索引)并组合成几何图元。顶点包括位置和附加属性,图元拓扑定义了顶点的组织方式,如点列表、线带、线列表、三角形带等。索引避免了顶点复制,提高了内存和处理效率。
摘要由CSDN通过智能技术生成

输入装配阶段

输入装配(Input Assembler,简称IA)阶段从内存读取几何数据(顶点和索引)并将这些数据组合为几何图元(例如,三角形、直线)。(索引将在随后的小节中讲解。简单地说,索引规定了顶点的组织形式,解释了该以何种方式组成图元。)

1. 顶点

从数学上讲,三角形的顶点位于两条边相交的位置上;而直线的顶点是端点。对于一个单个点来说,点本身就是顶点。下图说明了顶点的几何图形。
这里写图片描述
(图5.12 由三个顶点V1、V2、V3组成的三角形;由两个顶点p0、p1表示的直线;由顶点表示的点。)
图5.12说明顶点只是几何图元中的一个特殊的点。不过,在Direct3D中,顶点具有更多含义。本质上,Direct3D中的顶点由空间位置和各种附加属性组成;例如,在第7章中,我们会在顶点中添加法线向量实现光照,在第8章中,在顶点中添加纹理坐标实现纹理。Direct3D可以让我们灵活地建立属于我们自己的顶点格式(例如,允许我们定义顶点的分量)。在本书中,我们会基于要绘制的效果定义一些不同的顶点格式。

2. 图元拓扑

顶点是以一个叫做顶点缓冲区的Direct3D数据结构的形式绑定到图形管线的。顶点缓冲区只是在连续的内存中存储了一个顶点列表。它并没有说明以何种方式组织顶点,形成几何图元。例如,是应该把顶点缓冲区中的每两个顶点解释为一条直线,还是应该把顶点缓冲区中的每三个顶点解释为一个三角形?我们通过指定图元拓扑来告诉Direct3D以何种方式组成几何图元:

void ID3D11Device::IASetPrimitiveTopology(
    D3D11_PRIMITIVE_TOPOLOGY Topology);

typedef enum D3D11_PRIMITIVE_TOPOLOGY
{
    D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
    D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
    D3D11_PRIMITIVE_TOPOLOGY_LINELIST = 2,
    D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
    D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
    D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
    D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
    D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
    D3D11_PRIMITIVE_TOPOLOGY
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值