【问题标题】:Is there a tool to get preprocessed output of a GLSL shader?是否有工具可以获取 GLSL 着色器的预处理输出?
【发布时间】:2014-03-19 05:17:55
【问题描述】:

我有一段相当复杂的 GLSL 代码(大约 5000 行),其中不同的部分用不同的宏标记。由于代码库很大,标志也很多,所以我理解代码流程并不难。想知道是否有工具可以向我显示预处理的 GLSL 输出。我尝试使用 gDebugger 查看源代码,但它也显示了未经预处理的代码。

【问题讨论】:

    标签: opengl-es opengl-es-2.0


    【解决方案1】:

    cpp 是 Linux 和 MacOS 10 系统上安装了普通开发工具的独立命令行 C 预处理器。

    它应该只用于 C 代码,但手册页说它可以在类似 C 的源代码上工作并且 GLSL 合格。 (不过,使用我的一个着色器进行的快速测试给出了#version 的警告消息。)您可以尝试在着色器上运行它。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      如果您不想在计算机上安装任何 C/C++ 编译器只是为了查看预处理输出,或者如果您发现使用在线 IDE 更容易,您可以使用一些在线 C++ 编译器。我对Coliru 有很好的经验。

      只需删除&& a.out 并添加-E -P,或将整个命令行替换为g++ main.cpp -E -Pcpp main.cpp -P,然后按编译、链接并运行...

      >

      如果您的源代码包含一些特定于 GLSL 的 # 命令(例如 #version),您将收到错误消息,但您仍会看到输出。

      这个想法归功于PredelnikOnline Preprocessor for C++的评论

      【讨论】:

        【解决方案3】:

        您有不同的工具来调试 GLSL。以下是一些 - gDebugger - API跟踪 - GL拦截 - BuGLe 工具

        How to debug a GLSL shader? 是与您的问题类似的链接

        【讨论】:

        • 对于预处理,您需要将着色器添加到 FX-composer、TyphoonLabs OpenGL Shader Designer、geeks3d.com/glslhacker 和 Render monkey 等工具中
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        • 2012-02-07
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多