Threejs载入相同的平面网格

时间:2018-04-02 12:26:24

标签: three.js

我使用Threejs编写了一个简单的3D地下城生成器,但是因为我在地牢中使用了很多聚光灯来开始获得FPS掉落。

我知道光线是问题,但在我解决光线问题之前,我认为可以优化水平。仅使用具有墙纹理的平面200x200进行水平。我读过关于实例化的内容,这是我想要的在这种情况下?墙不会移动。如果他们移动我可以为移动的网格制作单独的网格。

对于使用LambertMaterial的灯,应该是最快的灯,但除此之外,我没有采取任何措施来提高性能。我试图用https://github.com/mem1b/lightbaking将房间的灯光烘焙到纹理中但是失败了。

所以最后,是否实现了优化多边形的方法?我读了一下它无法完全理解。

1 个答案:

答案 0 :(得分:0)

假设您在平坦的墙壁上分布了100个火把。它们中的每一个几乎只影响它最接近的墙壁部分,区域方面这将是墙壁的1/100。

现在如果将此墙分成结构wall segment + torch,该怎么办?不是给全局场景提供100个灯光,而是给每个灯光段一个局部灯光。

很酷,现在,如果你渲染整个墙壁,你会得到100盏灯,只需要一个...计算,但你也会引入100个绘制调用,而不是一个。

实例化将有助于此。您可以实例化您的墙段几何体,然后为每个实例设置一个光属性而不是统一。

通过这种方式,您可以在一次绘制调用中在100个光段上绘制100个灯光。这比绘制东西要快100倍。