我一直在使用一个简单的模型开发一个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' );
}
);