【问题标题】:Using .vert and .frag extensions in Apple's 'OpenGL Shader Builder'在 Apple 的“OpenGL Shader Builder”中使用 .vert 和 .frag 扩展名
【发布时间】:2012-02-28 00:57:35
【问题描述】:

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

【问题讨论】:

    标签: opengl glsl opengl-shader-builder


    【解决方案1】:

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

    制作虚拟包装着色器:

    test.vert

    #include test.vs
    

    test.frag

    #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] 的文本文件用于片段着色器
    • 等等..

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多