2015-09-01 29 views
0

我正在通過threejs處理粒子,並且我在不同的設備上得不到相同的結果。在其他屏幕上,點的尺寸看起來更小,與我的智能手機相同,只有垂直方向。雖然我在幾個不同的屏幕上看到了這個問題,但我只用筆記本電腦+智能手機測試了以下實驗。gl_PointSize隨devicePixelRatio更改?

Correct look for certain screensbad look on others

:正確的期待與實際的代碼對我的水平方向的智能手機屏幕的某些&。:不正確的外觀與其他屏幕上的實際代碼&我的智能手機在垂直方向。

我首先想到它有事情做,在我的智能手機有兩種取向window.devicePixelRatioalert(window.devicePixelRatio)打印相同數量(3),雖然渲染僅在水平一個正確的。

我試圖進一步:

  • renderer.setPixelRatio(window.devicePixelRatio):效果圖在兩個方向顯示的3倍更小的尺寸,並且仍然是不同的。

  • 通過window.devicePixelRatio向頂點着色器寫入類似gl_PointSize*=devicePixelRatio的東西,除了之前的想法之外,還將此大小問題返回到其初始狀態。

如何讓顆粒在每個屏幕上看起來都一樣?

http://codepen.io/Astrak/pen/BoBWPB

回答

0

整個代碼調整足夠的窗戶我理解gl_PointSize後莫名其妙地表示,而在我的例子我想這是成正比window.innerHeight絕對大小。我在着色器中添加了這個值:gl_PointSize*=innerHeight解決了這個問題。