以下示例在所有主要浏览器上都能正常工作,甚至在 Safari Mac 操作系统上也能正常工作,但在装有最新 iOS8 的 iPad 上无法显示正确的图像。 http://mrdoob.github.io/three.js/examples/webgl_panorama_equirectangular.html
此外,以下教程在 iOS8 上效果不佳。
http://blog.thematicmapping.org/2014/01/photo-spheres-with-threejs.html
我们应该如何在 webgl iOS 中显示全景图像?
请您参考如下方法:
访问http://webglreport.com/在 iOS 上,我们看到“最大纹理大小:4096”。事实上iOS支持高达4096*2048的全景图像,但是,我相信 Three.js 中有一个错误。在我的测试中,如果全景图像的尺寸大于4096,它将自动缩放到4096*2048,并且可以正确渲染。但如果图片尺寸正好是4096*2048,则不会发生缩放,渲染有问题。
作为一种解决方法,您可以对 Three.js 的函数clampToMaxSize 进行一些小更改:
改变
if ( image.width > maxSize || image.height > maxSize ) {
至
if ( image.width >= maxSize || image.height >= maxSize ) {
这意味着我们缩放尺寸为 4096*2048 的图像。在函数clampToMaxSize中,它所做的最重要的事情是
context.drawImage( image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height );