我目前正在研究某种虚拟纹理实现。mipmap 级别用作细节级别控制结构。(虚拟纹理中的每个纹素都与“真实”纹理中的数据块相关。)
数据存在于多个细节级别中,这导致虚拟纹理中的块数不同。
例子:
level size of data number of blocks
0 60 4
1 30 2
2 15 1
我的想法是为虚拟纹理中的每个细节级别调用 glTexImage 以创建不同的 mipmap 级别。
问题是尽管创建或更新/加载时没有错误,但我无法从纹理中获取任何数据。仅创建基本级别并调用 glGenerateMipmap 可以正常工作,但会导致某些基本尺寸的尺寸错误。(从技术上讲,它们是正确的,但在我的情况下不是)
我在某处读到 mipmap 级别大小必须是除以二(或除以二和地板)。
问题:
- 是否可以加载“自定义”mipmap 级别?
- 是否有任何限制 mipmap 级别大小?