[opengl] смена цвета для всех вершин одновременно

 
0
 
C++
ava
drug007 | 07.12.2016, 16:45
Всем доброго времени суток.
Есть необходимость смены цвета для всех вершин одновременно. На ум приходит color index mode, но он вроде как уже устарел. Пробегаться по всему VBO меняя цвет вершин кажется избыточным. Может кто подсказать оптимальное решение задачи в современном opengl?
Заранее спасибо.
Kommentare (1)
ava
tzirechnoy | 13.12.2016, 18:13 #
А зачем у вас цвета вершын хранятся во всём VBO? Массив цветов обычно отдельный. Или не массив, а параметр шэйдера/юниформ, вот это всё. Неважно. В любом случае, типичная организацыя данных -- это отдельный массив координат (один массив с дэкартовыми тройками), отдельный массив нормалей, отдельный массив цветов, отдельный массив параметров материала (для освещения).

Иногда ещё массив индэксов, чтобы можно было уменьшыть остальные массивы (координат и нормалей -- примерно втрое, цветов и материалов -- вообще во много раз, поскольку часто хватает нескольких цветов и одного-двух материалов на модэль из сотен треугольников), но это по факту не всегда выгодно по скорости.

Но, в любом случае, современный OpenGL -- понятие очень растяжымое. Вы всё-таки опишыте, примерно, какой сложности модэль рисуете, чем её задаёте, какими функцыями передаёт внутрь OpenGL, чем параметризуете, есть ли кости, используете ли шэйдэры (понимаю, что "современный OpenGL это подразумевает, но Вы не ленитесь, описывайте), и если да, то какие, как пихаете параметры в шэйдэры и между стадиями. После этого можно будет понять, что Вам непонятно.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden