three.js改变移动设备上的纹理崩溃 - 上下文丢失

时间:2017-07-15 13:06:44

标签: javascript ios three.js webgl

我一直在使用一个简单的模型开发一个tree.js项目。 我尝试通过改变地图纹理来改变颜色。

在手机,特别是iPhone上,WebGL在3-4种颜色(地图纹理)发生变化后崩溃。 在PC浏览器上,它运行良好(尽管如果你更快地改变纹理很多次也会崩溃)。

请在此处查看模型:https://combie-web.herokuapp.com/(您可以使用右侧的颜色图标BTN更改颜色)

崩溃后我遇到的唯一错误是:(在PC上)

  

webgl:context_lost_webgl:lostcontext:context lost

由6个对象构建的模型都具有相同的地图(每个对象都知道要使用的地图的哪个部分)。

我正在使用TextureLoader更改其中一个对象的纹理:

//g_Body declare on scene load
var g_Body = scene.getObjectByName("Body");

...

var loader = new THREE.TextureLoader();
// load a resource
loader.load(
    // resource URL
    `static/Color/${color}/Combie_Combie_Diffuse.png`,
    // Function when resource is loaded
    function ( texture ) {
      // apply the new texture to the model body map
      g_Body.material.map = texture;
      g_Body.material.needsUpdate = true;
    },
    // Function called when download progresses
    function ( xhr ) {
      console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
    },
    // Function called when download errors
    function ( xhr ) {
      console.log( 'An error happened' );
    }
);

0 个答案:

没有答案