奇怪的 FPS 下降

Strange FPS drop

我在 3 个缓冲区几何体中编写了 this small three.js scene 360,000 个顶点,并添加了一个 stats FPS 计数器来检查它们的演变。

我在我的中档笔记本电脑上遇到了一个奇怪的行为:'high' 变焦时 60 FPS,'low' 变焦时 60 FPS,但 'middle' 时 30-40缩放(网格的角在相机的截锥体上,加减一个数量级)。总是。

这种行为对我来说毫无意义。如何解释?

这里有根据的猜测。让我们将您的图像从左到右称为 A、B 和 C。

在A中,很多线都在视锥之外,根本就没有画出来。

在 B 中,绘制了所有线条。

在C中,绘制了所有线条,但填充的像素不多。此外,很少有空间未被至少一行填充,因此如果启用 Z 缓冲,许多像素将永远不会被重新填充。

总而言之:

A 从截锥体剔除中获益 (+),但可能具有较低的 Z 复杂度 (-),并且填充的像素不如 B (+)。

B 很少或 none 从截锥体剔除 (-) 中受益,并且仅从中心最密集区域 (small+) 中的 Z 缓冲(如果有的话)中受益。似乎比 A (-) 中填充的像素更多。

C 没有获得截锥体好处 (-),但填充更少的像素 (+) 并获得最佳 Z 缓冲好处(如果有的话)(+)。