0

我的程序是一个雨粒子系统,它基于用于推进雨滴的计算着色器和另一个用于渲染高级雨滴的渲染着色器(顶点着色器、几何着色器、像素着色器)。

我使用绘图调用:DrawInstancedIndirect 将计算着色器的结果应用到渲染步骤。

我的问题是在几何着色器的渲染步骤中,我试图为每个雨滴绘制一个广告牌。如果我只是画一个普通的矩形,它会渲染得很好,当我更改为广告牌时,渲染目标中什么都没有。我试图找到一种方法来调试这个几何着色器。我使用以下工具来调试几何着色器,但它们确实对我有用。

VS2012 中的图形调试器。这个工具似乎不支持绘制调用:DrawInstancedIndirect。

GPU 佩夫特工作室。它支持顶点、像素着色器,但不支持几何着色器。我试图将几何着色器的直接值传递给像素着色器以查看它们,它们都为零。但我需要深入研究几何着色器以找出错误。

NVDIA 的 Nsight。我的显卡是720M的,可惜Nsight只支持730M起。可能是我在调试过程中着色器列表为空的原因。

我现在很绝望,没有办法找出问题所在。我希望你能建议我一种调试这个几何着色器的方法。非常感谢!

4

1 回答 1

1

您可以尝试使用Crytek 的RenderDoc,它非常易于使用,并且您可以监控每个阶段的每个缓冲区。

于 2014-03-10T19:00:27.347 回答