3d 奇怪的FPS下降

3d 奇怪的FPS下降,3d,three.js,webgl,gpu,3d,Three.js,Webgl,Gpu,我在3个缓冲区几何体中编写了360000个顶点,并添加了一个statsFPS计数器来检查它们的演变 我在我的中档笔记本电脑上体验到一种奇怪的行为:60 FPS的“高”变焦,60 FPS的“低”变焦,但30-40的“中”变焦(网格的角位于相机的平截头体上,正负一个数量级)。总是 这种行为对我来说毫无意义。这是怎么解释的呢?我在这里猜测。让我们调用您的图像,从左到右,A、B和C 在视图中,许多线位于视锥体之外,并且根本不绘制 在B中,所有的线都被画出来 在C语言中,所有的线都被画出来,但没有多少像

我在3个缓冲区几何体中编写了360000个顶点,并添加了一个
stats
FPS计数器来检查它们的演变

我在我的中档笔记本电脑上体验到一种奇怪的行为:60 FPS的“高”变焦,60 FPS的“低”变焦,但30-40的“中”变焦(网格的角位于相机的平截头体上,正负一个数量级)。总是


这种行为对我来说毫无意义。这是怎么解释的呢?

我在这里猜测。让我们调用您的图像,从左到右,A、B和C

在视图中,许多线位于视锥体之外,并且根本不绘制

在B中,所有的线都被画出来

在C语言中,所有的线都被画出来,但没有多少像素被填充。此外,很少有空间没有被至少一行填充,因此如果Z缓冲打开,许多像素将永远不会被重新填充

总而言之:

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

B从截头体剔除(-)中获益很少或没有,并且仅从中心最密集区域(小+)中的Z缓冲(如果有)中获益。填充的像素似乎比(-)中的像素多

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