Я создаю VBO, заполнение ее данными, то, что данные отображаются с помощью следующего кода:Порядок аргументов в glBindBuffer
// Buffer data
glGenBuffers(1, &VBOID);
glBindBuffer(VBOID, GL_ARRAY_BUFFER); // Shouldn't these be the other way around?
glBufferData(GL_ARRAY_BUFFER, bufferSize, buffer, GL_STATIC_DRAW);
glVertexPointer(3, GL_FLOAT, 0, buffer);
// Draw arrays
glBindBuffer(VBOID, GL_ARRAY_BUFFER);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, bufferSize);
glDisableClientState(GL_VERTEX_ARRAY);
Однако ссылка OPENGL (https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml) говорит, что glBindBuffer функция принимает целевой ТИП буфера, затем идентификатор буфера, а не наоборот. Когда я помещаю их таким образом, ничто не рисует на экране, однако, когда они являются «неправильными», вокруг это кажется очень хорошим.
Для уточнения:
// Should be this
glBindBuffer(GL_ARRAY_BUFFER, VBOID);
// Only this works
glBindBuffer(VBOID, GL_ARRAY_BUFFER);
Я чувствую, что это один из тех, кто действительно тупых вопросов, но я просто не могу видеть, где проблема. Может ли кто-нибудь пролить свет на ситуацию?
Спасибо.
Ах, спасибо. Вы никогда не знаете, это может иметь значение. Что конкретно определяет немедленный режим? Я думал, что это только геометрия, нарисованная с помощью glBegin() и glEnd()? – ipe369
'glVertexPointer' определенно устарел, а также' glColorPointer', 'glNormalPointer' и остальные атрибуты фиксированного конвейера. –