c++ - D3D11 中是否有等同于 OpenGL glVertexAttrib() 的函数?

标签 c++ opengl direct3d vertex-shader

我希望能够为 D3D11 中的一个顶点属性设置一个常量值。

在 D3D11 中,以下代码等效于什么?

glVertexAttribPointer(pos, &pos[0], ...);
glEnableVertexAttribArray(pos);

glVertexAttribPointer(color, NULL, ...);
glDisableVertexAttribArray(color);

glVertexAttrib4fv(color, &defaultColor);

glDrawArrays(...);

最佳答案

在为 Input Assembler 创建输入布局时,您可以指定是按顶点还是按实例提供属性:

typedef enum D3D11_INPUT_CLASSIFICATION { 
  D3D11_INPUT_PER_VERTEX_DATA    = 0,
  D3D11_INPUT_PER_INSTANCE_DATA  = 1
} D3D11_INPUT_CLASSIFICATION;

您可以在每个实例的基础上为所有顶点提供恒定的颜色。

关于c++ - D3D11 中是否有等同于 OpenGL glVertexAttrib() 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17257408/

相关文章:

c++ - 删除 multimap 中重复项的有效方法?

c++ - 使用 Visual Studio 2010 实现 CURL

c++ - 使用 extern 从 Haxe 访问 C++ 类

macos - 在连接到不同 GPU 的显示器上渲染时会发生什么

c++ - 使用 VBO 时的 EXC_BAD_ACCESS

c++ - 几个 Direct3D 设备和 Intel GMA945

c++ - 在 Vulkan 中加载非二次幂纹理

c++ - 如何在 SFML 或 OpenGL 中将纹理正确映射到凸多边形?

c++ - direct3d 中奇怪的照明效果切换黑暗和光明

c++ - 如何最好地封装窗口句柄?