着色器的标准命名约定

aCu*_*ria 5 shader glsl hlsl

着色器是否有“最佳”命名约定?如果没有,流行的选择是什么?

例如

*.vert *.vertex *.vsh

*.frag *.pixel *.fsh *.psh

我没有几何和镶嵌的例子

dia*_*pir 6

参考 GLSL 编译器可识别这些扩展:

Usage: glslangValidator [option]... [file]...

'file' can end in .<stage> for auto-stage classification, where <stage> is:
    .conf   to provide a config file that replaces the default configuration
            (see -c option below for generating a template)
    .vert   for a vertex shader
    .tesc   for a tessellation control shader
    .tese   for a tessellation evaluation shader
    .geom   for a geometry shader
    .frag   for a fragment shader
    .comp   for a compute shader
    .mesh   for a mesh shader
    .task   for a task shader
    .rgen    for a ray generation shader
    .rint    for a ray intersection shader
    .rahit   for a ray any hit shader
    .rchit   for a ray closest hit shader
    .rmiss   for a ray miss shader
    .rcall   for a ray callable shader
    .glsl   for .vert.glsl, .tesc.glsl, ..., .comp.glsl compound suffixes
    .hlsl   for .vert.hlsl, .tesc.hlsl, ..., .comp.hlsl compound suffixes
Run Code Online (Sandbox Code Playgroud)


小智 4

我认为之所以有如此多种名称可供选择,是因为根据GLSL 规范,着色器不是文件,而是字符串。几乎每个应用程序都从文件加载字符串,但仍然是字符串。

也就是说,橙皮书的作者在他们的示例应用程序中选择了 .vert 和 .frag。我认为这是一次非常有意义的投票。我还认为它在简洁(比 .fragment 更)和清晰(比 .fsh 更)之间达到了正确的标准。