有没有办法可以调试glsl着色器?包括像断点和数据跟踪有没有一种方法可以调试GLSL着色器?
我看到了一些简单的人,让我看看着色器让我的荫程序,但没有什么我可以把破发点英寸
我需要检查矩阵的值,只是抛出一个glFragColor将不起作用,因为有太多的值要比较和检查。
有没有一个简单的方法来做到这一点?除了我只写下我认为我可能拥有的价值,并在其他地方做我的数学。
当我试图了解所有的OpenGL并知道如何浏览DirectX时,这真的很烦人。我可以看到为什么有些人在资源难以找到时会被OpenGL吓跑。
您定位的是哪个版本的OpenGL?忘记正常着色器中的“断点”,GPU与CPU异步运行,并且没有/暴露必要的中断逻辑来实现断点,而不使用某种特定于供应商的工具。此外,着色器并行(大量)运行。您可以强制着色器在GL4中阻塞内存障碍,并且您可能能够使用Shader存储缓冲区/图像加载/存储/转换反馈/等调查输出。但是,所有这些都需要特定版本的GL和一般对GLSL有透彻的理解。 –
即时使用3.3及以上版本 –
转换反馈可能是您最好的选择。曾经有一个工具'glslDevil'提供了很多你所描述的功能(除了运行时断点),它是围绕变换反馈建立的。该工具仍然存在,但尚未更新,很少适用于现代GL实现/着色器。变换反馈可以让你从3.3中的顶点/几何阶段获得输出,如你所知,对于片段着色器调试,你可能将不得不依赖片段数据输出。 –