【问题标题】:OpenGL VAO, VBO equivalent in DirectX11DirectX11 中的 OpenGL VAO、VBO 等效项
【发布时间】:2018-11-15 06:05:51
【问题描述】:

我正在努力实现我们游戏引擎的 directx11 实例,我是 3D 游戏编程的新手。

我对 DirectX11 图形管道和着色器以及什么是顶点缓冲区、输入布局等有所了解。

查看其中一个 API 时,代码类似于:

glBindVertexArray(current_vao);
glBindBuffer(GL_ARRAY_BUFFER, current_vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vector3) * Vertices.size(), &Vertices.front(), GL_DYNAMIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vector3), reinterpret_cast<void*>(0));
glDisableVertexAttribArray(1);
glDisableVertexAttribArray(2);
glDisableVertexAttribArray(3);
glDisableVertexAttribArray(4);
glDisableVertexAttribArray(5);
glDisableVertexAttribArray(6);
glBindBuffer(GL_ARRAY_BUFFER, 0);

DirectX11 中的 VAOVBO 等效项是什么?这段代码到底在做什么?

【问题讨论】:

    标签: directx directx-11


    【解决方案1】:

    “VBO”只是一个顶点缓冲区,在 DirectX 11 中是一个ID3D11Buffer,绑定标志为D3D11_BIND_VERTEX_BUFFER,其中包含顶点数据。

    没有直接等效于 OpenGL 的“顶点属性数组”。在 DirectX 11 中,您只需为每组类似状态设置(也称为材质属性)提交一个不同的 Draw

    如果您是 DirectX 11 的新手,您可以考虑学习 [DirectX Tool Kit tutorials

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多