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.
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.
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 #!
Why after all this time do people still hang on to his every word? Its just some dude, not Jesus.
By all means, feel free to do something more noteworthy and become the new authority on the subject at hand. Until then, I think I'll continue feeding my Savior Reincarnate shrine its daily snackrifices.
To be fair, Jesus was also just some dude. Possibly.
(uninspired content viewed at the molecular level is still uninspired content)
Best quote I've seen yet about this.
I know, right!
Next, he'll be asking for real time mpeg encoding.
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.
No, Jesus wasn't the dude. He was the dude's bowling rival.
There are a lot of reasons people still follow him closely.
He's really smart, hard-working, and open with his opinions. If something blows, he doesn't sugar coat it out of fear for his relationship with the company whose product he's bagging on.
He's also fiercely empirical. Moreso than a lot of his competitors, he doesn't buy into his own bullshit. If he has an idea, he makes an experiment to test it, and if it doesn't cut the mustard, he adjusts his view on the subject. He reverses his opinions over time and points out when he's been wrong. You'd think that trait would be common amoungst coders, what being lovers of science and engineering in general, and you'd be wrong.
He's also open with his source code, and a lot of coders have actually learned how to write games by reading his source for Doom & Quake. In addition to being a fast coder, he writes very clean code with a very crisp style, and that code has been a really positive influence on the next generation of game programmers.
But if you're looking for Jesus, you need look no further. I was one of the first coders John hired, and if you recall, Jesus is the *son* of God, and like Jesus, I was cast out from Heaven to muck about with mortals and spread the good word. Also, unlike John but more like Jesus, I believe my own bullshit without the need to test it. Crucially, if you look up "gamer" under Google images, I'm on the first page, and you'll see conclusively that I can rock the long Jesus hair. I am also skinny, emaciated, and have been repeatedly crucified. If you choose to become a disciple, I will welcome you with open arms. I just won't respect you.
Id rater listen to him than jesus, what does that tell you?
That idiots post as anonymous cowards on Slashdot.
So how many games will the 'Horns win this year?
Yeah, it is real person not some quite likely fictional historic figure. What exactly is your point?
Have you not read this?
That's a pretty good reason to take him seriously.
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!
Shut the fuck up Donny, you're out of your element.
Great, but John Carmack admitted he didn't write the code and the derivation of the magic constant goes back many years prior to stuff SGI did.
Crucially, if you look up "gamer" under Google images, I'm on the first page
Lemme check... holy crap, is that really you? Man, you were awesome in '300'.
Circumcision is child abuse.
Judging from the Rage trailers it is safe to say that JC has set the bar higher once again. It still looks like Quake with cars so I'm not much interested in actually playing it, but interestingly you can see some intrusions from the Bethesda culture in the form of ambient banter and quests. It seems like a no brainer that John has already turned to the truly open world problem so Bethesda can realistically use his next engine for a proper walk-around.
Have you got your LWN subscription yet?
Still fascinating though.
It's always amazing how there is a faster way of doing calculations in using a few simple instructions rather than one complex instruction. Swapping registers using XOR instructions, using SUB to clear registers, and using integer arithmetic to manipulate floating point data were the ones I heard about.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
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
At the time, it probably was faster, which is good because Quake III ran on some really old hardware. Unfortunately on the CPUs of today it's actually slower, at least with the 20k or so operations I benched with.
Fear is the mind killer.