Название говорит все, но для ясности я добавлю несколько дополнительных слов.
В данном случае, изменить размер означает:
EDIT
Что бы объяснить некоторые подробности и обосновать мой вопрос:
Я буду хранить данные (на переднем плане) неизвестного VBO размера, но я знаю только верхний предел, который является очень грубой оценкой (10 - 100 раз больше или даже больше в необычных условиях).
Конечно, я знаю, сколько данных я хранил, когда закончу с ними, поэтому было бы неплохо хранить данные до тех пор, пока я не найду свое VBO слишком маленьким и не изменю его размер, а затем продолжу хранить.
Вот почему я не хочу копировать (особенно на стороне процессора):
.
Я делаю все это на GPU, чтобы получить интерактивную частоту кадров. Когда мне приходится копировать, это очень медленно или даже невозможно, потому что не хватает места. Хуже всего копировать данные на CPU, а значит, передавать все по шине, в новую область памяти, имеющую достаточный размер, затем glBufferData
ing VBO с новым размером и новой областью памяти в качестве источника. Это будет убийца производительности.
обошел
я обошел проблему с точной оценкой необходимого пространства. Но я позволю этому вопросу остаться без ответа в течение недели, чтобы посмотреть, есть ли у кого-нибудь другой намек на это, так как я не очень доволен решением.