495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
|||||||||||
1 | |||||||||||
Отвязка буферов для VBO и EBO19.01.2017, 11:44. Показов 2143. Ответов 1
Метки нет (Все метки)
Всем привет. У меня вопрос с порядком отвязки буферов для VBO и EBO. Вот пример кода:
glBindVertexArray(VAO); и glBindVertexArray(0); ? Если их нужно отвязывать, то делать это надо до отвязки VAO или после (после 36 строки)?
0
|
19.01.2017, 11:44 | |
Ответы с готовыми решениями:
1
Отрисовка куба через VAO, VBO, EBO Общий vao (vbo) для различных окон (контекстов) Что лучше для 2D рисования (DL, VBO, VertexArrays, glInterleavedArray, ArrayElement,.)? редактирование ebo файла |
19.01.2017, 12:25 | 2 |
Сообщение было отмечено notAll как решение
Решение
Как я понял, отвязка делается для того чтобы случайно не испортить VBO/EBO снаружи VAO. Так как VAO "помнит" лишь ссылки на данные(VBO/EBO), но "не помнит" сами данные, их(данные в буферах) можно менять почти в любом месте программы не пересобирая сам VAO заново, а это не всегда нужно. Чтобы локализовать редактирование делают отвязку.
Я бы отвязывал их на всякий случай. Для простоты можно запомнить что отвязку и VBO и EBO нужно делать после отвязки VAO. Подробнее: EBO нужно отвязывать однозначно после отвязывания VAO, иначе VAO после вызова glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); "запомнит" нулевой EBO, а VBO можно и до отвязки VAO, так как сам вызов glBindBuffer(GL_ARRAY_BUFFER, VBO); не меняет VAO, однако, текущий VBO используется в glVertexAttribPointer и запоминается в VAO именно там. Поэтому unbind VBO нужно делать после всех glVertexAttribPointer.
1
|
19.01.2017, 12:25 | |
19.01.2017, 12:25 | |
Помогаю со студенческими работами здесь
2
Отвязка демона Отвязка от локального компьютера Huawei WS319 отвязка от Киевстара Отвязка ХАСП ключа от программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |