首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Safari iOS 8上的Webgl图像纹理故障

Safari iOS 8上的Webgl图像纹理故障
EN

Stack Overflow用户
提问于 2015-02-22 21:15:42
回答 3查看 2.1K关注 0票数 0

下面的例子在所有主流浏览器上都能正常工作,甚至在Safari Mac os上也能正常工作,但它无法在我的iPad上用最新的iOS8显示正确的图像。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中显示全景图像?

EN

回答 3

Stack Overflow用户

发布于 2015-07-05 07:51:13

在iOS上访问http://webglreport.com/,我们可以看到“最大纹理大小: 4096”。事实上,iOS支持高达4096*2048的全景图像,但是,我相信three.js中有一个bug。在我的测试中,如果全景图的大小大于4096,它将自动缩放到4096*2048,并且它将被正确渲染。但是,如果图像大小恰好是4096*2048,则不会发生缩放,渲染有问题。

作为一种解决方法,您可以在three.js的function clampToMaxSize中进行一点小的更改:

变化

代码语言:javascript
复制
if ( image.width > maxSize || image.height > maxSize ) {

代码语言:javascript
复制
if ( image.width >= maxSize || image.height >= maxSize ) {

这意味着我们缩放大小为4096*2048的图像。在函数clampToMaxSize中,它做的最重要的事情是

代码语言:javascript
复制
context.drawImage( image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height );
票数 2
EN

Stack Overflow用户

发布于 2015-02-22 23:33:43

移动设备不支持与桌面浏览器相同的纹理大小。webgl_panorama_equirectangular.html示例中的纹理是4096x2048,这对于移动设备来说很大。减少纹理的大小,但保持它的2次方。

票数 1
EN

Stack Overflow用户

发布于 2015-05-05 01:18:22

2048x2048是IOS8 safari的最大纹理尺寸,或者对于全景img的2048x1024,使用6x1024x1024纹理的skybox将是一个更好的解决方案。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28658208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档