GPU Bound. Part Two. Endless Forest.


Once upon a time, the appearance of multitexturing hardware or hardware transformation & lighting (T&L) on GPUs was a huge event. Configuring the Fixed Function Pipeline felt like mysterious shamanic magic. Those who knew how to unlock advanced capabilities of specific graphics chips through D3D9 API hacks were considered enlightened masters. But time passed. Shaders appeared. At first they were heavily limited in both functionality and instruction count. Then came more features, more instructions, and higher execution speed. Compute technologies arrived (CUDA, OpenCL, DirectCompute), and the range of applications for GPU computing power began expanding rapidly.
"We're starting development of a new game, and we need great-looking water. Can you do that?"
they asked me.
"Sure, no problem! Of course I can," I replied, though my voice betrayed me with a slight tremble.
"Oh, and it's on Unity, by the way?" At that moment it became clear that there was a lot of work ahead.
How are the graphics engines of world-famous games built? What technologies do developers at the largest game companies use? Is it really necessary to employ the most cutting-edge techniques of modern 3D graphics to create beautiful visuals? We'll try to answer these questions by examining the rendering subsystem of Diablo III from Blizzard Entertainment.
Let's continue digging through the StarCraft renderer.
Reverse engineering was done at October 2010. I decide to translate my work in backward chronological order, because older games now have a little outdated 3D technologies, and I think is not that interesting than new ones.
This part about ingame graphics rendering. Movies (engine renderer based) will be described in part 2.
Crysis... How much is contained in that single word! :) It was difficult and incredibly fascinating. Every effect was a new discovery. It's one thing to read one or two paragraphs describing an implementation in the documentation, and quite another to explore and experiment with the effect yourself. At first, usually, nothing makes sense. Then, little by little, the technology starts to reveal itself, and the effect acquires a new kind of beauty. It usually ends with finding the most impressive manifestation of it and admiring it from every possible angle. :)
After the demo of Clive Barker's Jericho became available for public download, many people described its graphics as "the best they've seen so far." As you can imagine, I couldn't pass up a game like that.
In the comments on my previous reverse-engineering post, fellow reader uncle_lag asked me to explain PCF in more detail. I got so carried away that I decided the topic deserved its own post.
This post is dedicated to the memory of Colin McRae.
Hello, friends. Most of my materials on DiRT had actually been ready since mid-June, but a variety of circumstances (mostly good ones :)) forced me to postpone the final write-up of the report until autumn. And now, having gathered some energy, I decided to finish what I started.