2013-04-23 67 views
2

当使用mimaps时,OpenGL会根据曲面的最终转换大小选择一个mipmap,还是仅基于局部空间中曲面的大小?换句话说,如果我缩放一个更大的多边形,当多边形的所有其他方面保持不变时,这可能会影响选择哪个mipmap?mipmap对缩放转换做出反应吗?

回答

2

它基于最终的转换大小。或者更准确地说,它基于正在处理的片段的屏幕空间坐标。所以是的,如果你的变换使得你的多边形非常小,它将选择一个较小的图像进行纹理化,而如果变换使你的多边形变大,它将选择更详细的mip级别。

它甚至可以正确处理多边形覆盖从观察者附近到远处的范围的情况。 (就像如果围绕x或y轴旋转多边形一样,所以一端非常接近观看者,而另一端很远。)附近的像素将使用更详细的mip级别,而远处的像素相同的多边形将使用较不详细的级别。

+1

通过纹理坐标梯度的屏幕空间斜率来选择具体的mipmaping级别。常规微映射选择两个偏导数的最大值,而*各向异性*过滤则根据偏导数选择两个单独的映射级别,并相应地调整混合内核。 – datenwolf 2013-04-23 12:30:26