Это немного зависит от ваших требований.
Если вам не нужен доступ к сетке после генерации, а нужно только визуализировать ее, самый быстрый вариант - создать буфер вершин с glGenBuffers
, отобразить его в память с помощью glMapBuffer
, записать ваши данные в буфер, затем удалите его с помощью glUnmapBuffer
. Рисование будет очень быстрым, потому что все данные могут быть загружены в память видеокарты.
Если вам нужно получить доступ к данным меша после его генерации или если вы планируете регулярно их модифицировать, возможно, вам лучше построить свои данные вершин в обычном массиве и использовать массивы вершин с glVertexPointer
и друзьями.
Вы также можете использовать комбинацию: сгенерировать данные сетки в основной памяти, затем memcpy()
в буфер сопоставленных вершин.
Наконец, если под «измерениями» вы подразумеваете просто масштабирование всего объекта, вы можете создать его в автономном режиме в любой программе трехмерного моделирования и использовать преобразования OpenGL, например glScale
, чтобы применить размеры к сетке при рендеринге.