You Tell 'em, John!
I generally enjoy id's games, as well as John Carmack's writings and thought about software performance and graphics, but none more than his recent keynote at QuakeCon 2005. In the keynote, John was generally positive about gpu state of the art, but raised two important desires:
- Full virtualization of textures
- The ability to efficiently render small batches
Full virtualization of textures
John advocated the ability to place whatever texture you want on any surface, rather than just tiling out of a limited set. He said:
You want to unleash your artists and designers more and more
In order to do this, he pointed out that you'd need to store the textures compressed and then allow the hardware to pick and choose what pieces to decompress, potentially allowing access to gigabytes of texture data.
Fast rendering of small batches
ATI and NVIDIA focus on peak performance numbers, so their architecture is designed to highly accelerate heavily preprocessed data. What John is asking for are architectural changes to allow the developer to be closer to the hardware and have higher performance with more distinct elements. He said:
A game is better with 10-times or 100-times as many elements as today
In addition to allowing more dynamic content, the ability to deal with small batches allows more artistic flexibility and reduces the amount of possessing between design and display. This also helps to streamline the production pipeline by allowing rapid viewing of new content.
w00t!
Do these features sound familiar? They should, since this is exactly the approach Second Life has been taking for the last 5 years! Rather than forcing creators to make a priori decisions about texture tiles and resources or to accept large delays between creation and display, Second Life attempts to do everything in real time. Of course, the downside is that current graphics cards are not designed to handle this style of world creation. We're in the midst of making things better with the 2.0 rendering effort, but having the 800-lb gorilla of 3D graphics trying to move ATI and NVIDIA in a good direction for Second Life is a really good thing!
(As an aside, the isn't the first time John has publicly ventured into topics related to Second Life. In "Mastes of Doom", David Kushner reported on John's desire to work on a "generalized environment" that would be a "programmable virtual reality like the Metaverse." Ultimately, the id braintrust overruled John and decided to work on Doom 3 instead.)