Подтвердить что ты не робот

Шейдеры вместо GPGPU

Я хочу поэкспериментировать с некоторыми GPGPU на первом месте. Я мог бы выбрать между 5 вариантами: OpenCL, CUDA, FireStream, Close to Metal, DirectCompute. Ну, на самом деле, после фильтрации их для моих нужд нет ни одного костюма:) Я использую Radeon 3870HD, поэтому CUDA вышел, я хочу, чтобы кроссплатформенный DirectCompute вышел, Близко к Металу, превратившемуся в FireStream (эквивалент CUDA для AMD), и FS теперь "устарел", в интересах openCL. И угадай что? openCL доступен из серии Radeon 4xxx. Поэтому я не хочу изучать то, что не будет поддерживаться, и у меня нет HW для нового.

Итак, пока я не получу новую пьесу, я подумал, что шейдеры действительно могут делать похожие вещи, гораздо труднее вернуть результаты и замедлить их. Во всяком случае, я не планирую заниматься этим, поэтому для меня это может быть достаточно хорошим. Поиск чего-то подобного в google - это работа для мусора (без обид), так что же возможности рендеринга в другом месте, чем фреймбуфер, используемый для отображения? Можно ли создавать текстуры или какие другие буферы подходят для этого лучше всего? В случае текстуры я хотел бы получить информацию о том, как получить к ней доступ, с буферами это не должно быть большой проблемой.

Почти забыл, я использую openGL 3.1 и GLSL 1.5

Спасибо

4b9b3361

Ответ 1

Это вполне возможно, GPGPU было сделано таким образом, прежде чем CUDA появился. Вот учебник с того времени:

http://www.mathematik.uni-dortmund.de/~goeddeke/gpgpu/tutorial.html

Чтобы сделать что угодно, кроме фреймбуфера, вы можете использовать Transform Feeback в OpenGL 3.0 для рендеринга в VBO.