Three.js 通过具有透明度的 pointCloudMaterial 纹理看不到一些对象
Three.js Some objects not seen through pointCloudMaterial texture with transparency
我正在尝试在三个场景中移动粒子 (THREE.PointCloud)。这个粒子是由这个 material 和透明 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对象中,有些对象没有透过纹理看到(右边两个是错误的)。
编辑:我创建了一个 Fiddle 来重现该问题,一些球体无法通过一些透明粒子看到:http://jsfiddle.net/g68jbsoy/1/(鼠标单击以创建粒子爆炸)
这是由于点云的透明度以及渲染顺序不正确造成的。
渲染透明物体时,需要渲染'front to back'。这意味着更远的对象需要首先渲染,最近的对象最后。
最初 PointCloud 对象有一个 sortParticles 属性 来帮助您完成这项工作,但它已被删除。
我正在尝试在三个场景中移动粒子 (THREE.PointCloud)。这个粒子是由这个 material 和透明 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对象中,有些对象没有透过纹理看到(右边两个是错误的)。
编辑:我创建了一个 Fiddle 来重现该问题,一些球体无法通过一些透明粒子看到:http://jsfiddle.net/g68jbsoy/1/(鼠标单击以创建粒子爆炸)
这是由于点云的透明度以及渲染顺序不正确造成的。
渲染透明物体时,需要渲染'front to back'。这意味着更远的对象需要首先渲染,最近的对象最后。
最初 PointCloud 对象有一个 sortParticles 属性 来帮助您完成这项工作,但它已被删除。