在three.js中,何时需要启用PointCloud.sortParticles?

时间:2013-07-20 17:37:18

标签: three.js

我发现有一些例子启用了这个属性,但是没有足够的评论让我理解它的重要性。 你能告诉我这个房产的最佳做法吗?

1 个答案:

答案 0 :(得分:7)

编辑:PointCloud现在为Points.sortParticles属性已被删除。这意味着这些点按照缓冲区中存在的顺序进行渲染。以下答案已过时。 three.js r.73


这是一个很好的例子,说明如果你使用three.js,至少要了解webGL的基本概念。 (见this SO post。)

如果渲染顺序很重要,您需要设置PointCloud.sortParticles = true

以下是渲染顺序重要的示例:

var material = new THREE.PointCloudMaterial( {
    map: texture, // has transparent areas
    transparent: true
} );

var pointCloud = new THREE.PointCloud( geometry, material );
pointCloud.sortParticles = true; // the default is false

在这种情况下,渲染器将按深度对点进行排序,因此首先渲染距离摄像机较远的点,并通过较近的透明区域显示。

以下是渲染顺序重要的示例:

var material = new THREE.PointCloudMaterial( {
    map: texture,
    blending: THREE.AdditiveBlending,
    depthTest: false,
    transparent: true
} );

// point cloud
var pointCloud = new THREE.PointCloud( geometry, material );

由于排序发生在CPU端,因此最好明智地选择材料设置,这样可以避免开销 - 特别是对于大型系统。

我建议你建立一个测试平台和实验。有许多可能需要考虑的案例。

three.js r.69