我已经实现了几种Level of Detail技术来对它们进行比较。由于其中两个使用曲面细分,我想知道最终渲染网格有多少个三角形。我发现有人为此创建了一个函数,但只有在曲面细分因子不变且完全相同时才会起作用。由于我的实现根据与相机的距离决定了Hull着色器中的因素,因此他的解决方案对我不起作用。
在我看来,如果我知道域着色器运行了多少次,那么我会知道我有多少个三角形?有没有办法计算?或者还有其他方法吗?
(我使用的是DirectX,但我觉得OpenGL的方法大致相同,这就是为什么我有两个标签)
答案 0 :(得分:0)
我使用D3D11_QUERY_PIPELINE_STATISTICS类型的ID3D11Query解决了它。结构D3D11_QUERY_DATA_PIPELINE_STATISTICS用于结果,它有很多有用的信息,如渲染基元的数量和着色器的调用等。