猿问

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

我收到错误消息: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);那么此错误消息不再显示,我设法正确呈现。


慕妹3146593
浏览 823回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答