【发布时间】:2018-06-27 02:17:55
【问题描述】:
问题:
如何捕获要在 Metal 中修改的视图?
我(可能不完整)的理解是我需要将视图捕获为纹理,将其移动到设备内存中,使用着色器对其进行处理,然后将其渲染回视图中。我目前停留在捕获视图的第一步。这个问题的范围仅取决于捕获纹理并将其放入 Metal 中,如果我遇到着色器问题,我将为此打开一个单独的问题。
如果有比降级到 GPU 级别更简单的方法,我愿意接受建议。
背景:
出于学习的目的,我正在尝试使用 Metal 重新创建 this short clip 中看到的涟漪效果(不使用视频中的 Qt 和 OpenGL)。据我了解,我需要一个顶点着色器和片段着色器。我想我可以通过一些实验将the repo 中的 openGL 着色器转换为 Metal。
Apple 为 iOS 提供了一个非常相似的动画,CATransition“rippleEffect”,所以这似乎是可能的,但他们使用的 API 是私有的,并且可能会导致您的应用被应用商店拒绝。
我也遇到过BCMeshTransformView,这似乎与我想要做的非常相似,但我没有运气尝试从源头收集它的工作原理。
我花了几个小时搜索文档,但总的来说,我是图形学的初学者,所以我可能没有在谷歌上搜索正确的术语。
【问题讨论】: