在renderer.setSize()
中,渲染器的domElement
或canvas,按比例縮放像素比例。
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(window.innerWidth, window.innerHeight);
container.appendChild(renderer.domElement);
然後,在interactive cubes example,歸一化的鼠標座標設置如下所示:
mouse.x = (event.clientX/renderer.domElement.width) * 2 - 1;
mouse.y = - (event.clientY/renderer.domElement.height) * 2 + 1;
這將導致一個問題與具有像素比不等於1
設備請注意,在interactive particles example中,標準化的鼠標座標計算方式不同,並且沒有問題。
mouse.x = (event.clientX/window.innerWidth) * 2 - 1;
mouse.y = - (event.clientY/window.innerHeight) * 2 + 1;
作爲解決方法,使用第二種模式。
我們可能不得不重新討論在未來版本的庫中如何處理設備像素比例。
編輯:@mrdoob提出了以下模式作爲溶液:
mouse.x = (event.clientX/renderer.domElement.clientWidth) * 2 - 1;
mouse.y = - (event.clientY/renderer.domElement.clientHeight) * 2 + 1;
three.js所R.70
不[本three.js所演示](http://threejs.org/examples /canvas_interactive_particles.html)的工作?如果是這樣,我預計這是一個設備像素比問題。 – WestLangley 2015-03-03 00:41:20
該演示適用於舊的mac。 – 2015-03-03 04:05:46
我連接的演示程序是否可以在帶有視網膜顯示器的Mac上工作? – WestLangley 2015-03-03 04:17:51