javascript - THREE.js SpriteMaterial发光纹理隐藏边缘

标签 javascript three.js

我正在向一些 THREE.js 节点添加一个 SpriteMaterial 发光纹理,但它在边缘上的绘制方式存在一些问题。从某些 Angular 看效果很好,但从其他 Angular 看,即使纹理设置为透明,边缘也看不到。下图中的圆圈区域突出显示了问题。

enter image description here

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

var material = new THREE.SpriteMaterial({ map: new THREE.TextureLoader().load('img/glow2.png'), color: color, transparent: true, side: THREE.FrontSide, blending: THREE.AdditiveBlending });
var sprite = new THREE.Sprite(material);
sprite.scale.set(30, 30, 1.0);

这是纹理 png 的问题吗?如果是,我如何为不会产生这些类型的伪像的纹理创建图像?如果不是图片问题,那是代码哪里出了问题?

最佳答案

将 depthWrite:false 添加到您的 SpriteMaterial 参数中。

关于javascript - THREE.js SpriteMaterial发光纹理隐藏边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927728/

相关文章:

javascript - Vue.js 组件调用 data 属性内的方法

javascript - Blazor 到 Javascript 字节数组互操作

javascript - three.js:如何让透明的png Sprite 转换和接收阴影?

javascript - THREE.JS - Vector3.project 返回奇怪的结果

javascript - 有没有办法在JavaScript中修改 'this'?

javascript - if 语句中条件的表述

canvas - Three.js 中的纹理形状拉伸(stretch)

Three.js - 从另一个网格的某些面/顶点创建新网格

javascript - 三个js添加相机

javascript - 如何在 Javascript 中初始化数字变量