gpt4 book ai didi

ios - 使用 Metal 在 iOS 中扭曲 View

转载 作者:可可西里 更新时间:2023-11-01 01:57:20 26 4
gpt4 key购买 nike

问题:

如何在 Metal 中捕获要修改的 View ?

我(可能不完整)的理解是我需要将 View 捕获为纹理,将其移动到设备内存中,使用着色器对其进行处理,然后将其渲染回 View 中。我目前停留在捕获 View 的第一步。这个问题的范围仅限于捕获纹理并将其导入 Metal,如果我遇到着色器问题,我会为此打开一个单独的问题。

如果有比下降到 GPU 级别更简单的方法,我愿意接受建议。

背景:

出于学习目的,我正在尝试重现 this short clip 中看到的链式 react 使用 Metal(不像视频中那样使用 Qt 和 OpenGL)。据我了解,我需要一个顶点着色器和片段着色器。我想我可以翻译 the repo 中的 openGL 着色器。通过一些实验到 Metal 。

Apple 提供了一个与 iOS 非常相似的动画,CATransition“rippleEffect”,所以这似乎是可能的,但他们使用的 API 是私有(private)的,可能会使您的应用程序被应用程序商店拒绝.

我也遇到过 BCMeshTransformView ,这看起来与我想做的非常相似,但我没有任何运气试图从源头收集它是如何工作的。

我已经花了几个小时来搜索文档,但我在图形方面总体上是个初学者,所以我可能无法通过谷歌搜索正确的术语。

最佳答案

完成此操作的最简单方法是使用 CoreImage . CI 提供了非常广泛的效果,可以很容易地应用于您的 View (这里是 full list)。

如果这些都不适合你,你实际上可以写一个 custom CIFilter使用 GLSL(OpenGL 着色语言),将直接在 GPU 上运行。

您可以通过获取 View 的 UIImage 将给定的 CIFilter 应用到 UIView,并将其转换为 CIImage,运行你的过滤器,然后在屏幕上显示 CIImage。我相信这比尝试使用级别低得多的 API Metal 来执行此操作更容易。

有关执行此操作的 CoreImage 代码示例,请参阅 How to apply CIFilter to UIView?

关于ios - 使用 Metal 在 iOS 中扭曲 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51044332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com