gpt4 book ai didi

swift - 屏幕绘图上的像素非常快

转载 作者:行者123 更新时间:2023-11-28 05:29:27 24 4
gpt4 key购买 nike

我的一个 friend 不得不用 c 中的 opengl 绘制一个 mandelbrot。我决定用 Swift 来做。

我尝试的第一种方法是创建一个包含 ARGB 数据的数组并将其转换为 CGImage 并在 UIImageView 中查看该数组。然而,这还不够快。

现在我想知道,将单个像素绘制到屏幕上的最快方法是什么。我研究了 Metal,但那似乎主要是关于三角形和 3d 的东西。然后我来到 scenekit 着色器 (.fsh) 并认为这可能是一个很好的解决方案。但是我也希望能够放大 mandelbrot 分形,但我找不到在我的 mandelbrot 中输入变量的方法(我的引用:https://www.weheartswift.com/fractals-xcode-6/)

你们能否告诉我/举个例子(请 Swift)来说明绘制单个像素的最快方法,或者至少是一种无需使用诸如合成 CGImage 之类的中间方法即可将原始像素绘制到屏幕上的方法?

最佳答案

与其使用顶点着色器和片段着色器,不如看看使用内核函数(或计算着色器)。这将是一个单一的着色器,它进行数学运算并在纹理的每个像素处设置颜色值。然后,您可以使用 CAMetalLayer 将纹理渲染到屏幕。

看看这篇博文,我在其中使用传递给内核函数的粒子坐标写入纹理:http://flexmonkey.blogspot.co.uk/2015/03/swift-metal-four-million-particles-on.html

关于swift - 屏幕绘图上的像素非常快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29480421/

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