我刚刚在Apple的开发者工具中发现了OpenGL Shader Builder。它似乎非常有用。唯一的麻烦是它似乎坚持在保存对话框中使用* .vs和* .fs,因为我通常分别使用* .vert和* .frag作为我的着色器文件扩展名。有没有办法改变这些默认值? (这可能涉及一个hacky解决方案)
答案 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>)
(在此简化。真正传递的是结构)
第一个函数将执行以下操作:
[".vert",".vs".. etc]
文本文件
用户可以定义他们想要支持的文件扩展名。
第二个功能就是使用确切的文件名。在第一个函数中,可能的组合受到预处理器的限制。在第二个选项中,您可以组合所需的任何着色器文件,也可以使用预处理器进行变换。
这当然是简化的,但显示了一般的想法。