|
Quote:
Graphics, Games, and Multi-core
Jonathan Erickson
The challenges for developers may not be just technical
Today's guest is Sebastien Deguy, president and founder of Allegorithmic.
DDJ: Sebastien, the Allegorithmic web site mentions "procedural textures." What does that mean?
SD: Procedural textures are textures defined according to an algorithm. Instead of painting (by hand) the texture pixel by pixel, you define the way these pixels have to be lit to produce the texture you want. It's basically like writing a program, and with that program comes all the power of algorithms over frozen (bitmap) data -- compactness, data amplification, parameterization, and the like.
When the procedural texture is defined, you launch an engine for actually generating the bitmap textures. These are called realizations of the procedural description, and it's a lot like the difference between a -- possibly random -- process and the realization of that process.
In the case of Allegorithmic's procedural textures, you'd define the procedures in a nice visual way using our product MaPZone, then use our other technology ProFX to rasterize the images, producing the final result to be displayed by a game engine or any renderer.
There are many advantages to using procedural textures instead of bitmap textures, one of them being that procedural texture files are typically 500-1000 smaller than bitmaps (making them ideal for online games).
DDJ: I'm familiar with 3D textures. But what are 4D textures?
SD: 4D here stands for 3D + Time. 4D textures means evolving textures, evolving environments and games. On our web site we showcase a demo around that idea, where a bathroom goes from a clean state to a dirty state in real-time.
Procedural textures, because they are driven by parameters, can be driven by time. And by letting time go by, the aspect of the textures can be changed, going for example from a clean state to a deprecated one.
Now imagine that applied to a game, where the whole environment and characters are changing, evolving, according to time but also to your actions within that environment. Actual PCs and consoles can handle this, and I must say I can't wait to see games using this as a feature.
DDJ: If I recall from your web site, a platform you will shortly be supporting is Playstation 3. What benefits and challenges do multi-core processors bring to the scene?
SD: Procedural techniques are demanding in terms of power, so the more power you can get, the better it is in that respect. Going multi-threaded is quite easy generally speaking for image-based work (you can divide the image in several pieces and work in parallel), and so the more cores you can get, again, the better it will be.
That said, programming the PS3's eight Synergistic Processing Units (SPUs) can be quite challenging from time to time, but there is definitely a lot to gain from the architecture, and ProFX on PS3 should run impressively fast. (We should get confirmation on that by the end of the year or so
A very cool side effect of the PS3's architecture is that ProFX should be able to continuously stream textures -- using one or two SPUs to compute the textures to be given to the GPU to be displayed, that's a huge bonus for adding rich content to games without having to stream that content from the BluRay or overloading the sole GPU of the machine.
You should see more graphically impressive games than ever with that kind of combination.
DDJ: We've seem to have made great strides in terms of texture mapping and other forms of 3D modeling. What's the next big challenge?
SD: There are many technical challenges that I could point out here. But I'd like to focus on one. Game developers now have a lot more content to produce, store, and distribute than ever before. MMORPGs are a good example here, filling up a BluRay of 50GB of content (instead of 5GB for a single layer DVD) is another one.
The question is then, for producing 10 times more content, do you want to grow your company by a factor of 10? Although I like the idea of allowing the industry to grow significantly, and although I love the idea of providing the maximum people with a cool job, I don't believe it's feasible that way.
Therefore game developers have to find new ways of not only producing that content, but also storing and delivering it.
I strongly believe procedural techniques for content creation are a major solution to that challenge:
* It's proven that, because defining procedural content is a highly non-linear process, you produce more content faster than with traditional techniques by reusing a lot of the base elements you've been producing along the line.
* Procedural content can be easily customized and created by gamers, and user-generated content is another key element for producing never-ending content.
* Procedural content files are typically parameters or code, which is usually extremely small compared to what it can produce. And that makes them ideal for the storage and furthermore the delivery of that content.
Of course, going from a traditional approach for content production to using generative techniques can be quite a challenge by itself, but it's worth the effort, and one of the only ways I see for raising the bar in terms of next-generation content creation.
DDJ: If readers want to find out more about these topics, can you suggest a web site? [okay to point to www.allegorithmic.com - YES]
SD: First, I invite readers to take a look at the web site dedicated to ProFX, Allegorithmic's middleware for procedural texturing, where they can find a lot of information regarding procedural texturing for games:
They can also check the Wikipedia webpage about procedural generation as a whole, and see that it's quite a hot topic right now (waiting for Spore!) |
Source |
|