在WebGL中将数据加载到纹理中的最快方法
我们正在分析我们的应用程序,我们注意到大部分cpu时间都花在调用texImage2D上,这是我们用来填充纹理的。下面是一个例子。我想知道在WebGL 1/2或专用浏览器扩展中是否有更快的方法可以让这更快在WebGL中将数据加载到纹理中的最快方法,webgl,webgl2,Webgl,Webgl2,我们正在分析我们的应用程序,我们注意到大部分cpu时间都花在调用texImage2D上,这是我们用来填充纹理的。下面是一个例子。我想知道在WebGL 1/2或专用浏览器扩展中是否有更快的方法可以让这更快 gl.bindTexture(gl.TEXTURE_2D, texture); gl.texImage2D(gl.TEXTURE_2D, 0, 0,
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D,
0,
0,
0,
width,
height,
gl.RED,
gl.FLOAT,
data);
gl.bindTexture(gl.TEXTURE_2D, null);
texStorage2D是更快的调用吗?有一个offset参数,它指向像素解包缓冲区。这会加快速度吗?我想这已经被问到了,答案是否定的:
texStorage2D
创建了一个不可变的纹理(它的大小和格式不能通过进一步调用来更改,这与使用texImage2D
创建的纹理不同),这会导致一些速度提高,但我不确定它是否会影响加载时间。UnityWeb似乎只使用texStorage2D
和compressedExSubImage2D
,如果有帮助的话(当然,只要上下文是WebGL2)。谢谢@riv。真知灼见