众所周知,WebGL有poor support for NPOT (non-power-of-two) textures。但是矩形纹理的宽度和高度都是2的幂?具体来说,我正在尝试绘制矩形帧缓冲区作为渲染到纹理方案的一部分,以生成一些UI元素。帧缓冲区需要为512x64左右。
在绘图方面效率会低多少?如果帧率是一个问题,我会更好地分配一个512x512两倍大小的功率缓冲区,只渲染到前64个像素,牺牲内存的速度?
答案 0 :(得分:8)
从来没有限制宽度必须等于高度。
答案 1 :(得分:2)
更具体地说:2D纹理根本不需要是正方形;不仅允许512x64纹理,还应该由驱动程序有效地实现;另一方面,立方体地图需要是方形的。
对于2D纹理,如果两个包裹模式都是CLAMP_TO_EDGE并且您的缩小过滤器不需要mipmap,则可以使用NPOT纹理。 NPOT纹理的效率可能因您的驾驶员而异。