Попытка установить буфер динамического индекса в OpenGL [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Попытка установить буфер динамического индекса в OpenGL [закрыто]

Сообщение Anonymous »

Я пытаюсь визуализировать простой фрагмент в клоне Minecraft, чтобы оптимизировать процесс рендеринга. Я пытался визуализировать только лица без блоков впереди. Но при этом я сталкиваюсь с множеством проблем с индексами. Я использую std::vector, но при рендеринге на экране ничего не отображается. Можете ли вы мне помочь? Я думаю, проблема в том, как я копирую данные в буфер.

Код: Выделить всё

if (x+1>=32) {
auto v = createLeftFace(x, y, z, this->chunkData[i].color);
std::vector verticeTemp(v.begin(), v.end());
vertices.insert(vertices.begin()+facesAdded*4, verticeTemp.begin(), verticeTemp.end());
indices.insert(indices.begin()+j, 2+offset);
indices.insert(indices.begin()+j+1, 0+offset);
indices.insert(indices.begin()+j+2, 3+offset);
indices.insert(indices.begin()+j+3, 3+offset);
indices.insert(indices.begin()+j+4, 0+offset);
indices.insert(indices.begin()+j+5, 1+offset);
facesAdded+=1;
j+=36;
offset+=4;
}

x+=1.f;
if(x>=CHUNK_WIDTH) {
x=0.f;
y+=1.f;
}

if(y>=CHUNK_HEIGHT) {
y=0.f;
z+=1.f;
}
}

glBindBuffer(GL_ARRAY_BUFFER, this->VBO);
glBufferSubData(GL_ARRAY_BUFFER, 0, vertices.size()*sizeof(vertice), &vertices.front());
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, this->EBO);
glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, indices.size()*sizeof(uint32_t), &indices.front());
Это предназначено только для создания левых граней куба, но как только я смогу это сделать, мне будет легко перейти к другим граням.
Я попытался установить их с помощью массива, все точки как бы сходятся к началу координат, потому что все они установлены на 0, поэтому они переходят к первой точке в буфере вершин.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -in-opengl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»