Использование шейдера для вычислений

Можно ли использовать шейдер для вычисления некоторых значений, а затем вернуть их для дальнейшего использования?

Например, Я отправляю сетку на графический процессор с некоторыми параметрами о том, как ее следует изменить (изменить положение вершин), и забрать получившуюся сетку? Я считаю, что это довольно невозможно, потому что я не видел никакой переменной для связи от шейдеров к процессору. Я использую GLSL, поэтому есть только унифицированные, атрибуты и различные. Должен ли я использовать атрибут или единообразный, будут ли они все еще действительны после рендеринга? Могу ли я изменить значения этих переменных и прочитать их обратно в ЦП? Есть методы для сопоставления данных в GPU, но будут ли они изменены и действительны?

Я так думаю об этом, хотя может быть и другой способ, который мне неизвестен. Я был бы рад, если бы кто-нибудь мог объяснить мне это, как я. я только что прочитал несколько книг о GLSL, и теперь я хотел бы программировать более сложные шейдеры, и Я бы не хотел отказываться от методов, которые сейчас невозможны.

Спасибо

13
задан Raven 12 October 2010 в 13:07
поделиться