Как визуализировать фрагментные шейдеры OpenGL ES 2.0 - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь обернуть свой мозг вокруг шейдеров OpenGL ES:

Vertex: Итак, вершинные шейдеры обрабатывают вершины для всех объектов / мешей в glDrawXXX. Например, если у вас есть 2 треугольные сетки, образующие квадрат / коробку. Это позволяет перемещаться по каждой вершине, устанавливать цвета и многое другое?

Фрагмент: Это все между вершинами?

Как получить мысленную визуализацию этого?

1 Ответ

0 голосов
/ 17 октября 2014

В самом простом, простом случае;

Вершинный шейдер вызывается для каждой вершины примитива. 100 вершин = 100 вызовов активного вершинного шейдера. Последняя стадия затем генерирует треугольники из вершин.

Теперь для каждого треугольника, сгенерированного вершинным шейдером, он растеризуется для создания фрагментов (то есть потенциальных пикселей). Растеризатор линейно интерполирует между каждой вершиной треугольника, чтобы сгенерировать расположение фрагментов треугольника. Когда вы запутываетесь, вы, вероятно, думаете, что фрагментный шейдер называется 1-к-1 вместе с вершинным шейдером. Нет, может быть от нуля до миллионов сгенерированных фрагментов - это зависит от того, насколько большим (визуально) будет конечный треугольник. Фрагментный шейдер вызывается для каждого сгенерированного фрагмента. это зависит от вершин, выводимых вершинным шейдером.

Если треугольник находится далеко от точки обзора, это может быть несколько фрагментов. Если оно близко к экрану, оно может занимать весь видовой экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...