Как мне использовать GLTriangleBatch

Я занимаюсь разработкой реального приложения, которое должно отображать на экране сплошные белые многоугольники и со временем менять их альфа-значения. Я пытаюсь научиться пользоваться GLTriangleBatch чтобы выполнить это (я хорошо знаю C ++, но не так много о OpenGL), и я не смог найти хороших примеров в Интернете. До сих пор я нашел несколько ресурсов, которые побудили меня собрать следующий фрагмент кода, но я все еще запутался в некоторых частях:

GLTriangleBatch myTriangles;
myTriangles.BeginMesh(1000000); // Include how many vertices you have: 1???
myTriangles.AddTriangle(...);   // Add a triangle: 2???

// Repeat for all triangles for this batch
myTriangles.End();  // Done adding triangles
myTriangles.Draw(); // Draw the triangles

Я пометил части, с которыми я путаюсь, и вопросы приведены ниже:

  • Вопрос 1: Должно ли это число вершин быть точным, или можно переоценить и / или недооценить? Кроме того, представляет ли это число вершин «пакетные» вершины или отдельные вершины каждого треугольника (например, для 2 соединенных треугольников с 2 общими вершинами требуется 6 вершин или 4?)

  • Вопрос 2: Параметры:

    • M3DVector3f verts [3]: я предполагаю, что 3 вершины треугольника
    • M3DVector3f vNorms: Что это такое и как мне его настроить?
    • M3DVector2f vTexCoords [3]: я предполагаю, что это как-то связано с текстурой, все, что мне нужно, это белый треугольник и возможность изменять его альфа-значение. Как бы я это настроил?

0

Решение

это GLTriangleBatch Класс, очевидно, является частью фреймворка, поставляемого с книгой OpenGL Super Bible. Он не является частью стандарта OpenGL (OpenGL — это простой C API).

Что касается первого вопроса, я предполагаю nMaxVerts параметр BeginMesh() верхний предел вершин, которые вы хотите нарисовать (каждый треугольник = 3 вершины). Таким образом, вы можете установить либо точное значение, либо завышенную оценку. Но вам нужно найти документацию или посмотреть на источник знать наверняка.

На второй вопрос да verts[3] три позиции, которые составляют треугольник.
vNorms это Лицо Нормальное треугольника. Используется для расчета освещения. И последний член, vTexCoords[3] являются Координаты текстуры треугольника. Они используются для наложения текстур. Вы можете установить их на ноль, если вы не применяете текстуру к своей сетке.

3

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


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector