在Apple的“OpenGL Shader Builder”中使用.vert和.frag扩展

时间:2012-02-28 00:57:35

标签: opengl glsl opengl-shader-builder

我刚刚在Apple的开发者工具中发现了OpenGL Shader Builder。它似乎非常有用。唯一的麻烦是它似乎坚持在保存对话框中使用* .vs和* .fs,因为我通常分别使用* .vert和* .frag作为我的着色器文件扩展名。有没有办法改变这些默认值? (这可能涉及一个hacky解决方案)

1 个答案:

答案 0 :(得分:2)

我首先使用我的自定义#include预处理器(非常简单!)

制作虚拟包装着色器:

test.vert

#include test.vs

test.frag

#include test.fs

这是一个半可怕的黑客,绝对是你不想包含在svn / git中的东西/无论你是在分享代码,但是当你在调整时需要转变时很棒。

随着越来越多人使用多种不同的文件扩展名,我最终添加了更多加载着色器的方法。

LoadShader("MyShader", <List of preprocessors>)
LoadShader("vertex shader", "fragment shader", ... , <List of preprocessors>)

(在此简化。真正传递的是结构)

第一个函数将执行以下操作:

  • 顶点着色器{/ 1}}的文本文件
  • 片段着色器
  • [".vert",".vs".. etc]文本文件
  • 等。

用户可以定义他们想要支持的文件扩展名。

第二个功能就是使用确切的文件名。在第一个函数中,可能的组合受到预处理器的限制。在第二个选项中,您可以组合所需的任何着色器文件,也可以使用预处理器进行变换。

这当然是简化的,但显示了一般的想法。