为了账号安全,请及时绑定邮箱和手机立即绑定

WebGL 上的错误“Tex 图像 TEXTURE_2D 级别 0 导致延迟初始化”

WebGL 上的错误“Tex 图像 TEXTURE_2D 级别 0 导致延迟初始化”

慕妹3146593 2021-09-30 17:01:20
我收到错误消息:Error: WebGL warning: drawElements: Tex image TEXTURE_2D level 0 is incurring lazy initialization.在 WebGL 上,我想知道实际上是什么意思。无论如何,延迟初始化如何在单线程应用程序中成为问题?我理解为当你在 getter 中初始化一个变量时?我试着寻找我的错误信息并没有真正找到任何关于它的好信息。这是我处理纹理的代码:            const images = await Promise.all(model.maps.map(map => new Promise((resolve, reject) => {                const image = new Image();                image.src = map;                image.onload = event => {                    const texture = gl.createTexture();                    gl.bindTexture(gl.TEXTURE_2D, texture);                    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, image.width, image.height, 0, gl.RGBA, gl.FLOAT, null);                    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);                    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);                    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);                    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);                    gl.bindTexture(gl.TEXTURE_2D, null);                    resolve(texture);                };                image.onerror = error => {                    console.log(error);                    resolve(null);                };            })));我的绘图功能的相关部分基本上是:gl.bindTexture(gl.TEXTURE_2D, textures[material.textureIndex]);gl.activeTexture(gl.TEXTURE0);gl.drawElements(gl.TRIANGLES, material.faceCount * 3, gl.UNSIGNED_SHORT, drawnCount);话虽如此,如果我使用 6 参数语法:gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.FLOAT, image);那么此错误消息不再显示,我设法正确呈现。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 767 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信