Я делаю некоторые вычисления gpgpu с GL и хочу прочитать мои результаты из кадрового буфера.
Моя фреймбуфер-текстура логически представляет собой одномерный массив, но я сделал его двухмерным, чтобы иметь большую площадь. Теперь я хочу прочитать любой произвольный пиксель в фреймбуфер-текстуре любой заданной длины.
Это означает, что все вычисления уже выполнены на стороне графического процессора, и мне нужно только передать некоторые данные в процессор, которые можно выровнять по границе текстуры.
Возможно ли это? Если да, это медленнее / быстрее, чем glReadPixels
на всем изображении, а затем вырезать то, что мне нужно?
EDIT
Конечно, я знаю об OpenCL / CUDA, но они нежелательны, потому что я хочу, чтобы моя программа работала из коробки на (почти) любой платформе.
Также я знаю, что glReadPixels очень медленный, и одна из причин может заключаться в том, что он предлагает некоторые функции, которые мне не нужны (Работа в 2D). Поэтому я попросил более основную функцию, которая может быть быстрее.