OpenGL VAO,DirectX11 中的 VBO 等价物
OpenGL VAO, VBO equivalent in DirectX11
我正在努力实现我们游戏引擎的 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);
VAO
和 VBO
在 DirectX11
中的等价物是什么?这段代码到底在做什么?
我正在努力实现我们游戏引擎的 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);
VAO
和 VBO
在 DirectX11
中的等价物是什么?这段代码到底在做什么?