gpt4 book ai didi

ios - MTLTexture 与 CGImageRef

转载 作者:行者123 更新时间:2023-12-01 16:01:56 24 4
gpt4 key购买 nike

MTLTexture 之间的主要区别是什么?对比 CGImageRef ?我们什么时候需要使用MTLTexture而不是 CGImageRef (反之亦然)?

我有一个应用程序(比如视频游戏),它可以在专用表面上自行绘制所有内容。这包括 60fps 的动画(所以我需要每 16 毫秒重绘一次表面)。我不知道使用 Metal 做我的应用程序的最有效方法

最佳答案

首先,MTLTexture来自低级图形 API。 MTLTexture指驻留在 GPU 可访问的内存中的“图像”(不一定在 GPU 本身上)。然后,您可以编写一个使用 Metal 的程序,特别是渲染 ( MTLRenderPipelineState ) 或计算 ( MTLComputePipelineState ) 管道状态,其中包含着色器(在 GPU 上运行的程序)来读取纹理、对其进行采样、写入它们并将它们用作附件(向它们输出渲染结果)。如果您想在 CPU 上读回纹理数据,也可以将纹理复制到缓冲区 (MTLBuffer) 和其他纹理。但是MTLTexture主要用于GPU而不是CPU。另外,MTLTexture不仅限于 2D,它还可以是立方体纹理,甚至是 3D 纹理。
CGImage另一方面,它来自用于 2D 用途的更高级别的 API(Core Graphics 或 Quartz 2D)。您不需要着色器或 GPU 管道来创建或修改 CGImage s 并且有许多功能可以“开箱即用”地处理这些图像。

我想说,如果你有一个 3D 视频游戏,你可以查看 Metal,但它是一个低级别的 API,例如,设置 Metal 的过程比设置 OpenGL 复杂得多。您不能按原样将 Core Graphics 用于 3D 游戏。如果 Metal 看起来太难了,您可以查看 Apple 提供的更高级别的 API,例如 SceneKit,它们也用于游戏开发。

关于 2D 游戏开发我不能说太多,但你绝对可以使用 Metal 来开发它,它可能只是有点“矫枉过正”。

总之,您需要在复杂性和控制力之间找到平衡,并选择最适合您的。

关于ios - MTLTexture 与 CGImageRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55801617/

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