小编Log*_*og0的帖子

ThreeJS使用HTML画布更新纹理在移动设备(iPhone Safari等)上显示“ WebGL:INVALID_VALUE:texImage2D:无画布”

我正在尝试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对象(画布上的多个图像)。

谢谢。

html javascript webgl ios three.js

9
推荐指数
2
解决办法
1194
查看次数

标签 统计

html ×1

ios ×1

javascript ×1

three.js ×1

webgl ×1