我希望这不是一个太哲学的问题,在这个工程决策背后有一个实际的实用理由。
对于着色语言来说,c++的子集似乎是一个非常合理的选择,因为大多数游戏引擎都是用c++编写的,而且有许多着色语言已经具有不同的潜在不熟悉的语法,这促使了自定义着色语言和转译器的创建。
那么,如果苹果承认这些现实,他们为什么不提供一流的c++ Metal API呢?
使用文档网页上的搜索功能,您将
找到渲染场景与延迟照明的c++示例,这主要是用c++编写的。
这个例子从2018年开始就存在了。它需要macOS 10.15,但也可以在支持metal的旧机器上运行,只需对代码进行一些微小的更改。
这个特殊示例的文档甚至用图形很好地解释了它的细节,以便您可以跟踪它是如何完成的。
因为苹果的网页倾向于只支持Swift和Objective-C文档,它可能会帮助别人找到一个直接链接到RenderingASceneWithDeferredLightingInCPlusPlus.zip。