SuperAPI AI 工具集

axiom-metal-migration-ref

编程与开发

查看项目

更新于 10-16 00:22

技能介绍

用途:资料定位为 Metal 迁移参考,适用于把 GLSL 着色器转为 Metal Shading Language(MSL)、把 HLSL 转为 MSL、查询 GL/D3D API 在 Metal 中的对应写法,以及搭建 MTKView 或 CAMetalLayer、构建渲染管线、使用 Metal Shader Converter 处理 DirectX 内容。

主要能力:给出 GLSL 到 MSL 的类型映射(如 vec3→float3、mat4→float4x4、sampler2D→texture2d<float>+sampler)、内建变量映射(如 gl_Position→返回 [[position]])、函数映射(如 texture→tex.sample、mod→fmod、inversesqrt→rsqrt、atan(y,x)→atan2(y,x))与顶点/片段着色器结构改写示例;给出 HLSL 到 MSL 的类型、语义(如 SV_Position→[[position]]、SV_DispatchThreadID→[[thread_position_in_grid]])与函数映射;提供 OpenGL API 到 Metal API 的视图/上下文、资源创建、状态管理、绘制命令与图元类型对照;并附 MTKView、CAMetalLayer、计算着色器设置示例。

使用方式:以对照表查映射并改写代码;DirectX 场景可按资料流程先用 dxc 编译 HLSL 到 DXIL,再用 metal-shaderconverter 转成 metallib,命令示例为 metal-shaderconverter vertex.dxil -o vertex.metallib。

适用场景:Apple 平台图形与计算着色器迁移、渲染管线搭建、API 对照查阅。

限制:资料强调 float3 在 MSL 中为 16 字节对齐,需用 simd 类型或 packed 类型处理 CPU-GPU 共享结构;MSL 无 64 位 float 与 GL_TRIANGLE_FAN 直译;Metal Shader Converter 需 macOS 13+/Xcode 15+ 或 Windows 10+/VS 2019+,面向 Argument Buffers Tier 2(macOS 14+/iOS 17+),支持 SM 6.0–6.6 且 6.6 特性有限制;其余未列细节暂未提供。