我正在使用#defines,我根据程序状态将运行时传递给我的着色器源,以优化我的巨大着色器,使其不那么复杂。我想将优化的着色器写入文件,以便下次运行我的程序时,我不必再次传递#defines,但我可以在程序启动期间直接编译优化的着色器,因为现在我知道什么样的着色器按计划需要。
有没有办法从着色器预处理器获取结果?我当然可以将#define值存储到一个文件中,并根据它在程序启动期间编译着色器,但这不会那么优雅。
答案 0 :(得分:0)
使用C预处理器预处理着色器源。
例如,GCC有一个只预处理源的选项,并将中间结果保存到另一个文件中,使用定义预处理器符号的选项,您将得到想要的结果。