Three.js“Raycasting Points”示例 - 为什么有不同类型的点云?

时间:2015-12-09 02:28:15

标签: three.js

在示例Interactive Raycasting Points中,有4种不同的函数来生成点云:

1. generatePointcloud (with buffer geometry)
2. generateIndexedPointcloud (buffer geometry with indices)
3. generateIndexedWithOffsetPointcloud (buffer geometry with added drawcall)
4. generateRegularPointcloud (with normal geometry)

有人可以解释这4种类型之间的差异,以及是否有任何性能优势/某些情况,其中一种比其他类型更适合?

谢谢!

1 个答案:

答案 0 :(得分:2)

示例Interactive Raycasting Points的目的是证明针对THREE.Points的光线投射适用于各种几何类型。

所谓的"常规几何",THREE.Geometry是内存效率最低的几何类型,通常加载时间比THREE.BufferGeometry长。

BufferGeometry可以"索引"或"非索引"。索引BufferGeometry与网格一起使用时,允许重复使用顶点;也就是说,共享边的面可以共享一个顶点。然而,在点云的情况下,我没有看到"索引"类型。

具有绘制调用的

BufferGeometry - 现在称为组 - 仅允许渲染几何体的子集,并且还允许将不同的材质索引与每个组相关联。

当绘制调用,a.k.a。群组被调用"偏移"时,函数generateIndexedWithOffsetPointcloud似乎已被命名。

我不相信三个荣誉团体中的光线投射。我相信它会对整个几何体进行光线投射。实际上,在您引用的示例中,我不确定组是否正常工作。

three.js r.73