我正在尝试THREE.Texture使用HTML5画布对象更新“ .image”属性。这可以在笔记本电脑上的Chromium(MacOSX)上使用。但是,iPhone Safari和iPhone Chrome均不起作用。根本原因是什么?如何解决?
在Safari中使用Web Inspector时,出现以下错误消息:
WebGL:INVALID_VALUE:texImage2D:无画布。
我使用以下代码更新材质,以确保在更新之前完全绘制了画布:
material.map.image = loaded_canvas[curr_id]; // loaded_canvas stores canvas that has been completed loaded already, drawn by Image() objects.
material.map.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)
这是材料的使用方式:
var geometry = new THREE.SphereGeometry(100.0, 32, 32);
var material = new THREE.MeshBasicMaterial({
map: THREE.ImageUtils.loadTexture(image_path),
side: THREE.BackSide,
});
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我THREE.ImageUtils.loadTexture用来加载图像,它可以正常工作。但是,我的用例是必须使用canvas对象(画布上的多个图像)。
谢谢。