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."
It as if hundreds of ray tracing fanboys cried out at once, and were silenced.
Is validated.
Game developers just focus on making games that don't suck?
"when legendary game programmer John Carmack speaks," Why have I never heard of him?
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Although I like the article also, I enjoyed seeing the progression of games graphics pictures from 1994 to 2007. That final picture from the game "John Carmack" released in 2007 looks so real it's almost like a photograph!
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.
...*MORE SHADES OF BLACK*??!!
OMG Ponies!!
“Common sense is not so common.” — Voltaire
Why not go back sometime and do Quake the way it was meant to be done? I'd love to see those Lovecraftian references fleshed out properly, along with gameplay mechanics that aren't just a "running short on development time, do it like DooM!" type of scenario.
RAGE might very well be great, if it does truly end up being the open-world game version of Mad Max. After what happened with Doom 3 and Quake IV (not quite Id's fault) however, I'm going to have to be won over. No more assuming greatness with Id games!
"He who can destroy a thing, controls a thing." --Paul Atreides, Dune
My biggest concern with where he is going with this is that it does not sound like it will play very nice with physics. In page two he makes some comments on how characters and other animated elements will still likely be done with more traditional methods and then mixed with this for the static objects like the world.
The problem with this is that we are moving more and more towards interactive environments where everything from the ground to the flowerpots are breakable, bendable or movable. It doesn't sound like this new system will play very nice with physics intensive or highly interactive environments. Now, i could be completely wrong. He doesn't address the point directly. But it is still a point for concern.
It is amusing to see there are still enough 'Carmack fanboys' out there to actually get a story on Slashdot.
The guy was considered an relic of the late 90s pc fps era years ago. Now days he just isn't even worth talking about. He really should have moved on to something else years ago as game development has left behind.
Although it is hilarious to watch him still have that Snake Oil Salesmen touch he use to have years ago getting his fanboys all a flutter with his spiel about 'megatextures' LOL.
Carmack moved from relic to joke amongst game engineers when he publicly cried about not being able to handle modern console graphics hardware. There are amazingly smart game and graphics engineers out there. Carmack is not one of them. Time to move on.
He's done some great things over the years, but it really played out in the 1990's. Other game developers have left him in the dust. I wouldn't hold him as much of an authority on current and future gaming technologies.
Seeing that it is impossible to get out of the (Score: -1) bottom of the barrel, I have this to say about ray-tracing: SHIT-COCK(*)!!
(*)shit-cock is cmdrtaco's favorite flavor
So, let me get this straight, intel says their baby is the best. Nvidia says theirs is the best. And Carmack is making his own, and saying his is the best. Wow, these articles have all been so informative. I could not possibly have predicted those outcomes.
then confirmed Carmack's words when he was leaving his appartment after what they both described as a "different kind of LAN party."
Whenever anyone decries a method as "not going that direction", there is always my memory if in the early 1900's, some famous physicist declaring that all of Physics had been invented and there would never be anything new from that point on. There is always the chance that as chips just get faster and more cores, especially with interval raytracing, that at least a few games will go that way. If those games are popular enough, then like wolfenstein 3d and doom did for raycasting with textures, a whole new arena of game graphics will be opened up. For those that don't remember, on the original hardware wolfenstein 3d was a dog! It wasn't until much later that a large percentage of gamers had the hardware to do a decent frame rate at full screen.
stuff |
surely you mean brown...
What do you mean he's not God? Isn't that heresy? (Or was that written by someone else?)
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)
In other news, all games will now consist of reflective spheres moving around on checkerboards...
Worst BBC News Stories
It's like, how much more black could this be? And the answer is none. None more black.
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
Whether CUDA or its ilk have any effect on AAA games remains to be seen, but I will be surprised if some novelty like GPU raytracing won't end up in an IGF winner.
F0 07 C7 C8
i hate the lameness filter also
Interestingly, raycasting is what id used in Wolfenstein 3D, way back in 1992.
http://en.wikipedia.org/wiki/Ray_casting
Hail Eris, full of mischief...
E pluribus sanguinem
Of the points made here. I'll toss in my 2 pence.
One of the things that seems to be missing from ID is the ability to make a truly immersive game. There's little doubt at least in my mind they certainly know how to make awesome environments. "Note that as soon as you shine a light on an item in Doom 3 it does light up nicely and looks good."
What I think is that John is one hell of an engine developer and he's putting in his 2 pence as well. He may not be 100% correct but in the past he's been fairly accurate with some of his predictions "who's perfect?" and he'll likely be validated in some of this. As another user mentioned, When I drop a bomb on a building or blow it up internally that sucker better fall. This is what we've come to expect. Destructible environments, moving objects "I love plinking tin cans in HL2's engine" natural physics and the list goes on. However all of that must give way to the actual gameplay. All that glitters is not gold etc.
Crysis is friggin badass looking but it's limited in depth. Call of duty 4 mixed with crysis engine would have me in fits. "don't get me wrong COD4 is good just not quite as good as others graphically"
Carmack has the ability to do the environment but they seem to be resting on their laurels as far as game making goes. "ooo dark scary environment with random jumping demons/robots/aliens blah.."
I played quake 4 for 2-3 hours.. and haven't went back. It held no surprises or new things to explore.
I really hope to see a mix of the new technologies that make it easier for the storyteller to give us a great game.
Inane Comments are Generously Disregarded
We are too busy making them look pretty. It is the same game as last year the gameplay is the same if not worse and you might if you are lucky have the same number of weapons. The only thing we added were polygons. But who cares? The previews in whatever mag/site you read looked pretty. Sometimes we might blind you with fancy things like branching stories. But, that is usually just black and white decisions like 'Burn Kittens' or save them. If you want a good game go for an indie game once in a while. We don't get to use pretty graphics as a cruch that way and might actually have to keep your attention with a game that is fun.
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)
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>
In 1996, Quake set the fashion for brown shooters. In 2004, for Doom 3, black was the new brown.
Carmack can also be wrong, and I have a long memory.
.plan file in 1998:
I still remember Quake 2 and buying my own first PC and specing it based on his opinion.
He spoke well of the Intel i740. Which turned out to be a dog compared to the Voodoo2.
While, of course, he speaks of the future here, he got this wrong. Very wrong.
From his
Intel i740
----------
Good throughput, good fillrate, good quality, good features. A very competent chip. I wish intel great success with the 740. I think that it firmly establishes the baseline that other companies (especially the ones that didn't even make this list) will be forced to come up to. Voodoo rendering quality, better than voodoo1 performance, good 3D on a desktop integration, and all textures come from AGP memory so there is no texture swapping at all. Lack of 24 bit rendering is the only negative of any kind I can think of. Their current MCD OpenGL on NT runs quake 2 pretty well. I have seen their ICD driver on '95 running quake 2, and it seems to be progressing well. The chip has the potential to outperform voodoo 1 across the board, but 3DFX has more highly tuned drivers right now, giving it a performance edge. I expect intel will get the performance up before releasing the ICD. It is worth mentioning that of all the drivers we have tested, intel's MCD was the only driver that did absolutely everything flawlessly. I hope that their ICD has a similar level of quality (it's a MUCH bigger job). An 8mb i740 will be a very good setup for 3D development work.
In post Patriot Act America, the library books scan you.
Carmack is knowledgeable of 3D rendering in general, but that doesn't mean he's an expert on ray tracing specifically, and I found nothing in the article to indicate that he is. He appears to be unaware of a large body of research into the acceleration structures and optimization techniques commonly employed by modern ray tracers (Kd-trees, Bounding-interval heirarchies, MLRTA, packet tracing). He correctly claims that ray tracing is not used much by movie studios, but fails to identify one of the main reasons why this is so: ray tracing is not a memory parallel algorithm, and therefore does not perform well rendering scenes that can't fit in main memory on any one computer (citation). This isn't an issue at all for games. Carmack doesn't seem to be aware of the real drawbacks of ray-tracing either (other than a vague notion that it's "really slow", probably based on naive implementations of an algorithm that's been around for almost thirty years), such as the cost of re-building the acceleration structure when something in the scene moves. Can his sparse voxel octree data structure be updated or re-sorted quickly?
I think the parent poster was correct to call attention to the emperor's apparent lack of clothes. Just because Carmack has had a huge influence on interactive 3D gaming doesn't mean his statements should be accepted without scrutiny.
How is this "Offtopic" ? He has a point to make about ray-tracing...on an article about the viabilty of ray tracing. Moderators: whether you agree with his point or not is irrelevant.
I'm getting kind of tired of amateur psychologists (if you're a professional psychologist I apologize in advance for inadvertently denigrating your professional status) interpreting someone's brief comment, followed by a clarification, as backpedalling, flanneling, or otherwise trying to rewrite history. It's too easy a shot.
:p
No, I'm not the OP's sock puppet.
I'm mostly reacting to some random mod's idea that that was a "+1 Interesting" post.
More like legendary ego-stroking, asshole tech-demo programmer, which is all iD's games ever have been since Q3.
Go ahead and mod me down because I just insulted your nerd god, I don't give a shit.
That's a bit of a catch-22. I wonder what it will take to get nVidia interested in serious raytracing hardware, when it'll take serious raytracing hardware (I'm talking about something like SaarCOR fabbed in silicon in 2008, instead of an FPGA in 2005) to get game developers interested in it?
Mod me down if you care, bit I really wish that PC Perspective had edited the transcript just a little (or more). This is just unacceptable. Carmack is speaking with half sentences, etc, which is OK if you are listening to him, but is really absurdly stupid if you have to read it in print.
Standards of written text have really gone down on the web.
Didn't some company, years ago, develop a card specifically to handle voxels and texels? It was a 512MB card, I think it was made by 3DLabs, or Mitsubishi Electronics for medical imaging, I can't remember for the life of me.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
This is the exact opposite of reality, and results in missing information in the scene.
A radiosity algorithm is much closer to reality, shooting rays from each light source out into the environment. But simple radiosity algorithms don't handle mirror surfaces or refraction. So the combination of radiosity solution first, then raytrace the scene from the camera's viewpoint gives and much more realistic result than either by themselves.
No single rendering method handles all the possible interactions of light and matter in producing an image...yet.
So the thing that isn't memory parallel is the scene itself; you can't stick half the scene on one computer, half the scene on another computer, and then merge the results and expect a 2x speedup (but you can do that with scanline algorithms, which is one reason why they're so popular). A ray tracer would have to have a separate copy of the scene on every machine.
But, you can have 2 or 4 or 8 CPU cores all reading from the same scene data sitting in shared memory; these are all reads, not writes, so there aren't big coordination issues like cache invalidations and the like. As far as I know, scaling on a single machine is pretty linear as long as the threading implementation is sane. I don't know much about GPUs, they might not be set to efficiently run tasks in parallel that do unpredictable memory reads.
This article...
...my head
^
^
^
^
I was just wondering if your approach has any impact of physics at all or if we're talking about 2 independant layers of abstraction.
:)
Pleasant surprise to see you comment on slashdot. Now go and make the Unreal 3 engine look bad
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.
You're not supposed to respond to incredibly obtuse and ignorant comments with anything other than...(please mods, let us all know?)
What Carmack is advocating actually sounds great for dynamic environments. In fact, one of the reasons octrees became popular was that they made it easier to deal with dynamic objects (as compared with the way BSP trees were being used at the time). It wasn't the tree-ness of BSP trees that was the problem; it was their strict dependence on world geometry. The best evidence I can give for this is the fact that BSP trees that don't depend on the details of the world geometry -- which we call KD trees -- are very popular; they fill roughly the same niche as octrees but are slightly more flexible. I'd be truly surprised if Katamari didn't use some sort of heirarchical data structure, in fact, precisely so it can do all its dynamic physics at a reasonable speed.
Anyway... what are the physics benefits of a voxel approach? For starters, deformable geometry gets very, very easy. You don't need to screw around doing a bunch of CSG on convex polyhedra; you just set a bunch of voxels to zero and that's it. I might add that your "just have a bunch of models" approach is very poorly suited for dynamic geometry, because they only define surfaces not solids, whereas voxels provide a very natural way to do that.
Want clouds? Steam? Realistic water that splashes about? Also, best done with voxels.
With a voxel-based approach, you can conceivably integrate with the graphics some finite-element-model simulation, even. This is easily parallelizable and fits naturally with the voxel world representation. That is, you could conceivably have physically-accurate elastic deformation of environments, for instance -- or run the Navier-Stokes equations to see real turbulent flow around naval units in a strategy game.
Collision detection, as other posters have noted, also gets very easy. Forget nasty intersection code; just have the hardware do a bitwise AND between two voxel objects and OR all those bits together! And so on.
Basically, voxels are ideal for physics, and the structure Carmack is proposing to store the voxels in doesn't sound very static at all.
(I'll also note that what Carmack is advancing is an old fantasy of many graphics programmers. What's notable isn't the idea itself -- it's old -- but that Carmack thinks it might soon be feasible. And that is exciting.)
I'd like to know 1 thing from you: What body of work have you done such as Mr. Carmack's engines in games (which get licensed out the wazoo no less because they're great) that compares to his?
Otherwise, if you cannot show even a FRACTION of that? Well... I don't think I have to finish my statement now!
HOWEVER - IF You have that, you might get more listeners... including myself! BUT, you came out like "Big Deal - John Carmack" well, given his accomplishments?
Absolutely! I'll listen with GREAT intent, when he talks! I can learn & grow by it, + broaden my horizons, from a master of his field (which is related to mine).
Now, another thing for your reprehensible behaviour here (& I am not going to play it "political & nice" here, because that is the crap our society is full of, ala N.Y. State Gov. Elliot Spitzer, the fake/scum being caught for soliciting a prostitute recently but made his fame busting prostitution rings now less (the Lone Ranger is robbing stage coarhes now, same principal)):
When you have done something along the lines of "Carmack's Reverse", which is to me @ least (also coder here for 15 yrs now & featured in publication more than just a few times myself, but not anywhere NEAR the level of fame OR accomplishment that Mr. C enjoys & rightfully so) IS, impressive!
(In that it shows the guy CAN TRULY THINK (&, works hard @ it)).
Sure, others may have come up with similar ideas, but, afaik? He came up with that algorithm, independently & uniquely too!
So, as the episode of "THE OUTER LIMITS" in "The Final Exam" noted:
"When a science is ready, it can't HELP but have many others see that next step!"
(OR, something VERY ALONG THOSE LINES/train-of-thought)
APK
P.S.=> Sure, J.C. can be wrong, so can anybody, but he brings up a very interesting point - nobody REALLY knows what the future holds, & yes, the "big hardware makers" always want us to have to buy more!
Thus, why programming OVERLY MUCH in "objects" makes no damn sense to me! I don't need to build a class (or object even) for putting out "HELLO WORLD" type stuff! It's bloating overkill...
E.G.-> @ nearly 600k a pop, per object, on a large multiuser system?
Those "puny" 1/2 of 1k objects start to add up & bloat out memory usage & lord knows, the memory oem's love that... INTEL/AMD-ATI/NVIDIA LOVE when we need stronger CPU's/GPU's which means buying on our parts as consumers, etc. et al.
Or, does how NORTON & McAfee AntiVirus (prime examples) not exemplify this for me? They were the "Kings of the Heap" & fast/efficient (especially in the DOS days) imo, up until a couple years ago!
NOW?
Well, imo, they are into the MONEY only now... trying to sell you a SLOW & OBJECT BLOATED/MEMORY HOGGING suite of apps, that don't HAVE to be that way (see NAV corporate vs. what they sell std. consumers, get my point).
J.C.'s proposing (based on his experiences) a more EFFICIENT model, & that to me? Makes TONS of sense - he's into it!
AND, not for the monies only & he DOES understand the hardware OEM's true motives (stockholders & board members wanting "Mo Money" & it's "All about the Benjamins" mostly, only)... he wants to build BETTER more efficient stuff!
The world needs MORE PEOPLE LIKE THAT, not just money-grubbing swine... apk
People have been using octrees for ray tracing for decades. Sparse ones. For voxel geometry as well as other primitives. They compare poorly to more recent methods. Structures like this have already been implemented on GPU, with some success, but GPUs are going to need some more changes before it gets really good. Carmack is going to have to be more specific in order to not be on crack.
Music speeds up when you yawn, but does not change pitch.
"sea of processors," I thought of Intellasys.
"E.G.-> @ nearly 600k a pop, per object, on a large multiuser system?" - quoting myself
/. here, you get torn up for it, lol!
Edit/correction:
@ nearly 600 bytes per object...
Iirc, 572 bytes per object to be more "precise" - lord knows, you make one tiney spelling or other type of err on
(Self-correcting now, to NOT give you that chance!)
APK
P.S.=> & I didn't mean to come off like a TOTAL prick earlier man... you do sound fairly knowledgeable about this stuff @ times in your replies, but some of the others are just WAY too much, like this one:
http://games.slashdot.org/comments.pl?sid=485272&cid=22732316
That dude is a PRICK, to-the-max, and sounds jealous as hell, imo!
See - Initially, you came off like "big deal, who the hell is John Carmack" etc. et al, which is "off/wrong" in & of itself - the guy's done well for himself & yes, others (I really DIG IDSoftware games, they tend to shine above others usually & get licensed like crazy, which speaks worlds alone for his work quality & skill)... so, I guess, my point is - he MAY be right! Time will tell, which is REALLY HIS POINT in his replies here! apk
So, it's like a variable-resolution three-dimensional bitmap? I can see how you might reduce memory consumption that way, but it would also reduce the fidelity of the rendered image. I'd be curious to know if the memory-quality tradeoff is better than if you were to just (intelligently) simplify the triangle mesh. It's an interesting idea at least.
Perhaps part of the misunderstanding of the article can be attributed to this quote:
Which would seem to imply that your approach is not really, really expensive, which would make sense if you were comparing with a ray tracer with no acceleration structure at all, and if by "expensive" we assume that you mean "processor intensive" rather than "memory intensive". Your sparse voxel octree approach, if I am understanding correctly, gets rid of a lot of ray-primitive intersections. However, those tend not to be the most CPU-expensive part of ray tracing; rather, it's the acceleration structure lookups where most of the time is spent, so I wouldn't expect your approach to be vastly superior to any other real-time ray tracer.
(Perhaps my criticism in another branch of this thread comes across a little too harsh; if so, I apologize. I thought that DragonWriter was being unfairly criticized for treating the article with the same degree of skepticism as if it had been written by someone other than John Carmack, and was perhaps a little over-enthusiastic in backing up his assessment of the article.)
Interesting he can still spit out some modern sounding 3D jargon despite focusing on Armadillo Aerospace.
Years ago, it definitely looked like everything was moving towards a raytraced particle system. When particle systems got big, suddenly every movie had snowflakes, flower pedals, & shattering glass climaxes. Naturally the particle system effects should merge with the polygon rendering & everything should be based on particles.
He can say voxel octrees are the way to store the data, but he can't seem to explain why octrees are faster to raytrace than triangles.
Seems to me the biggest problem with the sparse voxel octree idea is moving objects and characters. Your mention of "refraction skeletons" interested me; it sounds like an idea I was thinking about but haven't seen implemented anywhere else (and you seem to have just coined the term "refraction skeletons" in this article; there are zero other results on Google). Could you elaborate on how refraction skeletons might work and why you think a doing hybrid renderer just for characters would be preferable despite the drawbacks?
main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
No, that would cause a tear in the space-time continuum, unless the speed of the flashlight's beam is less than C. One popular hypothesis is that installing Vista on the flashlight could slow the beam considerably, but the research involved would be costly.
"When information is power, privacy is freedom" - Jah-Wren Ryel
I do not know if it's a new data structure or not, but while I was searching the definition of "sparse voxel octrees" in order to understand what is the article about, I hit this article from 1993 that speaks about how octrees are one of the best ways to represent spatial data for 3d rendering applications:
Volume Graphics
I have the impression that sparse voxel octrees is not a new data structure at all, but it has been neglected by the industry because of technological limitations. Now that these issues are resolved, perhaps the next step in 3d graphics are sparse voxel octrees.
From the article: John does see ray tracing useful for is a very specific data model he has created called "sparse voxel octrees" that allow him to store immense amounts of data in a fashion that is easily accessed using ray tracing methods.
Using voxel octrees for ray tracing was talked about quite a bit at SIGGRAPH '88 (http://tog.acm.org/resources/RTNews/html/rtnews9a.html) which makes that specific application octrees at least twenty years old. This kind of voxel modeling is older even than that. Being a fanboy isn't necessarily a bad thing, but the credit for such useful inventions should go where it is due.
In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide