如何将 OpenGLES 着色器转换为与 Metal 兼容的着色器?
How do I convert OpenGLES shaders to Metal compatible ones?
我有一个项目使用大约 2 打 .vsh 和 .fsh 文件来使用 OpenGLES 绘制二维图块。由于已弃用,我想将我的项目转换为 Metal。我的脑子里现在充满了两个系统中涉及的词汇和技术——图形不是我的强项。
我可以使用 OpenGLES 编译 .vsh/.fsh 文件,然后将它们保存为金属兼容格式吗?目标是在以金属为中心的世界中使用保存的信息,并从项目中删除所有 OpenGLES 代码。我已经在这上面花了几天时间,但我对流程的了解还不足以完全尝试过渡到 Metal。 Any/all 感谢帮助。
我看到了这个:"On devices that support it, the GLSL code you provide to SKShader is automatically converted to Metal shading language and run on a Metal renderer",这让我相信有办法完成这件事。我只是不知道从哪里开始。 OpenGL ES deprecated in iOS 12 and SKShader
我看过这个:
,如果它回答了我的问题,我不明白如何。
我认为这也没有回答:OpenGL ES and OpenGL compatible shaders
Answers/techniques 可以使用 Objective-C 或 Swift - 现有代码为 Objective-C,项目的其余部分已转换为 Swift 5 .
有很多方法可以做你想做的事:
1) 您可以使用 MoltenGL 将 GLSL 着色器无缝转换为 MSL.
2) 您可以使用开源着色器交叉编译器,例如:krafix, pmfx-shader,等等
我想指出,根据我的经验,您尝试自己重写着色器在性能方面会更好。
我有一个项目使用大约 2 打 .vsh 和 .fsh 文件来使用 OpenGLES 绘制二维图块。由于已弃用,我想将我的项目转换为 Metal。我的脑子里现在充满了两个系统中涉及的词汇和技术——图形不是我的强项。
我可以使用 OpenGLES 编译 .vsh/.fsh 文件,然后将它们保存为金属兼容格式吗?目标是在以金属为中心的世界中使用保存的信息,并从项目中删除所有 OpenGLES 代码。我已经在这上面花了几天时间,但我对流程的了解还不足以完全尝试过渡到 Metal。 Any/all 感谢帮助。
我看到了这个:"On devices that support it, the GLSL code you provide to SKShader is automatically converted to Metal shading language and run on a Metal renderer",这让我相信有办法完成这件事。我只是不知道从哪里开始。 OpenGL ES deprecated in iOS 12 and SKShader
我看过这个:
我认为这也没有回答:OpenGL ES and OpenGL compatible shaders
Answers/techniques 可以使用 Objective-C 或 Swift - 现有代码为 Objective-C,项目的其余部分已转换为 Swift 5 .
有很多方法可以做你想做的事:
1) 您可以使用 MoltenGL 将 GLSL 着色器无缝转换为 MSL.
2) 您可以使用开源着色器交叉编译器,例如:krafix, pmfx-shader,等等
我想指出,根据我的经验,您尝试自己重写着色器在性能方面会更好。