是否可以使用NSight之类的工具使GLSL着色器存储“中间”结果用于调试目的?

时间:2018-12-22 02:54:21

标签: opengl glsl nvidia nsight opengl-4

我正在用OpenGL 4.6编写渲染系统,并使用NVIDIA的NSight对其进行调试。调试我的光照,法线贴图/纹理等问题一直令人沮丧。我通常的解决方案是临时添加一个FragColor = (whatever value I want to debug),然后使着色器过早返回,这既费时又需要重新创建。 -发射。但是:

我注意到NSight在每次绘制调用之后都会存储最终渲染的“修订”,我相信能够在着色器中保存我自己的“修订”状态会很方便。

有这种机制吗?例如:

// <Some GLSL stuff goes here e.g. light calculations>

// Save an intermediate preview with lighting and no textures, for debugging
FragColor = vec4(lightValue, 1.0);
saveIntermediateRevisionState(FragColor);

// <More GLSL stuff before we set the real, final FragColor>

0 个答案:

没有答案