【发布时间】:2022-02-27 11:29:35
【问题描述】:
我希望使用 Metal 将矢量形状 (CGPath) 渲染到屏幕外纹理。但是,正如我所见,使用处理抗锯齿和其他问题的 Metal 绘制粗线非常困难。因此,使用 Metal 绘制任意 CGPath 将涉及大量工作。我在想是否可以使用 SpriteKit(基于 Metal)来实现相同的目标。目前尚不清楚如何使用 SKRenderer 类将任意 CGPath 渲染到 Metal 纹理。
【问题讨论】:
-
正如你所提到的; SpriteKit 使用金属,所以我不明白为什么会有帮助。对于矢量,我认为最好将矢量几何体细分为三角形,而不是渲染精灵/粒子。至于抗锯齿,您可以控制从无抗锯齿到高质量抗锯齿。
-
@JeshuaLacock 使用 Metal 渲染任意几何图形并不容易,这就是我们拥有 nanoVG 等库来渲染矢量形状的原因(同样有一个 Metal 端口),但并非没有限制。另一方面,SpriteKit 是 Apple 的框架,它在内部使用 Metal 进行渲染,并具有许多其他有趣的功能。
-
嗯,我没有说更容易,我知道 SpriteKit 是什么。同样,SpriteKit 如何解决您对性能的担忧?
-
是的,您可以在 spritekit 中进行渲染到纹理。但是,如果“屏幕外纹理”是指渲染到着色器可以使用的 缓冲区,那么不,我认为 spritekit 不能以这种方式渲染到缓冲区。 (或者,我应该说,我在 spritekit 中使用着色器,但我一直无法弄清楚如何写入着色器缓冲区。)如果你想要渲染到纹理的示例,请告诉我,我可以发布一个.
-
是的,我需要渲染到着色器可以使用的纹理(MTLTexture)。您指的是哪种纹理类型?
标签: ios sprite-kit metal skscene metalkit