Three.js 如何使用glsl设置固定大小(屏幕空间)的广告牌

Three.js 如何使用glsl设置固定大小(屏幕空间)的广告牌,three.js,glsles,Three.js,Glsles,我正在尝试使用three.js创建公告牌。我试着用了三个。但当我使用透视投影时,精灵的大小会随着距离的变化而变化。我尝试使用自定义着色器材质和自定义着色器创建平面 用于缩放公告牌的着色器代码 vec4 gl_Position = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));' 对于非缩放广告牌也是如此,我正在尝试实现它 floa

我正在尝试使用three.js创建公告牌。我试着用了三个。但当我使用透视投影时,精灵的大小会随着距离的变化而变化。我尝试使用自定义着色器材质和自定义着色器创建平面

用于缩放公告牌的着色器代码

 vec4 gl_Position = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));'
对于非缩放广告牌也是如此,我正在尝试实现它

float distance = length(modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0)); 
vec4 newPosition = projectionMatrix * (modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0) + vec4(position.x, position.y, 0.0, 0.0));
gl_Position= newPosition*distance;

不幸的是,输出没有变化。它的广告牌仍按比例缩放。有什么可以解决这个问题的建议吗

也许会有帮助。谢谢,我希望物体在缩放时保持原样。理想情况下,它应该在屏幕空间。