3

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

4

1 回答 1

2

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

制作了虚拟包装着色器:

测试.vert

#include test.vs

测试片段

#include test.fs

这是一个半可怕的 hack,如果你共享代码,绝对是你不想包含在 svn/git/whatever 中的东西,但是当你在调整时需要周转时很好。

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

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

(这里简化一下,真正传入的是结构体)

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

  • [".vert",".vs".. etc]用于顶点着色器的文本文件
  • [".frag",".fs".. etc]用于片段着色器的文本文件
  • ETC..

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

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

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

于 2012-10-22T15:33:13.000 回答