Функция Pow против текстуры поиска в шейдере - PullRequest
1 голос
/ 27 апреля 2011

Я разрабатываю для XBOX 360 и использую функцию pow () в некоторых расчетах освещения.

6-8 лет назад раньше было обычным для использования 1D-текстуры поиска для аппроксимации pow (). Кто-нибудь еще так делает?

Стоит ли пробовать это для 6-летнего XBOX 360, или вряд ли это улучшит производительность?

1 Ответ

3 голосов
/ 28 апреля 2011

Используйте инструкцию pow (или эквивалентную встроенную функцию в HLSL). Требуется 3 слота инструкций, что указывает на то, что это достаточно быстро .

Я не сел и не выяснил точную стоимость создания таблицы поиска. Но вам будет трудно найти полезную реализацию в меньшем количестве слотов инструкций. И, очевидно, для этого требуется чтение текстуры (которое само по себе не является бесплатным, и есть большая вероятность, что чтение будет зависеть от текстуры и будет довольно медленным).

(Дополнительно: если бы текстуру поиска было лучшим выбором, то графический процессор мог бы просто реализовать инструкцию pow, подобную этой.)

Причина, по которой обычно используется текстура, заключается в том, что инструкция pow не существует ни для вершин , ни пиксельных шейдеров в шейдерной модели 1.x. В 2.x и всё более новом оно доступно ( больше наборов инструкций ).

...