以下示例在所有主要浏览器上都能正常工作,甚至在 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 ); 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!