Как создать разноцветную квадратную сетку в OpenGL ES 2.0? - PullRequest
3 голосов
/ 08 ноября 2010

Используя Open GL ES 2.0, я хочу создать большую сетку квадратов, где каждый квадрат может иметь определенный цвет, определенный файлом определения. Так что это не простая шахматная доска только из черных и белых квадратов ...
Каков наилучший способ сделать это, чтобы избежать артефактов?

Заранее спасибо

1 Ответ

2 голосов
/ 10 ноября 2010

Нет ничего, что бы неявно вызывало артефакты при рисовании сетки квадратов.В чертеже нет проблем с z-боями, глубиной или прозрачностью, как описано в этом вопросе.

В приложении создайте массив вершин с двумя атрибутами (позиция, цвет) для каждой вершины.Для каждого квадрата в сетке вам понадобятся 4 вершины.Это опишет 2 независимых треугольника, которые составляют каждый квадрат сетки.Избегайте использования треугольных полос, потому что вы не хотите, чтобы атрибут цвета разделялся или интерполировался между смежными квадратами сетки.

Таким образом, ваш массив вершин в памяти будет:сквозная пара шейдеров, которая отправляет цвет вершины как изменяющийся фрагментный шейдер.Цвет фрагмента просто устанавливает выходной цвет равным значению переменной.

Если вы размещаете положения сетки от -1,0 до 1,0, вам даже не нужно добавлять униформу просмотра преобразования или соответствующую логику шейдера.1010 *

Сделайте один вызов отрисовки, чтобы нарисовать ваш массив вершин с помощью glDrawArrays(GL_TRIANGLES, ...).

...