我想知道点光在Three.js中是如何工作的。我的问题很简单,但无论我尝试过什么,我都无法克服它。
我在带有Three.js的画布上创建了一个巨大的3D场景,即使它很大,你可以用相机移动这个场景,FPS仍然是60左右。但是如果我开始添加光源,即点灯(路灯),在某些时候FPS急剧下降到我的浏览器停止工作的程度(光源越多,性能越差)。它的计算价格昂贵并不是什么新鲜事,但灯的数量并不是那么大。让我们说30个来源。
但我仍然可以通过减少视图(camera.far)距离来解决这个问题,这样就不会在我看来应该帮助的同时渲染所有灯光。正如预期的那样,如果减少相机远端属性,您将无法看到所有灯光,但问题仍然存在。即使我将视距减小到最小,让我说200px所以我看不到任何光线,FPS仍然保持低位。这一部分我不太明白,所以如果有人能够澄清对我来说这将是非常棒的。
另一件事是,即使我能看到所有灯光(相机距离很远),如果我将相机转向另一侧,FPS也会跳到正常状态。我可以部分理解这种行为,但仍然必须渲染这些灯。任何人都可以澄清这一点吗?
主要问题是:如何在没有FPS掉落的情况下将所有灯光都放在场景中?正如我所提到的,我没有同时看到所有这些,但如何使这项工作?