首页 > 解决方案 > Three.js 中没有 sizeAttenuation 的 SpriteMaterial

问题描述

我需要一个在 Three.js 中没有 sizeAttenuation 的(铭牌)精灵,它应该看起来像这个例子:

在此处输入图像描述

//load image with 256x128px 32bit png

var spriteMap = new THREE.TextureLoader().load("tex/plates/mytest.png");
var spriteMat = new THREE.SpriteMaterial({map:spriteMap, transparent:true, sizeAttenuation:false});
var sprite = new THREE.Sprite(spriteMat);
...
spriteMat.map.minFilter = THREE.NearestFilter;

结果并不模糊,但它不正确并且有一些我不想要的人工制品:

在此处输入图像描述

这是我第二次尝试(THREE.LinearFilter),也不是我想要的,因为它太模糊了:

在此处输入图像描述

渲染器尺寸:1200x800px(非全屏)

所以,我不知道过滤器、位置或缩放是否有问题。第一个示例看起来像位图文本,但我真的不知道如何解决这个问题。我也不需要屏幕空间中的二维精灵。我需要其他对象后面的 3d 世界空间中的铭牌。我真的不知道如何解决这个问题,请有人可以帮助我解决这个问题吗?

标签: three.jsspritetexture2d

解决方案


推荐阅读