我希望能够为D3D11中的一个顶点属性设置一个常量值。
D3D11中以下代码的等价物是什么?
glVertexAttribPointer(pos, &pos[0], ...);
glEnableVertexAttribArray(pos);
glVertexAttribPointer(color, NULL, ...);
glDisableVertexAttribArray(color);
glVertexAttrib4fv(color, &defaultColor);
glDrawArrays(...);
答案 0 :(得分:1)
为输入汇编程序创建输入布局时,您可以指定是为每个顶点还是每个实例提供属性:
typedef enum D3D11_INPUT_CLASSIFICATION {
D3D11_INPUT_PER_VERTEX_DATA = 0,
D3D11_INPUT_PER_INSTANCE_DATA = 1
} D3D11_INPUT_CLASSIFICATION;
您可以基于每个实例为所有顶点提供常量颜色。
答案 1 :(得分:0)
将glVertexAttrib4fv与glDrawArrays一起使用意味着常量与绘图中的所有顶点相同。
<{3}}中的教程7“纹理映射和常量缓冲区”描述了将常量传递给着色器的一般方法。