Благодаря наличию вычислительных шейдеров как для DirectX, так и для OpenGL теперь можно реализовать множество алгоритмов без прохождения процесса растрирования и вместо этого использовать вычисления общего назначения на графическом процессоре для решения проблемы.
Для некоторых алгоритмов это кажется интуитивным каноническим решением, потому что они изначально не основаны на растеризации, а шейдеры на основе растеризации кажутся обходным решением для использования мощности графического процессора (простой пример: создание текстуры шума. Здесь не нужно растеризовать квадраторы). ).
Учитывая алгоритм, который может быть реализован обоими способами, есть ли общие (потенциальные) преимущества в производительности по сравнению с использованием вычислительных шейдеров по сравнению с обычным маршрутом? Есть ли недостатки, на которые мы должны обратить внимание (например, есть ли какие-то необычные издержки при переключении с / на вычисление шейдеров во время выполнения)?
Есть ли другие преимущества или недостатки, которые следует учитывать при выборе между ними?