Производительность шейдеров (фрагмент Vertex VS) - PullRequest
5 голосов
/ 24 мая 2011

Простой вопрос:

ВСЕГДА лучше делать сложные вычисления внутри вершинного шейдера, а не во фрагментном шейдере?Даже для моделей с высокой сеткой, с более чем 100 000 полигонов (при условии, что существует множество уникальных вершин)?

1 Ответ

5 голосов
/ 24 мая 2011

Нет, это не всегда лучше.

Лучший способ выбрать правильное место расчетов - эксперимент. Попробуйте оба варианта и посмотрите, что лучше для ваших ограничений и оборудования.

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

Советы по выполнению всего в вершинном шейдере (если не на процессоре) исходят из идеи, что ваше отношение пикселей к вершинам визуализированной трехмерной модели всегда должно быть высоким. Нет необходимости в детализации геометрии, если вы видите объект на очень большом расстоянии, для этого используются уровни детализации (LOD) геометрии. Так что, если вы делаете это «хорошим» способом - вам нужно рассчитывать на уровне вершин. Если ты не следуешь - ты один.

...