在 Direct3D 中,您可以创建您喜欢的任何类型的顶点。您可以拥有一个仅包含位置信息的简单顶点,也可以添加颜色信息、纹理信息等。创建输入布局时,您可以定义已实现的顶点的哪些部分:
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, D3D10_APPEND_ALIGNED_ELEMENT, D3D10_INPUT_PER_VERTEX_DATA, 0 },
};
我的问题是,我是否应该使用所有输入类型(位置、颜色、纹理等)定义一个顶点结构。或者我应该创建几个顶点结构,每个都有不同类型的输入。
使用多个类的缺点是您必须创建和维护多个类,并且知道要使用哪种类型的顶点可能会令人困惑。具有 1 个顶点结构的缺点是什么?