我开始使用OpenGL并编写着色器。我的应用程序在加载和编译着色器程序后检查错误,如果出现问题,则打印出信息日志。这非常适合捕获错误(我是一个新手,所以我做了很多),但我真正喜欢的是在构建时捕获这些错误。
如果我有一个lint
工具可以简单地检查顶点或片段着色器的语法错误,我可以将它添加到我的构建过程并让它停止构建。
我一直无法找到这样的工具。我开始尝试编写一个,但我正在使用OpenGL ES并且有trouble trying to write a desktop program that links against the ES libraries。
也许我错过了某个地方。这样的工具是否存在?
答案 0 :(得分:5)
您可以在命令行上构建着色器,与编译c或c ++程序或使用的任何方式相同。如果您正在使用Makefile,只需添加着色器的编译。
您可以使用Cg编译器编译Cg和GLGL着色器。它应该适用于所有平台。
答案 1 :(得分:1)
您可以根据此用途调整Shader Toy。它针对WebGL(基于OpenGL ES)编译着色器代码并报告错误(并且还运行着色器以便检查输出)。
您需要prerelease build of Firefox (Minefield) or Chrome (Canary)来运行它。
我不确定你如何利用编译状态结果来停止构建过程...有ways to write results to a local file from javascript但它们有些毛茸茸......
但是,在编译桌面应用程序之前,在Shader Toy中以交互方式测试着色器代码更改可能仍然是对开发过程的改进。既然你听起来像是在移动设备的桌面上开发(对吧?),那将是一场胜利。
另一方面,如果您设法使您的桌面应用程序与ES库链接起作用,那么这似乎是许多开发人员可以从中受益的工具。
答案 2 :(得分:1)
此外,还有参考GLSL编译器(处理OpenGL和OpenGL ES)
http://www.khronos.org/opengles/sdk/tools/Reference-Compiler/