Carmack On 'Infinite Detail,' Integrated GPUs, and Future Gaming Tech
Vigile writes "John Carmack sat down for an interview during Quakecon 2011 to talk about the future of technology for gaming. He shared his thoughts on the GPU hardware race (hardware doesn't matter but drivers are really important), integrated graphics solutions on Sandy Bridge and Llano (with a future of shared address spaces they may outperform discrete GPUs) and of course some thoughts on 'infinite detail' engines (uninspired content viewed at the molecular level is still uninspired content). Carmack does mention a new-found interest in ray tracing, and how it will 'eventually win' the battle for rendering in the long run."
Years ago he posted here on occasion and I even remember seeing small active discussions on rendering technique technical points etc.
It has been ages since I've last seen this, which makes me ponder if he even reads slashdot these days when topics related to him are posted.
Ray Tracing has been around for a long time. The problem it just takes so long to render well. It is much better then it use to be, because we have more processing to do it. But... Still it slow, and Poligons or now the "Infinite Detail" seems to be a reasonable shortcut. To realtime raytracing, as they offer graphics fast enough and good enough for our needs... One day I hope for real time Ray Tracing... However that is still down the lines. Once Pixar doesn't need server farms for their final quality output then I will be happy.
It should be noted that John Carmack believes that Ray Casting, not Ray Tracing, will win out in the long term.
Unfortunately, many people outside of the graphics field confuse the two. Ray Casting is a subset of Ray Tracing in which only a single sample is taken per pixel, or in other words, in which a single ray is cast per pixel into the scene and a single intersection is taken with the geometry data set (or in the case of a translucent surface, the ray my be propagated in the same direction a finite number of times until an opaque surface is found). No recursive bouncing of rays is done. Lighting is handled through another means, such as with traditional forward shading against a dataset of light sources, or using a separate deferred shading pass to un-hinge the combinatorial explosion of overhead caused by scaling up the number of lights in a scene.
John Carmack has been quoted on saying that full-blown ray-tracing just isn't feasible for real-time graphics due to the poor memory access patterns involved, as casting multiple rays per pixel, with multiple recursive steps ends up touching a lot of memory in your geometry data set, which just thrashes the cache on CPU and modern/future GPU hardware alike.
When people talk about real-time ray-tracing, they almost always invariably are referring to real-time ray-casting.
outside of the quake supernuts? Yes he revolutionized video games by taking a then decade old trick and using a faster pc to redraw it in real time, his company ended up making a FEW ok but nothing spectacular games, and had made a few engines that the competition blew away a month later
Why after all this time do people still hang on to his every word? Its just some dude, not Jesus.
The Euclideon infinite detail technology was exposed in a recent interview to be efficient sparse voxel octree ray-casting with contours (instead of axis-aligned cubes), which was previously investigated by nVidia researchers and others.
http://www.tml.tkk.fi/~samuli/publications/laine2010tr1_paper.pdf
It's still not quite competitive enough with conventional rasterization techniques if you also try to do decent lighting with it along with all of the other stuff that goes into developing a game. Maybe in couple of more GPU generations. And in the Euclideon demos, you can see they're only getting 15-25 frames per second, and yet they're using a simplistic lighting model with a single global light.
Also, you can merge polygon rasterization and voxel ray-casting under the same rendering architecture if you employ deferred shading and composition. That way you can have your static models as a voxel-octree that you ray-cast into your geometry-buffer, rasterize your dynamic polygonal models in a second pass into the same geometry-buffer, and then perform your lighting passes with the geometry-buffer as input, and then your final scene composition and post-processing passes. In fact, I bet you that in 5-6 years time, this will become a standard practice among PC game developers. Unfortunately, I think the upcoming next console generation, with hardware from Sony and MS due out next year, will miss out on being able to handle this.
Speak for yourself! ;-)
you had me at #!
(uninspired content viewed at the molecular level is still uninspired content)
Best quote I've seen yet about this.
They rely too much on drivers, they should just attack the hardware and make their own renderer rather than relying on crappy OpenGL and DirectX...
But of course, they don't really want to invest in R&D. Game development is more of a "do something dirty quickly and then throw it again" kind of thing.
Really?
I mean, the main criticism for id games has been that they are less games and more tech demos. Practically every game engine id ever sold has been used for much more interesting games by other people, but id still gets license fees.
If they don't invest in R&D, why are they doing their own engine design at all, and more importantly, just what are they investing in?
And even if you're right about OpenGL and DirectX being "crappy", which I highly doubt, the fact is that they are at least somewhat portable across hardware. Suppose he's right, and Intel integrated graphics suddenly win. If they went directly to the hardware, as you suggest, they'd need to port their game to Intel cards, or that game wouldn't work with those cards. We'd be back to the bad old days when you actually had to check the system requirements for your sound card and video card manufacturer.
Don't thank God, thank a doctor!
Did anyone else catch that?
That's probably the most interesting thing he said all day. Throw an ARM core on the GPU, provide some sort of standard API for using it, and you eliminate all those pesky latency issues. Modern GPUs have enough RAM that one could potentially push the entire renderer onto the GPU, with the CPU and main memory only being responsible for game logic.
Of course, he also seems to be implying that this might go the other way, with integrated graphics winning out...
Don't thank God, thank a doctor!
Nice to see somebody who is RIGHT on the Internet for a change.
Go John.
Wish ID would stop publically supporting DirectX but I guess they have to watch the bottom line, and we all know they duplicate everything they do in the one true GL (the open one).
The Automata Engine 1.0 looks to be a step in the right direction, some of it's features:
* multilayer 3D canvas, composed of pseudo-voxels
* voxel-based sprites, composited via ink effects
* 3D sprite-based lighting
* cellular automata rule engine
* multiple rendering paths for optimization
* multithreading
* audio engine, configurable via externally defined "rules."
* time-sliced stats module -- allows sound to be tied to the number of voxels, for instance
* game levels and level transitions
* movers, colliders, streakers (objects that add cells into the environment)
* two camera impementations: simple and "follow"
* XBox, Windows, and soon Windows Mobile 7
Relevant links:
http://www.newlifeinteractive.com/main/
http://www.youtube.com/watch?v=mOu9QhWGla0