Я недавно изучал opengl через учебники по http://learnopengl.com/, но я пришел к вопросу о том, что массив, который вы размещаете в GLbufferdata, должен иметь фиксированный размер, который вы объявляете при инициализации. Однако в моей программе я хочу, чтобы это было так, что динамическое число объектов, которые могут быть созданы и удалены (сделаны через список), имеют параметры, которые появляются на экране.Как изменить количество значений, помещенных в буферы вершин в opengl?
Мне удалось создать код, который берет данные из объектов и преобразует их в массив и массивы поплавков для VBO и массив целых чисел для EBO, однако этот массив, похоже, не может изменить размер, поэтому пока моя программа может установить массив в правильный размер в зависимости от того, сколько объектов на нем должно начаться. Я не могу повторно объявить массив, означающий, что если я захочу добавить больше объектов, они не будут отображаться.
Я мог бы, конечно, установить массив больше, чем он мне нужен, но это кажется неэффективным и обходящим проблему.
Спасибо за помощь, кстати :).
Редактировать: Here - это ссылка на более сжатую версию, которая должна помочь кратко описать проблему. Линия 99/100 - это то, где я создаю массив, однако при компиляции ничего не появляется.
Не можете ли вы динамически распределить массивы с помощью 'new'? Что вы подразумеваете под «невозможно повторно объявить массив»? Просто освободите старую память и выделите новую. –
Проблема заключается в том, что вам нужно передать указатель на массив, который затем не работает по какой-либо причине, ни одна из вершин не нарисована. Возможно, я ошибаюсь, но я не вижу, как (мне удалось нормально работать с нормальными точечными массивами). – Nesou2
Затем покажите код, иначе его трудно сказать, что здесь не так. – BDL