【发布时间】:2015-12-15 08:54:34
【问题描述】:
我正在开发一个 THREE.JS WebGL 应用程序,我需要在其中渲染多个具有相同几何形状的对象,但我偶然发现了一个瓶颈。似乎我的对象实例存在一些问题,我无法真正理解/意识到,也许有人可以帮助我。对于上下文,我有一个带有法线的 PointCloud,它为我提供了有关将实例化对象放置在何处的信息,以及对象通过法线四元数的方向。然后,我遍历这个数组,并相应地放置每个实例化对象。在查看了有关实例化、合并等的各种帖子后,我无法弄清楚我做错了什么。
我附上相关方法的代码sn-p:
bitbucket.org/sn-ps/electricganesha/Mdddz
多次查看后,我真的很想知道这里出了什么问题,为什么这种特殊方法会使我的应用程序从 60fps 减慢到 20fps。
【问题讨论】:
-
你实例化了多少点/对象?
-
大约 300 个对象,每个对象具有以下几何形状:1254 个点、4884 个顶点、1232 个图元
-
只是为了澄清一下,“实例化”是指这个吗? khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays
-
不,我所说的实例化是指加载对象和纹理一次,然后在一个循环中复制它。
标签: javascript opengl-es 3d three.js webgl