Я надеялся сделать игру «Ханойская башня» с использованием opengl. В конце концов я столкнулся с проблемой обработки и передачи данных из одного объекта буфера в другой. Я успешно сохранил свои вершины в объекте буфера и связал его с массивом вершин. А теперь хотите переместить это в другой созданный буферный объект, связанный с другим массивом вершин. Проблема в том, что когда я пытаюсь получить свои вершины, используя glGetBufferSubData, мой массив данных показывает, что все его элементы равны нулю (я напечатал его на консоли). Я дважды проверил, видит ли мой буферный объект правильные данные, и, похоже, так оно и есть. Пожалуйста, помогите мне, я нахожусь на конце моей веревки здесь.
Мой код:
struct Stack
{
unsigned int top;
VA vao;
};
void transfer(Stack& s1, Stack& s2)
{
float data[20];//collects data
s1.vao.Bind();
glGetBufferSubData(GL_ARRAY_BUFFER, 0, 20* sizeof(float), data);`
for (int i = 0; i < 20; i+=5)//prints data collected
{
cout << i+1 << "th loop" << endl;
for (int j = i; j < i + 5; j++)
{
cout << data[j]<<"\t";
}
cout << endl;
}
s2.vao.Bind();
glBufferSubData(GL_ARRAY_BUFFER, 0, 20 * sizeof(float), data);
}
Экран вывода, надеюсь,