我收到錯誤消息:Error: WebGL warning: drawElements: Tex image TEXTURE_2D level 0 is incurring lazy initialization.在 WebGL 上,我想知道實際上是什么意思。無論如何,延遲初始化如何在單線程應(yīng)用程序中成為問題?我理解為當(dāng)你在 getter 中初始化一個變量時?我試著尋找我的錯誤信息并沒有真正找到任何關(guān)于它的好信息。這是我處理紋理的代碼: 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); }; })));我的繪圖功能的相關(guān)部分基本上是:gl.bindTexture(gl.TEXTURE_2D, textures[material.textureIndex]);gl.activeTexture(gl.TEXTURE0);gl.drawElements(gl.TRIANGLES, material.faceCount * 3, gl.UNSIGNED_SHORT, drawnCount);話雖如此,如果我使用 6 參數(shù)語法:gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.FLOAT, image);那么此錯誤消息不再顯示,我設(shè)法正確呈現(xiàn)。
WebGL 上的錯誤“Tex 圖像 TEXTURE_2D 級別 0 導(dǎo)致延遲初始化”
慕妹3146593
2021-09-30 17:01:20