【问题标题】:WebGL and rectangular (power of two) texturesWebGL 和矩形(二的幂)纹理
【发布时间】:2011-11-28 14:58:14
【问题描述】:

WebGL 已知有poor support for NPOT (non-power-of-two) textures。但是对于宽度和高度都是 2 次方的矩形纹理呢?具体来说,我试图绘制到一个矩形帧缓冲区,作为渲染到纹理方案的一部分,以生成一些 UI 元素。帧缓冲区需要为 512x64 左右。

这在绘图方面会降低多少效率?如果帧率是一个问题,我是否会更好地分配一个 512x512 的两倍大小的缓冲区并只渲染到前 64 个像素,从而牺牲内存来提高速度?

【问题讨论】:

    标签: opengl-es textures webgl


    【解决方案1】:

    从来没有限制宽度必须等于高度。

    【讨论】:

    • 在这个答案上进一步发展:一些压缩纹理扩展要求纹理的宽度和高度相等(WebGL 仍然不支持它们),但事实并非如此对标准 OpenGL/WebGL 行为的限制或性能损失。
    【解决方案2】:

    更具体地说:2D 纹理根本不需要是正方形的; 512x64 纹理不仅是允许的,而且应该由驱动程序有效地实现;另一方面,立方体贴图需要是方形的。

    对于 2D 纹理,如果两种环绕模式都是 CLAMP_TO_EDGE 并且您的缩小过滤器不需要 mipmap,则可以使用 NPOT 纹理。 NPOT 纹理的效率可能因您的驱动程序而异。

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 2016-09-26
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      相关资源
      最近更新 更多