OpenGL - 具有高规模值的低性能

fre*_*uin 6 c# opengl performance scale opentk

我用我的OpenGL程序观察一个奇怪的现象,该程序是用C#/ OpenTK/core-profile编写的.当从具有~1M顶点的高度图显示mandelbrot数据时,性能根据我的视图矩阵的比例值而不同(它是正交的,所以我需要比例).使用VBO渲染数据.渲染过程包括光照和阴影贴图.

我唯一的猜测是着色器中的某些内容在低比例值上出现"错误"并且存在一些错误处理.有什么提示吗?

例子:

例1 例2

And*_*man 15

这根本没有什么不寻常之处.在较低的比例值下,您的网格不会覆盖大量的屏幕,因此它不会产生很多碎片.在较大的比例下,整个屏幕被网状物覆盖,更糟糕的是,过度绘制成为一个重要因素.

在这种情况下,您是片段绑定的,降低片段着色器的复杂性应该有所帮助,Z预先通过以减少透支也会有所帮助.

  • 不,绝对不是这样.如果片段着色器以相同的频率运行,无论屏幕上的点有多小,它都会消除大量的混叠,但我们必须重新思考片段到底是什么.片段实际上只是帧缓冲区中像素的构建块,因此某些对象生成的片段数量与它在屏幕空间中覆盖的像素数成正比:) (2认同)