onnetz opened this issue on Nov 26, 2007 ยท 46 posts
stewer posted Tue, 27 November 2007 at 1:30 PM
Quote - It would be nice if stewer would come back and tell us if the power-of-2 lookup is still being used or not. I'm betting it isn't.
(caution, tech talk ahead) Well, the whole concept of mip maps is that one mip level is half the width and half the height of the level below it. Thus, it's a repeated divison by two meaning that unless your texture sizes are powers of two, there will be at some point an odd size divided by two. Resampling for the higher levels is done using a filter kernel which in the case of an uneven divide would then not be centered on each pixel any more but sit between pixels at some point. If one used a simple narrow box filter or nearest-neighbor resampling, this would lead to visible aliasing. The use of wider higher-order filters however makes this not an issue in practice. Lookups in the mip map are not just a simple nearest-pixel read but depending on the filter setting a trilinear ("Fast") or an EWA ("Quality") lookup which makes this even less of an issue. BTW, when filtering is disabled in the material room, it's a bilinear interpolation from the lowest mip map level (thus leading to higher stress on the texture cache, possibly resulting in slower performance compared to trilinear or EWA lookups). Graphics cards usually prefer power of two sized textures and for preview purposes, Poser will resize textures appropriately. On the topic of txmake, that's a part of Pixar's implementation and not a part of the RenderMan specification. How a compliant renderer wants to deal with textures (mip map, rip map, summed area tables etc) is up to the implementation.