我在 Three.js 中使用 Sprite 来加载点纹理(以前是点云),但我无法使混合正常工作。这是我正在使用的代码:
this._renderer = new THREE.WebGLRenderer({alpha: true, antialias: true, preserveDrawingBuffer: true});
this._renderer.setClearColor( 0x000000, 0 );
....
new THREE.Points(geometry, new THREE.PointsMaterial({transparent: true, blending: THREE.CustomBlending, blendSrc: THREE.OneFactor, blendEquation: THREE.AddEquation, map: lt._sprite, size: 1, vertexColors: true}));
该 Sprite 包含 Threejs 附带的 Disc.png Sprite 。这是它的样子:
- 自定义混合(上面的代码):threejsblending 。
- 无混合:no blending
我使用的不同混合看起来与上述之一相同和/或 Sprite 未正确加载(方形点)。
我对 Threejs 或 webgl 不太熟悉。任何帮助表示赞赏。整个代码又长又复杂,但我可以发布任何相关的部分。
最佳答案
对于遇到同样问题的人,为我解决的问题是:
alphaTest: 0.5
传递给点 Material 。
new THREE.PointsMaterial({transparent: true, alphaTest: 0.5, ....);
关于javascript - 如何让 Three.js Sprite 背景混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689669/