javascript - ThreeJS PointMaterial纹理透明背景问题

标签 javascript three.js

我有一组用 THREE.Points 制作的粒子,我正在使用带纹理的 THREE.PointMaterial。纹理是用 Canvas 制作的笔划矩形,它可以工作,但只是部分工作,这就是问题所在。

在这里你可以看到我的粒子发生了什么:

image

如您所见,粒子的透明度仅适用于某些粒子,而某些粒子则不然。

这里会发生什么?

这是我用来创建 Material 的代码:

var material = new THREE.PointsMaterial( {
  size: this.particleSize,
  vertexColors: THREE.VertexColors,
  map: ct.getTexture(),
  transparent: true,
  fog: false } );

最佳答案

你的问题的原因是粒子没有按深度排序并以从后到前的顺序呈现。

解决方法是添加

material.alphaTest = 0.5;

然后,透明片段将被丢弃。

three.js r.73

关于javascript - ThreeJS PointMaterial纹理透明背景问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830972/

相关文章:

javascript - 三.SpriteCanvasMaterial 不起作用

javascript - 通过 HTML 标签进行 XPath 搜索

javascript - 如何在 Javascript 中提取不完整 JSON 数组中对象的值?

javascript - 在循环中使用 $.post()

javascript - THREE.js OBJ 加载器对象

javascript - 使用鼠标围绕中心旋转 Three.js 相机

javascript - 使用 SVGRenderer 将图像渲染为 Three.js 中的节点(或以其他方式渲染球体)

javascript - 单击下拉菜单按钮时 Bootstrap 打开链接

javascript - 分机号 : Override JsonReader or post-process

javascript - THREE.js 在复杂模型中均匀散布粒子