着色器语言

Metal Shading Language

Metal 的着色器用的是一门专门的语言,叫Metal Shading Language(大概可以叫MSL?)。既然是一门专门的语言,

它是一门单独的语言,但它不是全新的。它是 C++14 的一个子集,然后做了不多的扩展。和GLSL比,尤其是熟悉 C++ 的同学,写起来要爽得多。这门语言包括了 C++ 中的模板类和模板方法、宏替换、宏替换等内容,可以以面向对象方式写出更复杂的着色器。

在使用 Metal 时,若是用于渲染图像,则与传统的 OpenGL 中相同,需要提供顶点着色器函数和片元着色器函数,若是用于 GPU 运算时只需要完成核函数即可。在 MSL 中,在内存/显存与着色器数据交换上与 OpenGL 有较大区别,下面来仔细看。

---- OpenGL

OpenGL编程语言是GLSL,就是我们说的着色器语言。GLSL是C语法风格的着色器语言,用它写的程序有一个main方法来让每个对象调用 。但是在这一基础上加上了许多适合图形处理的一些东西,比如一些针对向量和矩阵操作等。我们要图形渲染,就一定需要顶点着色器和一个简单的片元着色器

----Vulkan
着色器代码一定要用字节码格式,而不是人类可读的语法如GLSL和HLSL。这个字节码就是SPIR-V,设计用于Vulkan和OpenCL

你可能感兴趣的:(着色器语言)