在Three.js CSSRenderer中补偿浏览器缩放

时间:2014-02-18 01:07:54

标签: javascript css 3d three.js

我正在使用CSSRenderer处理three.js中的一个项目,并且我被告知当浏览器的缩放不是100%时我需要正确显示它。据我所知:

我想也许如果我能够检测到变焦,我可以在另一个方向上进行css缩放来补偿,有点像在Vijey的帖子中建议的那样:Changing the browser zoom level

鉴于此,似乎无法在非100%缩放时正确显示three.js场景,我甚至无法显示警告,告诉用户应用程序无法正常使用缩放浏览器缩放。有人可以证明我的错吗?有谁知道是否有任何措施来解决这个问题?

1 个答案:

答案 0 :(得分:2)

Three.js使用matrix3d()函数应用转换。 Chrome有一个known issue,使用matrix3D进行的三维转换在浏览器缩放下无法正确缩放。

您可以看到错误here的示例。如果更改缩放级别,您会注意到红色和蓝色框之间的边界发生变化。

解决方案是独立使用旋转,平移和缩放变换应用变换。此方法避免了Chrome错误并缩放为expected(框之间的边界在缩放级别上保持一致)。

以下是使用此技术并正确缩放的更新CSSRenderer