Three.js 示例不完全兼容移动端

Posted

技术标签:

【中文标题】Three.js 示例不完全兼容移动端【英文标题】:Three.js example not completely compatible with mobile 【发布时间】:2016-01-23 16:20:02 【问题描述】:

我对移动设备上的“后处理/故障”示例有疑问。只是雪效应造成了麻烦。在桌面上,它会在故障期间覆盖整个视口。在手机上,它只出现在底部。我认为这是负责的路线。它在 DigitalGlitch.js 中。

"vec4 snow = 200.*amount*vec4(rand(vec2(xs * seed,ys * seed*50.))*0.2);",

我不明白为什么要影响移动设备。

【问题讨论】:

您希望vec2() 中的vec4() 是什么? 感谢您的回复。我不确定该值应该是多少。这是当前着色器中的值。从桌面 Bowser 观看时,每件事看起来都不错,但雪景效果在移动设备上并没有出现。测试一下,你就会明白我的意思了。这是示例的链接threejs.org/examples/#webgl_postprocessing_glitch 也是我帖子中提到的下一行。 gl_FragColor = gl_FragColor+ 雪;。我在想也许需要为移动设备更改此语法。我对 GLSL 还是很陌生。 我的错。 rand() 返回一个浮点数,所以代码看起来不错。 是的,我不确定它是如何工作的。感谢您清除它。我希望有某种方法可以将控制台日志与 GLSL 一起使用。所以我可以比较桌面和移动设备之间的 gl_fragColor 值。我在想也许需要一个在移动设备上不可用的 WebGL 扩展。我不确定如何测试。 【参考方案1】:

此问题在移动设备中最常见,这是此设备像素比率背后的原因之一 通常移动设备的像素比 > 2 像素比为 2 意味着要渲染的像素多 4 倍

为了优化性能我们必须把这个标准化,你可以试试 -

  renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));

【讨论】:

以上是关于Three.js 示例不完全兼容移动端的主要内容,如果未能解决你的问题,请参考以下文章

zhilizhili-ui 2013-2015移动端设备分析不完全报告

移动端:zepto框架

关于移动端的键盘兼容性总结

移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)

阿里云EMAS 移动测试,帮您快速掌握移动端兼容性测试技巧

移动端可以兼容fullpage.js吗