A Little Bit Of History

Previous Next
2:00 AM - 10/21/2009 by Fedy Abi-Chahla

Carmack’s experiments with voxels go back further than last year. In fact, his interest goes back some 10 years. Between the Quake/Quake II engines and Quake III, Carmack conducted several experiments with new rendering techniques. He gave all of this research the code name Trinity, which a lot of gamers understood to be a future product and the new generation of 3D engines from id Software. But, in fact, the Quake III engine remained fairly conventional, as Carmack himself revealed in a .plan file dating from 1998:

“Here are some notes on a few of the technologies that I researched in preparing for the Quake3/Trinity engine. I got a couple months of pretty much wide open research done at the start, but it turned out that none of the early research actually had any bearing on the directions I finally decided on. Ah well, I learned a lot, and it will probably pay off at some later time.”

Some of his experiments involved displaying voxel octrees. Here’s what he had to say just after the release of Quake III:

"I did these two voxel engines at the beginning of Quake III and it got to the point where I thought that I could almost make them run in software, but it would be at a fairly low resolution, and compared to what you could do at that speed with hardware polygons, it doesn't pay off in that case," Carmack said. "I did do an analysis of what the memory-access patterns would be and everything; you could do a voxel ray-tracer in hardware with drastically less hardware than what we're actually using right now for all the triangle rasterizers and I think it could be a much more compelling visual representation in a lot of cases.”

That quote is taken from an interview on FiringSquad that dates from early 2000, almost 10 years ago. So, it’s clear that the idea has been turning over in John Carmack’s head for quite some time.

You can’t talk about voxels without mentioning Outcast. The game, which first appeared over 10 years ago in July 1999, impacted an entire generation of gamers thanks to its many qualities, but also because of its highly unusual 3D engine at a time when 3D graphics cards had started to become the rule in gamers’ PCs.

Outcast was based on an all-software rendering engine, which made it especially power-hungry. To play the game at its maximum resolution (an impressive 512x384), you needed a leading-edge processor, but not a 3D graphics card. Its resource-intensiveness wasn't the only reason why this engine made its mark. Its use of voxels also made the game’s rendering truly unique.

But you have to put that into perspective–even if the title has remained (along with the games from Novalogic) a standard bearer of voxel-based rendering, it actually only used a fairly simplified form that was also reserved for the landscape. All the objects and characters were very standard polygonal models. The landscape was based on a height map, which meant that there was only one possible height for each point in the environment, ruling out complex structures like arches.

That limitation wasn’t a deal breaker, since such a structure is fairly rare in nature due to the constraints of physics. Nevertheless, the display of the landscape was fairly simple and was achieved column by column. For each column, a maximum Y value was stored (in a Y-Buffer). The pixels of the column in question were filled in starting at the bottom of the screen, only if their Y value was greater than the one stored in the Y-Buffer. This rendering method made the process of removing non-visible parts of the scene very efficient and very easy.

After that little trip to the past, it’s time to take a look at what voxels might mean to us in the future.

Talkback
DjEaZy 10/21/2009 8:17 AM
Hide
-4+

... the 'matrix' is near... by this rate of progress...

doomtomb 10/21/2009 8:23 AM
Hide
-3+

This stuff is pretty interesting but a little over my head. The only thing I really care about is when we will start seeing this in our games.

Curnel_D 10/21/2009 8:53 AM
Hide
-2+

This technology sounds a TON more promising than Ray tracing.

zingam 10/21/2009 8:53 AM
Hide
--2+

Damn! That's what I just wanted to start investigating. They'll beat me up even before I start again! I guess I'll never be a pioneer! :D

the_krasno 10/21/2009 9:09 AM
Hide
-2+

This is awesome, the people that can really gain something here are amateur filmmakers that can't afford the giant rendering farms big studios have! :)

the_krasno 10/21/2009 9:09 AM
Hide
-0+

the_krasno :
This is awesome, the people that can really gain something here are amateur filmmakers that can't afford the giant rendering farms big studios have!


I meant independent, not amateur. Sorry.

Anonymous 10/21/2009 9:10 AM
Hide
-1+

personally i like raytracing, except for the performance issues. if you've ever tried doing a little 3d rendering, ray tracing is very good, makes things look very real if done properly. again i know it is slow

liquidsnake718 10/21/2009 9:41 AM
Hide
--1+

Very interesting stuff, I do understand how limiting cubes or voxels can be limited in terms of depth and height(same height per distance) as polygons have that advantage where the triangle gives us just that, an angle that can be measured in terms of height and distanve. We have a vanishing point with a triangle as well.....

Iwonder if they can impliment both polygons and advanced cubes with different sizes for the initial layers creating a more fluid and complexed scenario or landscape........

JonathanDeane 10/21/2009 9:59 AM
Hide
-0+

Interesting but voxels will have some extreme performance and space constraint hurdles to overcome before they become the main rendering of any game. I just downloaded a small demo http://www.advsys.net/ken/voxlap/voxlap03.htm its a little over 500K for the whole works but after you hit the genall batch file (it speeds up loading) the thing occupies about 120MB's of space for this simple game. Something like Quake 3 would have been a multi DVD file...

mlopinto2k1 10/21/2009 12:40 PM
Hide
--2+

Pretty cool stuff.

amdfangirl 10/21/2009 1:08 PM
Hide
--2+

Better put off upgrading my computer... again :P

Anonymous 10/21/2009 1:33 PM
Hide
--1+

In the regular resolution 12x12 you get 144 cells instead of 122 as stated in the text

fatedtodie 10/21/2009 1:59 PM
Show
bin1127 10/21/2009 2:43 PM
Hide
--2+

“pixel” is a fusion of the terms “picture” and “element,”, learned something new.

But i wouldn't want destructible walls. How am i going to camp when all the walls are gone?

manwell999 10/21/2009 3:11 PM
Show
zak_mckraken 10/21/2009 3:43 PM
Show
JimmiG 10/21/2009 5:37 PM
Hide
-1+

fatedtodie :
anyone with a memory will recall the time he said multi-core was a waste of time and we should continue the Ghz race



Well, back in the day, everyone was talking about higher GHz as the solution to everything. Even Intel did:
http://www.theinquirer.net/inquire [...] 15ghz-2010
"LUCKY PUNTERS WILL BE ABLE TO BUY 15GHZ INTEL CHIPS, containing a billion transistors, by the end of the decade, said Pat Gelsinger, Intel veep and CTO in his keynote at the Intel Developer Forum in Tokyo today. Gelsinger also predicted that PDAs will hit 5GHz in the same timeframe. It's unlikely the chips will use the existing Pentium 4 architecture which is reckoned to only be good up to around 10GHz. "

Then Intel hit the thermal/power wall some time in 2004-2005, before even making it to 4 GHz. This of course signaled the end of such optimism. If that hadn't happened, higher clock speeds would still have been the best way to make faster CPUs. That makes all code run faster, not just code that is carefully optimized to extract parallelism. Multi-core CPUs for desktops and laptops initially came around not because it was the best choice for improving performance, but because it was not possible to further increase clock speed.

precariousgray 10/21/2009 5:41 PM
Hide
--1+

Here's what I saw.

That example should give you an intuitive idea of one of the advantages of using trees.

kikireeki 10/21/2009 7:28 PM
Hide
--1+

What happened to Normal Mapping?

JonathanDeane 10/21/2009 7:54 PM
Hide
--1+

kikireeki :
What happened to Normal Mapping?



Hmmm maybe using a skin of voxels on top of a polygon mesh would be good for facial animation stuff, that sounds interesting to me or a mesh of polygons on top of the voxels for deformation purposes. Ok my mind is officially fried you may all proceed to LOL at me :)


Sponsored links

Related articles

  • The major new feature of Direct3D 10 was the appearance of Geometry Shaders, which finally made it possible to create or destroy vertices on the GPU. But the role of this unit has been somewhat misinterpreted. Rather than being used for massive...

  • Ray tracing is not the ultimate solution though, and it's time to tear down the myths that surround it. First of all, many gamers think that ray tracing is intrinsically a better algorithm than rasterization because "it's what the movies use." That's...

  • The basic idea of ray tracing is extremely simple: for each pixel of the display, the rendering engine casts a ray that propagates in a straight line until it intersects an element of the scene being rendered. This initial intersection is used to...

All about Graphics Cards
 Latest Graphics Cards articles
All Graphics Cards articles

Newsletters


  • Ask your question about IT issues
  • Post

Partners

The Games selection

violent : More Mindless Violence Basic shooting game, but still so powerful! Use the mouse to take aim and shoot at the little beasties before they get to you. Use Space to reload....
action : Yoyo the Star Yoyo is a young girl who recently graduated and dreams to become a movie star (don't we all). You'll have to guide her on the path to stardom,...
Ads

Sponsored links