OpenGL VAO,与DirectX11中的VBO等效

OpenGL VAO,与DirectX11中的VBO等效,directx,directx-11,Directx,Directx 11,我正在努力实现我们游戏引擎的directx11实例,我是3d游戏编程的新手 我对DirectX11图形管道和着色器以及顶点缓冲区、输入布局等略知一二 查看其中一个API时,代码如下所示: glBindVertexArray(current_vao); glBindBuffer(GL_ARRAY_BUFFER, current_vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(Vector3) * Vertices.size(), &Vertices.f

我正在努力实现我们游戏引擎的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);
glBindVertexArray(当前值);
glBindBuffer(GL_数组_缓冲区,当前_vbo);
glBufferData(GL_数组_缓冲区,sizeof(Vector3)*顶点.size(),&顶点.front(),GL_动态_绘制);
GlenableVertexAttributeArray(0);
glvertexattributepointer(0,3,GL_FLOAT,GL_FALSE,sizeof(Vector3),reinterpret_cast(0));
glDisableVertexAttributeArray(1);
GLDisableVertexAttributeArray(2);
GLDisableVertexAttributeArray(3);
GLDisableVertexAttributeArray(4);
GLDisableVertexAttributeArray(5);
GLDisableVertexAttributeArray(6);
glBindBuffer(GL_数组_BUFFER,0);
这在
DirectX11
中的
VAO
VBO
等价物是什么?这段代码到底在做什么?

一个“VBO”只是一个顶点缓冲区,它在DirectX 11中是一个
ID3D11Buffer
,绑定标志为
D3D11\u bind\u vertex\u buffer
,其中包含顶点数据

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

如果您对DirectX 11是全新的,您可以考虑通过DirectX工具包教程。