Я работаю над реализацией экземпляра DirectX11 для нашего игрового движка и являюсь новичком в программировании трехмерных игр.
Я немного знаю о графическом конвейере и шейдерах DirectX11 и о том, какие буферы вершин, схема ввода и т. Д.are.
Если посмотреть на один из 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
?Что именно делает этот код?