Я пытаюсь реализовать пользовательский алгоритм, который принимает серию пикселей с заданным радиусом вокруг данной точки. Поскольку я хочу потенциально запустить этот алгоритм на каждом пикселе в изображении 1080p, я думал, что параллелизм с графическим процессором будет хорошим вариантом.OpenGL - Compute Shader - iOS - Опции?
Проблема в том, что мне нужно, чтобы она работала на iOS. Я столкнулся с полезной библиотекой iOS под названием GPUImage2, которая позволяет кучу предопределенных функций, но теперь я попал в дорожный блок.
Насколько я могу судить, я не могу использовать вычислительные шейдеры с iOS? Моя единственная возможность переключиться на использование Металла? Я понимаю, что у андроида есть поддержка ES 3.1
, но их нет такой возможности для iOS?
Я предполагаю, что мой другой вопрос; использует вычислительный шейдер даже в правильном варианте здесь? Моя идея состояла в том, чтобы разделить последовательность точек на группы потоков, а затем прокрутить каждую нить по радиусу и выполнить вычисление, позволяя одновременно вычислить все комбинированные значения радиусов. Это похоже на правильную идею, или есть лучший способ (возможно, тот, который не требует вычислительных шейдеров)?
Это действительно похоже на то, что я пытаюсь достичь, однако мне нужно вернуть несколько точек данных на пиксель. Возможно ли это, не используя что-то вроде SSBO? – Marcel
Все зависит от того, чего вы пытаетесь достичь. Если «Выполнение нескольких точек данных на пиксель» означает запуск одного и того же алгоритма, вы можете просто запустить фрагментарный шейдер несколько раз. Если вы хотите запустить его в определенных областях, вы также можете обрезать изображение и отобразить его в другом FBO. А потом добавив все вместе к окончательному изображению. – andras