three.js - 为什么在三个js中增加对象的比例时fps会下降

标签 three.js rendering frame-rate

我有一个只有一个相机和一个 PlaneBufferGeometry 的场景

如果我将这个平面大小设置为 1x1,我将获得 60fps

如果我将这个平面大小设置为 1000x1000,我将得到 <20fps

为什么会这样?我在屏幕上绘制了相同数量的顶点。

Here is a fiddle showing the problem

只需将 size 的定义更改为 1 到 1000 之间的值即可观察问题。

var size = 10000;
//size = 1;
var geometry = new THREE.PlaneBufferGeometry(size, size);

我在这个例子中添加了 50 个相同的平面。只有一架飞机没有显着的 fps 命中率。

最佳答案

这绝对是正常的。更大的平面覆盖屏幕上的更多表面,因此像素更多。 光栅化过程发出更多片段。对于每一个,GPU 都会检查它是否通过了深度测试和/或模板测试。如果是这样,它将为每个像素调用片段着色器。

尝试放大 1x1 平面,直到它覆盖整个屏幕。您的 FPS 也会下降。

关于three.js - 为什么在三个js中增加对象的比例时fps会下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39903399/

相关文章:

colors - 平面几何,每段颜色不同,其中一些是透明的

javascript - 在特定位置的 asp.net 母版页中呈现 Javascript

javascript - 如何在 ReactJS 钩子(Hook)中清空输入值并重置状态

jsf - JSF 中的条件渲染

c++ - setFramerateLimit() 函数在 sfml 中不起作用

javascript - 独立更改球体颜色 Three.js

javascript - ThreeJS无法加载Json文件

iphone - iPhone 上的 FPS 速率上限?

使用 lwjgl 的 Java 高度图

javascript - 向 verold 模型对象添加动画