代码之家  ›  专栏  ›  技术社区  ›  fho

是否可以使用自定义mipmap大小?

  •  2
  • fho  · 技术社区  · 14 年前

    我目前正在研究某种虚拟纹理实现。mipmap级别用作详细级别控制结构。(虚拟纹理中的每个texel都与“real”纹理中的数据块相关。)

    数据存在于多个细节层次上,导致虚拟纹理中的块数不同。

    level       size of data       number of blocks
    0           60                 4
    1           30                 2
    2           15                 1
    

    我的想法是为虚拟纹理中的每个细节级别调用glTexImage来创建不同的mipmap级别。

    问题是,尽管在创建或更新/加载时没有错误,但我无法从纹理中获取任何数据。只创建基本级别并调用glGenerateMipmap可以正常工作,但会导致某些基本大小的大小错误。(从技术上讲,它们是正确的,但对我来说不是)

    我在某个地方读到mipmap级别的大小必须是除以2(或除以2和floor)。

    问题是:

    2 回复  |  直到 14 年前
        1
  •  5
  •   Bahbar    14 年前

    可以加载自定义mipmap级别,但不能选择其大小。OpenGL指定它所期望的级别的MipMap大小,并且不允许偏离它。

    以宽度为例,mipmap级别所需的宽度 i max(1, floor(w_b / 2^i)) ,其中w_b是第一个mip级别(基础)的宽度。其他尺寸相同(德国劳埃德船级社规范2.1,第3.8.8节,段落mipmapping)。

        2
  •  0
  •   Community CDub    7 年前

    确保将mipmap级别一直加载到1x1。见 here .