onnetz opened this issue on Nov 26, 2007 · 46 posts
bagginsbill posted Wed, 28 November 2007 at 8:34 AM
OK well Stewer seems to be telling us, without actually having come right out and said it, that Poser internally increases the base texture size to a power of two, in preparation for doing mipmapping. This would imply that a 3K texture is actually taking up space as if it was 4K.
First point - should you then bother making a 3K texture at all, or just go to 4K? I'm guessing 4K.
Second point - I am certain that, other considerations (such as mipmapping) aside, it is possible to retain a 3K x 3K image in memory of exactly 27 megabytes (9 million pixels times 3 bytes per pixel). Almost all programs dealing with images do this. It's not tricky. If you were writing a program to manipulate and draw a 3K x 3K image and had no compelling mathematical reason to extend it to 4K, then you would not use much more memory than the minimum. For other efficiency reasons having to do with memory management, you might round it up to a multiple of some relatively small fixed chunk size, such as 1024, in which case you'd be wasting at most 1023 bytes. But there is no "software engineering" generic reason you have to go to 16 million pixels in memory.
Third point - power-of-two mipmapping was the state of the art several years ago. But I was able to find at least one very explicit paper on how to do non-power-of-two mipmapping. Yes it is slightly more complex. The algorithm was published by NVidia, explaining how to do it in hardware accelerated video cards. Typically, software techniques, which have a much bigger time budget (hours to render one image) can afford to do even more complex things than are done in real-time rendering. If real-time non-power-of-two rendering is possible, then there's no excuse why it should not be in Poser.
Here is the link to the article:
developer.nvidia.com/object/np2_mipmapping.html
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)