Я использую glBufferData, и для меня имеет смысл указать, что вам нужно указать подсказки использования (например, GL_DYNAMIC_DRAW).
Однако недавно я предложил в Stack Overflow использовать glMapBuffer или glMapBufferRange для изменения несмежных блоков данных вершин.
При использовании glMapBuffer, кажется, нет точки, в которой вы указываете подсказку об использовании. Итак, мои вопросы таковы:
- Можно ли использовать
glMapBufferдля данного VBO, если вы никогда не вызывалиglBufferDataна этом VBO? - Если да, то как OpenGL угадывает использование, так как ему не дали подсказки?
- Каковы преимущества/недостатки
glMapBuffervsglBufferData? (Я знаю, что они не делают то же самое. Но кажется, что, получив указатель сglMapBuffer, а затем записывая на этот адрес, вы можете сделать то же самое, что иglBufferData.)