首页 > 解决方案 > WebGL2 中具有自定义大小的 mipmap 问题

问题描述

AFAIK,WebGL2对纹理大小没有限制,在 WebGL1 中应该是 2 的幂。但是,使用 WebGL2,我尝试为具有自定义大小(不是 2 的幂)的 DDS 格式的压缩纹理生成 mipmap,但总是遇到异常:“级别 0 不是 2 的幂......”。我已经尝试了一个 mipmap 级别和 miltiple 级别。没运气。它仅在大小为 2 的幂时有效。有人知道为什么吗?我已经尝试过使用 imagemagick 之类的工具创建的 mipmap 以及在运行时使用gl.generateMipmap(target)生成的 mipmap 。没运气。

标签: webgl2

解决方案


DXT 绝对适用于非 POT 纹理。它使用 4x4 块,因此它适用于任何尺寸为 4 倍数的图像。您必须遵循此规则。最初,我的纹理的宽度/高度不是 4 的倍数。我尝试了 DXT5,mip 级别的宽度/高度是 4 的倍数,一切正常。谢谢。


推荐阅读