如果您有一个宽度/高度的单一幂次方纹理(例如 2048),并且您希望将其缩放和平移的子集(例如缩小的 64x92 大小的图块)尽可能快地移到另一个纹理上(作为缓冲区)所以它可以在不脏时被缓存),然后将该纹理绘制到 webgl 画布上,并且您没有更多要求 - 最快的策略是什么?
它是首先加载源纹理,将空纹理绑定到帧缓冲区,将源渲染drawElementsInstancedANGLE到帧缓冲区,然后解除绑定帧缓冲区并渲染到画布?
我对 WebGL 不太了解,我正在尝试编写一个非状态版本的 https://github.com/kutuluk/js13k-2d(它只使用 draw() 调用而不是维持状态的精灵,因为我会有数百万个精灵)。在我深入杂草之前,我希望得到一些反馈。
没有通用的最快方法。最快的方式因 GPU 而异,也因具体情况而异。
我敢肯定还有很多其他考虑因素。对于每一个考虑,我可能会选择不同的方法。
一般来说,您的想法是否使用drawElementsAngleInstanced看起来不错,但不知道您正在尝试做什么以及很难知道在哪个设备上。