Где выполнять вычисления шейдера и как не переплачивать за точность
Вершинный шейдер запускается для каждой вершины, а фрагментный — для каждого фрагмента, примерно одного образца покрытого пикселя. У треугольника остаются три вершины, но при увеличении его площади на экране число фрагментов быстро растёт. Поэтому тяжёлая математика во фрагментном шейдере обычно сильнее увеличивает время кадра.
Часть вычислений можно выполнить для вершин, а результаты интерполировать по поверхности. Это дешевле, но на крупных треугольниках освещение может потерять детали: блик вычисляется лишь в углах и затем размазывается между ними. Расчёт для каждого фрагмента точнее, хотя требует больше работы GPU.
Интерактивные схемы графического конвейера показывают растеризацию, интерполяцию нормалей и разницу нагрузки. Они помогут решить, что переносить в вершины, а что оставлять для попиксельного расчёта.
Post #2100
539

- ❤ 2
- 👍 1