Выделение объекта буфера вершин

Я пытаюсь создать ландшафт из карты высот в OpenGL (C ++), и следующие этот урок.

Я также пытаюсь использовать объект буфера вершин, чтобы ускорить его. В их примере они создают объект вершины с 3 числами с плавающей запятой для x, y, z. Затем они передают указатель на массив этих объектов вершин, которые будут скопированы в буферный объект. Чего я не понимаю, так это того, что для размера параметра буфера они передают ему размер 3-х чисел (умноженный на количество вершин).

Конечно, объекты вершин, передаваемые ему, больше, чем просто размер 3-х чисел? Функция glBufferDataARB каким-то образом извлекает эти переменные? Размер объекта равен размеру переменных в нем? или я что-то упустил?

1

Решение

VBOs хранят байты. Потом gl*Pointer() и / или glVertexAttrib() вызовы говорят OpenGL, как интерпретировать эти байты.

Для хранения трех поплавков вам нужно sizeof(float) * 3 байт.

Хранить N три вершины с плавающей запятой, которые вам нужны sizeof(float) * 3 * N байт.

2

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

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

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