Three.js "射线点"示例 - 为什么有不同类型的点云?

3
在示例交互射线点中,有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个回答

3

这个例子 交互式光线投射点 的目的是为了证明光线投射对各种几何类型的THREE.Points都有效。

所谓的“常规几何”,即THREE.Geometry,是最不节省内存的几何类型,通常比THREE.BufferGeometry加载时间更长。

BufferGeometry可以是“索引”的或“非索引”的。使用网格时,“indexed”BufferGeometry允许重复使用顶点;也就是说,共享一条边的面可以共享一个顶点。然而,在点云的情况下,我认为“indexed”类型没有什么好处。

BufferGeometry的绘制调用——现在称为组——允许仅渲染几何的子集,并允许为每个组关联不同的材质索引。


函数generateIndexedWithOffsetPointcloud似乎是在绘制调用(即组)被称为“offsets”时命名的。

我不认为three.js中的射线投射支持组。我认为它会针对整个几何图形进行光线投射。实际上,我不确定你所提到的例子中的组是否正常工作。

three.js r.73


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接