在Apple中使用.vert和.frag扩展名';s';OpenGL着色器生成器';

在Apple中使用.vert和.frag扩展名';s';OpenGL着色器生成器';,opengl,glsl,opengl-shader-builder,Opengl,Glsl,Opengl Shader Builder,我刚刚在苹果的开发工具中发现了这一点。它似乎非常有用。唯一的问题是,它似乎坚持在保存对话框中使用*.vs和*.fs,正如我通常在着色器文件扩展名中分别使用*.vert和*.frag一样。有没有办法更改这些默认设置?(这可能需要一个黑客解决方案)我首先使用了自定义的#include预处理器(制作非常简单!) 生成虚拟包装着色器: test.vert #include test.vs 测试框架 #include test.fs 这是一个半糟糕的黑客行为,如果您正在共享代码,那么肯定不想在svn/

我刚刚在苹果的开发工具中发现了这一点。它似乎非常有用。唯一的问题是,它似乎坚持在保存对话框中使用*.vs和*.fs,正如我通常在着色器文件扩展名中分别使用*.vert和*.frag一样。有没有办法更改这些默认设置?(这可能需要一个黑客解决方案)

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

生成虚拟包装着色器:

test.vert

#include test.vs
测试框架

#include test.fs
这是一个半糟糕的黑客行为,如果您正在共享代码,那么肯定不想在svn/git/whatever中包含它,但是当您需要调整时,它非常棒

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

LoadShader("MyShader", <List of preprocessors>)
LoadShader("vertex shader", "fragment shader", ... , <List of preprocessors>)
LoadShader(“MyShader”)
LoadShader(“顶点着色器”、“片段着色器”、…)
(此处简化。真正传入的是结构)

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

  • 用于顶点着色器的
    [“.vert”、“.vs.”等]
    文本文件
  • 片段着色器的
    [“.frag”、“.fs.”等]
    文本文件
  • 等等
用户可以定义他们想要支持的文件扩展名

第二个函数只是使用精确的文件名。在第一个函数中,可能的组合受到预处理器的限制。在第二个选项中,可以组合任何所需的着色器文件,还可以使用预处理器进行更改

这当然是简化的,但显示了总体思路