D3D的实例 ---- Tutorial 02: Rendering a Triangle使用D3D画一个三角形。
1.画图的基本的单位是什么呢?
可以用顶点vertex作为画图的基本单位,用一个结构体来描述这个定点包含的属性。属性可以是位置坐标,颜色等等。这个结构体是我们自己定的,所以GPU不知道一个顶点里面有哪些属性。这时需要另一个结构体来描述这些属性的布局,这里使用的是D3D11_INPUT_ELEMENT_DESC这个结构体。
大概看一下这个结构体的内容:SemanticName:属性的名字。
SemanticIndex:同一个属性名字下面的第几个属性。也就是说这个属性重复出现的第多少次。
Format:这个属性是什么格式,占多少内存。比如DXGI_FORMAT_R32G32B32_FLOAT是12 bytes,DXGI_FORMAT_R16G16B16A16_UINT是8 bytes。
InputSlot :为0-15,先不管。
AlignedByteOffset:对齐字节,先不管。
InputSlotClass:设置为D3D11_INPUT_PER_VERTEX_DATA,别的还用不到。
InstanceDataStepRate:用不到。
注意这个结构体一次只描述顶点中的一个属性,要把一个顶点的所有属性描述清楚了,就需要D3D11_INPUT_ELEMENT_DESC的数组了。
比如vertex定义成:(只有一个属性坐标,用