OpenGL 4.3+ массивы элементов

Я создаю свой собственный игровой движок на C ++ 14 с ядром OpenGL 4.3.

Я следую следующие уроки:

Я также следую за этими книгами:

  • OpenGL SuperBible (шестое издание)
  • Поваренная книга OpenGL 4 Shading Language (второе издание)

Обе эти книги работают с OpenGL 4.3, но learnopengl.com учит OpenGL 3.3. Это не проблема, так как я следую OpenGL 3.3 и изменяю всякий раз, когда мои другие ресурсы вводят новый способ.

В настоящее время у меня возникают проблемы с переносом массивов вершин из старого OpenGL 3.3 в новый OpenGL 4.3, как показано в книге Вольфа на стр. 31.

По старому:

gl::EnableVertexAttribArray(0);
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
gl::VertexAttribPointer(0, 3, gl::FLOAT, false, 0, nullptr);

Новый способ:

gl::EnableVertexAttribArray(0);
gl::BindVertexBuffer(0, vbo, 0, sizeof(GLfloat) * 3);
gl::VertexAttribFormat(0, 3, gl::FLOAT, false, 0);
gl::VertexAttribBinding(0, 0);

Надеюсь, это помогло вам понять, о чем я говорю. Моя настоящая проблема связана с массивами элементов, о которых Вольф не вдавался в подробности. Кроме того, я не могу найти массивы элементов в SuperBible, и индекс вводит в заблуждение (обратите внимание, что я рассматриваю SuperBible как скорее справочную информацию, чем книгу для чтения).

Следуя онлайн-документации, я предпочитаю применить следующий код:

gl::BindBuffer(gl::ELEMENT_ARRAY_BUFFER, ebo);
gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, size, ptr, gl::STATIC_DRAW);

Тем не менее, я не могу видеть свою сетку. Просто интересно, есть ли более новый способ обработки массивов элементов, который я мог упустить из виду?

Ура!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]