Вопрос:
Как я могу захватить вид, который будет изменен в металле?
Мое (возможно, неполное) понимание состоит в том, что мне нужно захватить вид как текстуру, переместить его в память устройства, выполнить работу с шейдерами и затем отобразить его обратно в вид. В настоящее время я застрял на первом этапе захвата изображения. Задача этого вопроса заключается только в том, чтобы захватить текстуру и получить ее в Metal. Если я столкнусь с проблемами с шейдерами, я открою для этого отдельный вопрос.
Если есть более простой способ сделать это, чем перейти на уровень GPU, я открыт для предложений.
Справка:
В целях обучения я пытаюсь воссоздать эффект ряби, показанный в этом коротком ролике с металлом (без использования Qt и OpenGL, как в видео). Насколько я понимаю, мне нужен вершинный шейдер и фрагментный шейдер. Я думаю, что смогу перевести шейдеры openGL в репо в Metal с некоторыми экспериментами.
Apple предоставляет очень похожую анимацию для iOS, CATransition
"rippleEffect", поэтому это представляется возможным, но используемые ими API являются частными и, вероятно, отклонят ваше приложение из магазина приложений.
Я также сталкивался с BCMeshTransformView , который, кажется, очень похож на то, что я хочу сделать, но мне не повезло, пытаясь выяснить, как это работает из источника.
Я потратил пару часов на поиск документации, но в целом я такой новичок в графике, что, вероятно, не гуглю правильные термины.