在过去的一个月左右,我一直在努力学习DirectX。因此,我一直在DirectX 9和10之间来回切换。其中一个主要的变化是如何在图形卡中处理向量。
我注意到的一个重大变化是如何让GPU识别您的结构体。在DirectX 9中,您需要定义灵活的顶点格式。
您通常的设置应该像这样:
#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
在DirectX 10中,我相信等效的内容是输入顶点描述:
D3D10_INPUT_ELEMENT_DESC layout[] = {
{"POSITION",0,DXGI_FORMAT_R32G32B32_FLOAT, 0 , 0,
D3D10_INPUT_PER_VERTEX_DATA, 0},
{"COLOR",0,DXGI_FORMAT_R32G32B32A32_FLOAT, 0 , 12,
D3D10_INPUT_PER_VERTEX_DATA, 0}
};
我注意到在DirectX 10中它更具描述性。除此之外,还有哪些重大变化,并且HLSL语法是否相同?