Рисование трехмерного многоугольника из вершин (OpenGL / C ++)

Хорошо, это сводит меня с ума уже 4 дня. У меня нет проблем с генерацией вершин / точек, но как сделать из них замкнутый многоугольник или проволочную рамку достаточно эффективным / элегантным способом?

Другая проблема заключается в том, как хранить вершины? В каком порядке я должен хранить вершины трехмерного объекта? Я действительно не могу больше думать, и я искал решения онлайн, но не мог найти ни одного.

Я подумал о том, чтобы сохранить вершины в двумерном массиве с горизонтальными петлями (x и z) в виде строк, а вертикаль (y) в виде столбцов, но я сомневаюсь, что это хороший способ сделать это.

2

Решение

Создайте одномерный массив вершин и расположите их в том порядке, который вы предпочитаете (хотя для производительности гораздо лучше сохранять их отсортированными для примеров в полосах …). Создайте массив индексов (например, массив шорт), и каждый элемент в массиве индексов должен указывать на индекс вершины в массиве вершин. Причина того, что они построены как одномерный массив, заключается в том, что именно так OpenGL обрабатывает вещи внутренне.

Если ваша проблема заключается в том, что у вас нет массива элементов, а просто набор точек, которые вы хотите нарисовать в виде сетки, сначала вам нужно сгенерировать такой массив. Сначала поймите основы треугольной топологии: http://gamma.cs.unc.edu/COMP770/LECTURES/11trimesh.pdf а затем подумайте о способе создания сетки из набора точек.

1

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

Там нет стандартного порядка, когда дело доходит до 3d вершин. Вы можете заказать их по своему вкусу или по своему усмотрению.

1

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