Canvas Three.js:缩放时如何保持精灵文本大小不变

Canvas Three.js:缩放时如何保持精灵文本大小不变,canvas,three.js,sprite,Canvas,Three.js,Sprite,在three.js中,当鼠标缩放时,文本将相应放大和缩小 var texture = new THREE.Texture( canvas ); var material = new THREE.SpriteMaterial ( { map: texture, transparent:false } ); var sprite = new THREE.Sprite( material ); 当鼠标缩放时,如何保持文本大小不变?我的默认设置是,精灵根据其与透视摄影机的距离进行缩放,就像其他对象一样

在three.js中,当鼠标缩放时,文本将相应放大和缩小

var texture = new THREE.Texture( canvas );
var material = new THREE.SpriteMaterial ( { map: texture, transparent:false } );
var sprite = new THREE.Sprite( material );

当鼠标缩放时,如何保持文本大小不变?

我的默认设置是,精灵根据其与透视摄影机的距离进行缩放,就像其他对象一样

如果不希望缩放,可以覆盖第二个精灵场景,并使用正交摄影机进行渲染。看

它被称为“平视显示器”,或HUD

编辑:
SpriteMaterial
现在有一个
sizeateNuation
属性,您可以选择将其设置为
false
。默认值为
true


three.js r.96

要使用透视相机实现这一点,您可以根据精灵与相机的距离与某些“虚拟距离”之间的比率来设置精灵比例因子

在下面的示例中,virtual_d用于在渲染之前设置精灵和摄影机之间的固定虚拟“距离”

var scale = sprite.position.distanceTo(camera.position) / virtual_d;
scale = Math.min(you_max_scale_value, Math.max(you_min_scale_value, scale));

sprite.scale.set(scale, scale, scale);

但是,如果您不希望出现任何失真,例如视野较大时的边界失真,请使用正交摄影机。

是否使用three.js r.63?如果没有,请升级。你是说鼠标缩放吗?当鼠标缩放时,精灵默认会改变大小。是的,我使用的是r63,你的理解是正确的,有办法实现吗?我想要这个效果:当鼠标缩放时,精灵的大小不变…非常想你!!!!我明白了。HUD??对不起!我不明白HUD是什么。它能解决这个问题吗?顺便说一下,当使用透视相机时,有可能达到这个效果吗?1。抬头显示器:见2。使用透视摄影机渲染场景,然后再使用正交摄影机渲染精灵,就像我引用的示例一样。