我正在观察我的OpenGL程序,它是用C#/OpenTK/core-profile编写的。当使用大约1M个顶点的高度图显示曼德博集数据时,性能取决于视图矩阵的比例值(它是正交的,所以我需要缩放)。数据使用VBO进行渲染。渲染过程包括光照和阴影映射。我的猜测是着色器在低比例值时会出现某些“错误”,因此需要一些错误处理。有什么提示可以给我吗?
示例:
示例:
这并不是什么不寻常的事情。在较低的比例尺下,您的网格不会覆盖屏幕的大部分区域,因此不会产生太多的片段。在更大的比例尺下,整个屏幕都被您的网格覆盖,更糟糕的是,过度绘制成为一个巨大的因素。
在这种情况下,您受到片段限制,减少片段着色器的复杂性应该有所帮助,并且进行Z预处理以减少过度绘制也会有所帮助。
gl_FragColor = gl_FragCoord;
,你的帧率会飙升(当然,它看起来也会非常奇怪,但那是另外一回事了)。当更多的几何图形覆盖屏幕时,你的片段着色器就会变得更加昂贵(更多的覆盖面积-->更多的采样片段)。早期深度测试可以在一定程度上缓解这个问题。 - Andon M. Coleman