gpt4 book ai didi

ios - MDLVertexDescriptor 和 MTLVertexDescriptor 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 15:33:38 25 4
gpt4 key购买 nike

Metal 的 MDLVertexDescriptor 和 MTLVertexDescriptor 有什么区别?我想知道为什么有 2 种不同的数据结构来定义顶点描述符?

最佳答案

MDLVertexDescriptor是位于模型 I/O 框架中的接口(interface)。
MTLVertexDescriptor是位于 Metal 框架中的接口(interface)。

尽管它们是一个相似的概念(关于如何布置顶点数据的描述),但出于以下原因,它们需要分开。

首先你可以链接到上述两个框架,但您不是 必填 使用其中任何一个。

例如,假设我需要编写一个加载模型并绘制模型的应用程序,但我不想学习 Metal,所以我只坚持使用 OpenGL。模型 I/O 框架适合我的需要。在这种情况下,我将链接到 Model I/O 和 OpenGL,但不是 Metal,所以我不会有 MTLVertexDescriptor .

另一方面,假设我需要编写一个加载glTF 2.0 (https://www.khronos.org/gltf/) 模型的应用程序,并且由于我知道Apple 已弃用OpenGL,因此我想使用Metal Framework。在这种情况下,我将链接到 Metal 框架和其他一些可以加载 glTF 文件的库,但我不需要 Model I/O,因为我使用的是 glTF。所以,在这种情况下,我不会有 MDLVertexDescriptor .

这两个接口(interface)非常相似,因为它们都代表相同的东西,但差异在某种程度上是特定于域的。

但我认为,为什么这些是不同的类的主要原因是,Apple 决定将相似的概念引入两个框架比仅仅将所有“相似”概念分离到一个框架中更好,因为这将更难维护、记录和解决问题。

关于ios - MDLVertexDescriptor 和 MTLVertexDescriptor 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55327275/

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