Javascript webgl纹理图像源更新

Javascript webgl纹理图像源更新,javascript,html,image,webgl,reloading,Javascript,Html,Image,Webgl,Reloading,我在webgl中制作了一个小项目,我在立方体上绘制了一个纹理,目前没有问题:) 但事实是,图像会定期更新,并保持相同的名称。 我想做的是,在图像更新时更新纹理,而不更新html页面 我已经尝试了不同的解决方案,如SetInterval或meta,它不保存缓存。。。但它暂时不起作用 我只想要一个简单的函数,它周期性地强制“重新加载”.jpg中的图像。你能帮我吗 非常感谢你以后的回答!玩得开心 如果已经有了纹理立方体,只需使用新图像调用gl.texImage2D,即可更新纹理 gl.bindText

我在webgl中制作了一个小项目,我在立方体上绘制了一个纹理,目前没有问题:)

但事实是,图像会定期更新,并保持相同的名称。 我想做的是,在图像更新时更新纹理,而不更新html页面

我已经尝试了不同的解决方案,如SetInterval或meta,它不保存缓存。。。但它暂时不起作用

我只想要一个简单的函数,它周期性地强制“重新加载”.jpg中的图像。你能帮我吗


非常感谢你以后的回答!玩得开心

如果已经有了纹理立方体,只需使用新图像调用
gl.texImage2D
,即可更新纹理

gl.bindTexture(gl.TEXTURE_2D, textureToUpdate);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, newImage);

如果已经有纹理立方体,只需使用新图像调用
gl.texImage2D
,即可更新纹理

gl.bindTexture(gl.TEXTURE_2D, textureToUpdate);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, newImage);

没有代码,很难为您的问题提供精确的解决方案

            drawingContext.bindTexture(drawingContext.TEXTURE_2D, webGLTexture);

            drawingContext.texImage2D(drawingContext.TEXTURE_2D,
                                        0,
                                        drawingContext.RGBA,
                                        width,
                                        height,
                                        0,
                                        drawingContext.RGBA,
                                        drawingContext.UNSIGNED_BYTE,
                                        newData);

            drawingContext.activeTexture(drawingContext.TEXTURE0);
            drawingContext.uniform1i(webGLUTextureLoc, 0);

            // This will most likely be different for you.
            drawingContext.drawArrays(drawingContext.TRIANGLE_FAN, 0, 4);

没有代码,很难为您的问题提供精确的解决方案

            drawingContext.bindTexture(drawingContext.TEXTURE_2D, webGLTexture);

            drawingContext.texImage2D(drawingContext.TEXTURE_2D,
                                        0,
                                        drawingContext.RGBA,
                                        width,
                                        height,
                                        0,
                                        drawingContext.RGBA,
                                        drawingContext.UNSIGNED_BYTE,
                                        newData);

            drawingContext.activeTexture(drawingContext.TEXTURE0);
            drawingContext.uniform1i(webGLUTextureLoc, 0);

            // This will most likely be different for you.
            drawingContext.drawArrays(drawingContext.TRIANGLE_FAN, 0, 4);

谢谢你的回答,但事实是撒切尔的照片保持相同的名字,所以浏览器的行为就像照片在缓存中,所以不想重新加载。谢谢你的回答,但事实是撒切尔的照片保持相同的名字,所以浏览器的行为就像照片在缓存中,所以不想重新加载。