Carmack Speaks On Ray Tracing, Future id Engines
Vigile writes "As a matter of principle, when legendary game programmer John Carmack speaks, the entire industry listens. In a recent interview he comments on a multitude of topics starting with information about Intel, their ray tracing research and upcoming Larrabee GPU. Carmack seems to think that Intel's direction using traditional ray tracing methods is not going to work and instead theorizes that using ray casting to traverse a new data structure he is developing is the best course of action. The 'sparse voxel octree' that Carmack discusses would allow for 'unique geometry down to the equivalent of the texel across everything.' He goes on to discuss other topics like the hardware necessary to efficiently process his new data structure, translation to consoles, multi-GPU PC gaming and even the world of hardware physics."
Lest we overlook the fact that he thought multiplicative lighting was the way to go, rather than dealing with the performance hit of additive lighting in Quake 3. Sometimes the fastest way is not always the best way. Or at least the only best way.
Surprisingly, a developer things that the technique he is working on is better than other techniques to address the class of problems to which the technique applies.
In other news, a substantial quantity of water was discovered in the Pacific Ocean.
Because he is more of an engine/renderer designer than game developer.
Its his job, and im pretty sure his passion to think about stuff like this.
You mad
John Carmack is not a game developer, he's an engine programmer.
surely you mean brown...
Having developed octtree voxel methods for astrophysics sims (crashing galaxies into one another), I suggest they are ideal for physics. The idea of a tree is you group things to maintain a certain amount of accuracy. For example, if you have 3 items interacting just with gravity:
.. C
A (longdistancetypedheretoavoidlamenessfilter) B
A non-tree method would just calculate all the interactions: A-B, A-C, B-C. But you can group B+C together when calculating their interaction with A because, at that distance, the result for (B+C)-A is the same as the result for B-A + C-A. Then the interaction between B & C must be calculated separately. So you've (even in this tiny example) reduced your calculation from 3 to 2.
And, of course, all the 'voxels' between A & B/C that are empty need not be considered at all. If you'd set it up as an NxNxN voxel cube, you'd be wasting time on calculating empty voxels between the occupied items.
So if you want realistic interactive environments, sparse voxel octtrees are the way to go-- you pump all the calculation time into the parts where it matters, and let the other stuff be 'smoothed' when such smoothing is indistinguishable from rounding error.
Typically, you can traverse the tree for a given error percentage, e.g. 'walk the tree and do interactions preserving 99% energy conservation' or similar. So your have predictable error, as well, despite being able to use arbitrary geometries and spacing for your elements.
A.
Yet, when I play a game, I'll admit, I'm not playing glaring attention to these faults. The last thing that really bothered me in games was 16-bit color banding and I haven't seen any of that in, oh, like 3 or 4 years.
The gamer side of me agrees with Carmack on things looking cool who cares if it's wrong, the geek side of me is angry and demands it be pixel-accurate.
More Twoson than Cupertino
Yea. Because interactivity trumps photorealism for every single possible type of game. Oh wait, that's false.
You sound like the people who said that StarCraft was crap because sprites were outdated junk and every good game (like Total Annihilation) had already moved to 3D. Different engineers will make different design choices for different applications, and there is no total order of correctness among a single class of design choice.
-- The act of censorship is always worse than whatever is being censored. Always.
Meanwhile the rest of us have been enjoying these articles immensely because we get to obtain some insight about what each of the major players are thinking in regards to Real-Time Raytracing. The great thing about obtaining insight from others is that you can then use your newfound insight to come to your own conclusions.
If you're simply looking for a consensus from the industry, don't expect one for a long while. The concept won't entirely be accepted until someone goes out there and proves it out. Just like high-quality 3D graphics were thought to be too slow on the PC. Until game creators proved out a few different methods to make them usable, that is. (Starting with Wing Commander, moving to Wolf-3D, Doom, Duke 3D, and eventually Quake. After that, the industry said, "Welp, we better make some hardware for this." And thus 3DFX was born.
Javascript + Nintendo DSi = DSiCade
Ray tracing is the most realistic possible method for rendering. You can "trace rays" in different ways though; photon mapping is just one technique involved.
If you neglect the impact of mobile objects on diffuse reflections, you CAN pre-generate an entire radiosity map for a game, which is good because it's slow. However, it's an important addition as the "texture", "warmth" and "naturalness" of an image depend on diffuse reflections, not direct reflections.
Ultimately, you need to consider diffuse reflections for all objects. There are a few ray-tracing techniques which, instead of assuming direct reflection only, define a distribution (usually some variant on Gaussian) over which the light is reflected. This isn't quite the same as cone-tracing - cone-tracing is generally a simplified form of this where the distributions are trivial and uniform. Wave-tracing is another method that can be used.
As for what should be done, I'd rather see hardware engineers focus on providing primitives that can support what is needed both now and in the future, as hardware changes relatively slowly. That frees software engineers to develop the best methods they can, without forcing them to wait when they reach the limits of the method.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
You're right. Playing in a wasteland of scrapped geometry doesn't sound like much fun. OTOH, turning a perfectly good level into a wasteland of scrapped geometry... now we're talkin'.
You can't win, Darth. If you mod me down, I shall become more powerful than you could possibly imagine.
Now if John Carmack is as legendary as /. is making him out to be, why isn't it John Carmack's Quake/Doom?
George Washington is pretty legendary, but we don't have a George Washington's America, do we? The name is irrelevant. How could the guy who basically invented the First Person Shooter not be legendary? When it first came out, the original Wolfenstein was the most highly optimized game I'd ever played. I still remember thinking it wouldn't run on my slow-ass computer, and being blown away when it ran fast as can be.
ZuluPad, the wiki notepad on crack
The 'sparse voxel octree' he talks about is basically a new data structure that simplifies storage of the polygons. This would require support from hardware manufacturers and provide content producers a new format in which to encode complex geometries. Carmack theorizes that having geometry detail to the level that we now have in texture detail is the next gen graphics paradigm. Basically, sparse voxel octrees would be to polygon meshes what polygon meshes were to billboarded sprites.
In all, Carmack hints towards massive detail for graphics and not much else. This is something he's always done in the past and has really seemed to obsess over. It's one of his greatest weaknesses as a trend-setter and industry leader. He did it before with the idtech 4 and it let HL2 steal the show with more thoughtful physics integration and charater AI. Nicer looking soft shadows, it seems, wasn't enough.
Id is great in that they push the industry forward in terms of graphics, but graphics only go so far. When it comes to realism, people want more nature in 3D. This means better physics, and more intuitive content building tools. Screenshots are great, but after you see it moving, that's when you make your final judgement.
---k--
</stupid>
I feel all that dev time is better spent on innovative game play.
Innovation does not require much dev time, it requires one bright mind to come up with a good idea and many managers that won't mind spending money on an unproven concept.
Justice is the sheep getting arrested while an impartial judge declares the vote void.
Honest answer? You're a noob. John Carmack is extremely well-known.
I don't think you're entirely correct - ray tracing, or tracing rays and bouncing them around a scene to see what they hit is used in most rendering algorithms somewhere or other. Hell, even rasterization uses a kind of ray tracing in environment mapping: you cast a ray from the eye to the pixel being rasterized and then reflect that in to look up into a precomputed environment map. And of course, we trace rays all the time for collision detection and various other tasks.
However, straight ray tracing will give you sharp shadows and won't simulate diffuse interactions correctly unless you start casting many bundles of rays around; and that starts to get very slow very quickly. Yes, photon mapping has the use of rays and intersection tests in common with vanilla ray tracing but it goes a lot further in trying to simulate how light works.
Anyway, the results we get now with shadow mapping, per pixel lighting and clever use of environment maps give us results pretty much indistinguishable from raytracing for a fraction of the cost: with cycles left over to have a stab at some sort of ambient occlusion and colour bleeding to simulate radiance transfer and soft shadows. Really, with the techniques we're using in realtime graphics now, the only thing I see traditional ray tracing being any good for is reflections and even then we could just be clever about doing real-time generation of environment maps in the right places and get a result that virtually identical.
and many managers that won't mind spending money on an unproven concept.
as long as it's got a skateboarding turtle it's sure to be a winner.
Oh, maybe I better get cracking on the GUT.
Your ad here. Ask me how!
This article...
...my head
^
^
^
^
The raytracing applications used for optical system design can do wavefront analysis, as well as wavelength-based dispersion measurements. Calculating the phase of a wavefront at a surface is basically just a distance measurement (taking into account refraction).
It's just a bit more work, and would be unnecessary for most "realistic" scenes, which is why raytracers designed to produce pretty pictures usually skip those features.
I see phase-based optical effects fairly rarely out in the real world (as opposed to in a lab), and I suspect most folks would have never even noticed them.
The photon system in POV-Ray would be a backwards raytracing approach, or forward if you prefer to use the lights as the reference point. The rays are cast from the lights outward towards targets to determine what the effects will be. That data gets stored, then normal raytracing proceeds and uses the photon data to affect the texture where the light falls.
Want list for POV-Ray: BRDF and BSDF and brute force raytracing.
Ultimate raytracer: Spectral light instead of single RGB colors mixed with all of the above.