Even before the days when the 3D accelerator video card was
commonplace in the gaming rig, John Carmack’s contribution to the PC gaming
space was considerable. Ever since Wolfenstein 3D and DOOM, id Software’s technologies
focussed on delivering a three-dimensional experience to the player.
With Quake, Carmack’s engine work moved into true-3D space,
and eventually opened to hardware acceleration. Carmack hasn’t let up in his
continuing work in 3D engine development, with id
Tech 5, which will power id Software’s upcoming
Rage title.
All major 3D game engines, including those powered by
Carmack, rely on traditional rasterization rendering techniques. Recently, the
concept of ray tracing – a method of rendering a three-dimensional scene, usually
used for stills – surfaced as a possibly viable alternative draw technique.
Leading this charge for ray tracing is Daniel Pohl, who presented
a Quake engine with ray tracing rather than rasterization technologies.
Instead of using a 3D accelerator card from AMD/ATI or NVIDIA, Pohl relied on
the computational power from the general purpose Intel CPU (or a farm of them).
Seeing as how Pohl’s work promotes the application of the
general processor, Intel snatched up the German graduate to further research 3D
rendering technologies.
When it comes to current and next-generation 3D rendering,
particularly for games, there are few that have the experience and influence of
John Carmack (and Epic Games’ Tim Sweeney too). PC Perspective
picked Carmack’s brain for his opinion on ray tracing technology, but the id
Software lead programmer is still convinced that rasterization is today’s best
solution.
“I’m not really bullish on [ray tracing] taking over for
primary rendering tasks which is essentially what Intel is pushing,” said
Carmack. “There are large advantages to rasterization from a performance
standpoint and many of the things that they argue as far as using efficient
culling technologies to be able to avoid referencing a lot of geometry, those
are really bogus arguments because you could do similar things with occlusion
queries and conditional renders with rasterization. Head to head rasterization
is just a vastly more efficient use of whatever transistors you have available.”
Carmack doesn’t completely discount ray tracing, as he talks
about technique that might be applicable for future technologies: “It involves
ray tracing into a sparse voxel octree which is essentially a geometric
evolution of the mega-texture technologies that we’re doing today for uniquely
texturing entire worlds. ...rasterization architecture does really start
falling apart when your typical triangle size is less than one pixel.”
In fact, Carmack hopes that his described “ray tracing in
the sparse voxel octree” method will be a part of id Software’s next engine after
id Tech 5, as he thinks he “can show a real win.”
Moving away from the wealth of graphics discussion, Carmack
has interesting comments regarding AGEIA, particularly NVIDIA’s
acquisition of the physics technology: “That was one of those things where
it was a stupid plan from the start and I really hope NVIDIA didn’t pay too
much because I found the whole thing disingenuous. ... The whole thing about
setting up a company and essentially lying to consumers, that this is a good
idea, in order to cash out and be bought out by a big company, I saw the whole
thing as pretty distasteful. It’s obvious, and we knew when AGEIA was starting,
that a few generations down the road we would have these general purpose
compute resources on the GPU.”
While physics accelerators were little more than gimmicks,
such dedicated functions could one day be implemented into the GPU’s workload,
said Carmack. “...As people choose to either change their architecture to allow
a frame of latency in the reports of collision detection in physics or we get
much finer grain parallelization where you don’t have this really long latency
and you can kind of force an immediate mode call to GPU operations, then we
start using that just the way we do SSE instructions or something in our
current code base.”
Now PC gamers will just have to wait to see if Carmack will
tailor his next-generation engine ideas to AMD/ATI and NVIDIA hardware or if
the hardware makers will have to design around id Tech 6.