问题:
如何在Metal中捕捉要修改的视图?
我的(可能不完整的)理解是,我需要将视图捕捉为纹理,将其移动到设备内存中,在着色器上进行处理,然后将其呈现回视图。我目前被卡在了捕捉视图的第一步。该问题的范围仅限于捕捉纹理并将其传递到Metal,如果我遇到着色器问题,我将另开一个问题。
如果有比下降到GPU级别更容易的方法,我也可以接受建议。
背景:
为了学习,我正在尝试使用Metal(而非像视频中那样使用Qt和OpenGL)重新创建此短片中看到的涟漪效果。据我所知,我需要顶点着色器和片段着色器。我认为我可以通过一些实验将repo中的OpenGL着色器转换为Metal。
苹果提供了一个非常相似的iOS动画,即CATransition
“rippleEffect”,因此似乎是可能的,但它们使用的API是私有的,可能会导致您的应用被拒绝上架应用商店。
我也遇到了BCMeshTransformView,它似乎与我想要做的非常相似,但我尝试从源代码中获取其工作方式时没有任何运气。
我已经花了几个小时搜索文档,但由于我在图形方面是初学者,所以可能没有用正确的术语进行搜索。
CIFilter
应用于后备的CALayer
,但显然在 iOS 上不支持... 不幸的是,即使使用 Metal,我也不知道快速捕获视图及其子视图内容到纹理的方法。 - ldoogy