opengl - GLSL 着色器的正确文件扩展名是什么?

标签 opengl glsl shader

我正在学习 glsl 着色,并且遇到了不同的文件格式。我见过人们提供他们的顶点和片段着色器 .vert.frag扩展。但我也见过.vsh.fsh扩展,甚至两个着色器一起在一个.glsl中文件。所以我想知道是否有标准文件格式,或者哪种方式是“正确”的?

最佳答案

规范中没有官方扩展。 OpenGL 不处理从文件加载着色器;您只需将着色器代码作为字符串传递,因此没有特定的文件格式。

但是,glslang ,Khronos 的引用 GLSL 编译器/验证器,使用以下扩展来确定文件适用的着色器类型:

  • .vert - a vertex shader
  • .tesc - a tessellation control shader
  • .tese - a tessellation evaluation shader
  • .geom - a geometry shader
  • .frag - a fragment shader
  • .comp - a compute shader

关于opengl - GLSL 着色器的正确文件扩展名是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432838/

相关文章:

c++ - 使用 clocks_per_sec 计算过剩帧率太慢

opengl - 我可以旋转 glOrtho() 的 View 吗?

c++ - GLSL 4.3 纹理问题

ios - GLSL 代码使应用程序在 iPhone 6 Plus 上崩溃

opengl - 使用 GLSL 从 Sampler2D 查找特定坐标中的像素颜色

opengl - 如何从模型 View 矩阵中消除旋转,使对象始终面对相机?

c++ - 渲染到帧缓冲区/纹理显示为空

java - 线程 "Animation Thread"processing.core.PApplet$RendererChangeException 中出现异常

opengl - 如何使用 opengl 纹理将非标准化/未钳位的值发送到 GLSL 着色器?

xcode - SpriteKit 着色器不与制服一起运行