Monday, February 13, 2012

Virtual Texturing. Rage.

    Id Software and John Carmack have created a really new way in using unlimited textures in CG, but they hasted for year or two because current generation of graphics hardware have not enough on chip memory to make use VT approach well. Stop! Why we need lots of on chip video memory? The main idea of VT is to minimize requirements for video memory by providing ability to use a magnitude more textures than before. Lets try understand why it's so.
    In theory VT always consumes constant memory footprint, more over ideally when other sub-systems parameters like hard drive and memory latency and bandwidth will be very well, VT needs only additional texture with dimension equal to the back buffer size. But current (and future also) generation of hardware is not ideal and has limitations, so VT needs overcome them by using page (tile) of pixels instead of single pixel to minimize latency and using indirection table to access the right page. VT is very similar in base idea to the virtual memory system for operating systems. That all makes VT using much more bigger texture (even textures) which is usually 4-16 times bigger than the initial theoretical assumption.
    I'm lucky to have Nvidia 590 GTX graphics card (with 3Gb of video memory) on my work and as a real passion graphics programmer the first thing what I did was run Rage and change size of the page table from 4k to 16k. And guess what? the bothering texture popping has gone. Now I don't see any texture loading and switching between fallback texture to needed LOD at all. That is why I said that Carmack  hasted  for year or two. Currently 590 GTX is high-end graphics card with the price about 800$, but over the year it'll be usual middle-end video card.
     P.S. Anyone who is interesting in virtual texturing technique (theory and implementation) I'm very recommending this blog

No comments:

Post a Comment