gl_PointSize 随 devicePixelRatio 变化?

gl_PointSize changing with devicePixelRatio?

我正在通过 threejs 处理粒子,但在不同的设备上我没有得到相同的结果。在其他屏幕上,磅值看起来更小,在我的智能手机上也一样,只是在垂直方向上。虽然我在几个不同的屏幕上看到了这个问题,但我只用我的笔记本电脑 + 智能手机测试了以下实验。

Left :在某些屏幕上和我的智能手机水平方向上的实际代码看起来正确。 : 其他屏幕和我的智能手机垂直方向上的实际代码看起来不正确。

我首先认为它与 window.devicePixelRatio 有关,但 alert(window.devicePixelRatio) 在我的智能手机中以两个方向打印相同的数字 (3),尽管渲染仅在水平的。

我进一步尝试:

如何让粒子在每个屏幕上看起来都一样?

完整代码位于 http://codepen.io/Astrak/pen/BoBWPB

调整足够大后 windows 我明白 gl_PointSize 以某种方式代表绝对大小,而在我的示例中我希望它与 window.innerHeight 成比例。我在着色器中添加了这个值: gl_PointSize*=innerHeight 解决了这个问题。