Three.js通过pointCloudMaterial纹理看不到的一些对象具有透明度

时间:2015-01-19 09:18:48

标签: three.js textures transparency particles

我试图在三维场景中移动粒子(THREE.PointCloud)。这种颗粒由这种材料和透明png组成。

var material = new     THREE.PointCloudMaterial( { 
        size: tamanio,
        color:color, 
        //alphaTest:0.01,
        transparent:true,
        depthTest:true,
        map:recursoConNombre("textura_particula").objeto,
        blending:THREE.AdditiveBlending         
    });

一切似乎都好,但有些物体没有通过粒子的透明纹理看到。 Image of the problem, particles with transparent textsure带有红色圆圈的三个粒子位于同一个PointCloud对象中,通过纹理看不到某些对象(右边两个是错误的)。

编辑:我创建了一个小提琴来重现问题,一些透明粒子看不到的球体:http://jsfiddle.net/g68jbsoy/1/(鼠标点击创建粒子爆炸)

1 个答案:

答案 0 :(得分:0)

这是由点云的透明度以及以不正确的顺序呈现的点造成的。

渲染透明对象时,需要“从前到后”渲染。这意味着需要首先渲染对象,最近的对象需要渲染。

最初,PointCloud对象有一个sortParticles属性来帮助你做这件事,但它已被删除。

请参阅https://github.com/mrdoob/three.js/issues/5668