这有点像是一个哲学问题。
我在想,是否有任何优雅的方法可以将着色器代码包含在标准 QtCreator 项目中。我所知道的只有两种方法:
着色器代码位于单独的文件中,例如 "fragmentshader.frag",此文件在运行时被读取,着色器代码被编译和链接。
着色器代码是项目中包含的源文件中的硬编码字符串。
这两种方法都让我感到有些烦人。第一种可能性需要硬盘上的文件,这些文件必须与可执行文件位于同一目录中(因此我必须将它们放在每个调试/发布目录中,并最终得到我的着色器文件的多个副本),或者位于硬编码指定的特定目录中,这似乎不利于可移植性。
第二种可能性让我感到困扰,因为您必须在着色器代码中包含换行符 \ n
,这使得格式有点丑陋。
什么是“正确”的方法?如果有任何意义的话,我正在使用 c / c ++、OpenGL 和 GLSL 进行编码。
编辑: 我继续搜索了相关信息... 我注意到,例如图标文件可以保存在项目中的特殊资源文件夹中。这样它就是一个文件,可以像文件一样进行编辑,但仍然不必在运行时加载。是否有一种方法可以对着色器做到这一点?
"
呢?我刚刚设置了我的 .pro 文件使用 c++11,在字符数组中,如果我按下回车键,它会自动给我加上一个引号。(此外,测试着色器并没有像你在这里发布的那样工作) - Martin Hennigglsl()
。 - Martin Hennig