0
オブジェクトに複数の頂点バッファを作成したい(オブジェクトごとに1つ)。コンストラクタは次のとおりです。OpenGL VAOとVBOオブジェクト
VertexBuffer::VertexBuffer(const GLvoid *data,
GLsizeiptr size,
GLenum mode,
GLsizei count,
GLsizei stride,
ShaderInterface *shaderInterface,
GLvoid *positionOffset,
GLvoid *normalOffset)
: _mode(mode),
_count(count),
_stride(stride),
_shaderInterface(shaderInterface),
_positionOffset(positionOffset),
_normalOffset(normalOffset)
{
glGenBuffers(1, &_vertexBufferID);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBufferID);
glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW);
//
GLuint vao = 0;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glEnableVertexAttribArray(0); //??????
glBindBuffer(GL_ARRAY_BUFFER, _vertexBufferID);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL);
//
}
オブジェクト1のVertexBufferを作成しても問題ありません。しかし、別のオブジェクト(私はそれを使用しません)を作成し、最初のオブジェクトを再度描画すると結果が正しくありません(たとえば、オブジェクトが別の場所に表示されているなど)。どうして?
あなたも描画コードを表示する必要があります。 – ybungalobill