Jump to content

Carmack On Id Tech6, Ray Tracing, Voxels And More


Recommended Posts

PC Perspective posted an interesting and extensive interview with John Carmack detailing his opinions on what will matter for future 3d engines, as well as a bit of information on what he hopes to achieve in the future.

We're working on our RAGE project and the id Tech 5 code base but I've been talking to all the relevant people about what we think might be going on and what our goals are for an id Tech 6 generation. Which may very well involve, I’m certainly hoping it involves, ray tracing in the "sparse voxel octree" because at least I think I can show a real win.

There's even a screenshot of Doom in there to boot.

Share this post


Link to post

Octree like what Sauerbraten uses?

Sounds very interesting. Ray tracting tech for games is still in its infancy, so I'm wondering where Carmack is planning to take it.

Share this post


Link to post

I think by "voxel" Carmack is actually implying that the data structure itself can be used to subdivide space into cubic volumes, like an Octree. Which in a lot of ways is just a 3D version of DOOM's blockmap ;)

EDIT: With the "sparse" bit suggesting that not all octants need to be present.

Share this post


Link to post

Carmack generally makes a pretty fine use of language, actually.

I guess that if Quake's engine is id tech 1, Doom is then id Tech 0.

Share this post


Link to post

The Wikipedia links to an article that apparently got that from Todd Hollenshead. And yeah, it should be proper if Quake 2 is a mod engine of Quake, while Quake 3 has more definite core engine changes.

If so, then Wolf3d is the "id Tech 0", heh.

Share this post


Link to post
DaniJ said:

I think by "voxel" Carmack is actually implying that the data structure itself can be used to subdivide space into cubic volumes, like an Octree. Which in a lot of ways is just a 3D version of DOOM's blockmap ;)

I think it's more than that, instead of having polygons separate from textures, they are combined in this new structure.

Imagine a normal quake level. Each textured pixel on a wall would need one or two voxels, and the rest of the space is going to be a constant "content" value (EMPTY or SOLID or a liquid).

But I can't see how his concept is any different from the standard octree voxel system, it's all so vague at this stage.

Share this post


Link to post

Yes. This would make sense when you consider the information we've had in the past about the megatexture stuff. Given that you do all your texturing within a fragment shader; and that now it is possible to build new vertices from within a shader on the GPU; he very well could be storing the map in a parametric form and thus is able to resolve infinite detail. The problem is how to get the data visible within the shader(s) so they can cast the ray. Is it too much to pack into a 3dtexture?

It is not inconceivable that it could not be combined with a method of texture paging similar to that seen in terrain engines. However rather than paging textures it is instead paging a block of encoded, parametric map.

Share this post


Link to post
DaniJ said:

he very well could be storing the map in a parametric form and thus is able to resolve infinite detail. The problem is how to get the data visible within the shader(s) so they can cast the ray.

That's an interesting idea. Somehow I got the impression he was talking about quite a simple structure, simple enough to perform ray casting tests very very fast in hardware.

An idea I had today (perhaps utterly bogus) was that each voxel, traditionally considered a cube shape, would have a normal vector associated with it which defines the plane it is on. So the world might be represented as a "blocky" voxelscape, but the renderer could use the normal to create smooth planes and curves out of that (so you'd never see the blockiness, even way up close).

Perhaps Carmack is being deliberately vague, as he want to build id tech 6 out of his idea and doesn't want the competition to beat him to it. At any rate, my interest is piqued and that doesn't happen very often.

Share this post


Link to post

More like: a voxel renderer that, at close range, created small polygons by analysing how each voxel connected with its neighbours. [At far range, each voxel is less than a pixel in size, hence nothing special is needed]. Hmmm I might play around with this idea tomorrow and see if it can actually work. It doesn't seem very compatible with existing 3D acceleration though.

Share this post


Link to post

Oh I see. What you are describing to me sounds a lot like the way elevation meshes are built from landscape imaging data.

Share this post


Link to post

Grimm said:
. . . where the hell's that Doom 1 screenshot from?

That has to be E2M2.

Share this post


Link to post

The way I got it was that the SVO was some sort of occlusion system. I didn't have time to study it yet, though.

Share this post


Link to post
kristus said:

According to Wikipedia, Id tech 1 is Doom.
http://en.wikipedia.org/wiki/Id_Tech_1


That is totally a retcon, though.

I've never peeked under the bonnet of quake or quake2, but I remember during the development of Q2 reading that they started off intending to work from the quake source base and more or less totally rewrote the code.

Share this post


Link to post

but I remember during the development of Q2 reading that they started off intending to work from the quake source base and more or less totally rewrote the code.


Didnt they do the same to the Q3 engine to make Doom 3?

Share this post


Link to post
  • 2 weeks later...

Based on what Carmack thinks of Intel's position, I wonder how he reacted to this.

Share this post


Link to post

This proves once and for all that Microsoft is the ultimate innovator for all things computer related, completely pwning Carmack and other so-called "Geniuses" doing research into 3D rendering concepts with their stunningly advanced, fast and robust ray tracing technology that will surely take the world by storm. It's no wonder everybody loves Microsoft.

Share this post


Link to post
  • 1 month later...
×
×
  • Create New...