【发布时间】:2015-09-01 13:54:10
【问题描述】:
我正在通过threejs 处理粒子,但在不同的设备上我没有得到相同的结果。在其他屏幕上,点的大小看起来更小,在我的智能手机上也一样,只是在垂直方向上。虽然我在几个不同的屏幕上看到了这个问题,但我只用我的笔记本电脑 + 智能手机测试了以下实验。
左 :在某些屏幕和我的智能手机上以水平方向正确查看实际代码。 右 :在其他屏幕和我的智能手机在垂直方向上的实际代码看起来不正确。
我最初认为它与window.devicePixelRatio 有关,但alert(window.devicePixelRatio) 在我的智能手机中以两个方向打印相同的数字 (3),尽管渲染仅在水平方向上是正确的。
我进一步尝试:
renderer.setPixelRatio(window.devicePixelRatio):两个方向的渲染显示的尺寸都小了 3 倍,但仍然不同。将
window.devicePixelRatio传递给顶点着色器以编写类似gl_PointSize*=devicePixelRatio的内容,除了之前的想法之外,还可以将这个大小问题恢复到其初始状态。
如何让粒子在每个屏幕上看起来都一样?
【问题讨论】: