我收到错误消息: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);那么此错误消息不再显示,我设法正确呈现。
添加回答
举报
0/150
提交
取消