 | |  |
 |  |
View Article | | |  |
|  |
|
|
|
| | | Wednesday, March 19, 2008 |  | Death of the GPU as we Know It?
By John @ 3:12 AM :: 9058 Views :: 27 Comments :: :: Tech Knowledge | | Unlimited Polygons A Reality? Well actually that sub-title is a white lie to get your attention. But don’t be too angry. What this article is about is something even better than unlimited polygons, it’s about unlimited voxels. The legendary games programmer John Carmack, in an interview on PC Perspective in mid-March 2008 , spoke of a new technology he is working on: “It involves ray tracing into a sparse voxel octree which is essentially a geometric evolution of the mega-texture technologies that we’re doing today for uniquely texturing entire worlds. It’s clear that what we want to do in the following generation is have unique geometry down to the equivalent of the texel across everything.”
Much of the rest of the interview talks about the future of gaming hardware. Amazingly, a little-known Australian company, Unlimited Detail, claim to have found a way to render voxels in software, without the need to use a hardware graphics accelerator. Bruce Dell, the inventor and lead developer of Unlimited Detail, has demonstrated the technology to me and explained it to me as best as he can. Before I go on, I would like to make it clear that I have played PC games since the original Doom and I keep up to date with GPU technology. But I'm not a programmer or a games developer. I want to present this information to you for discussion. Whether or not it's even possible for the games industry to implement this technology in their game development is probably up for debate. This is something I'm not an expert on. Bruce Dell fully believes it's possible and I am looking forward to the response to this article. What I do know is that although this technology is able to produce massive amounts of voxels for developers to play with, it doesn't yet provide the full gamut of texture and lighting, physics, shadows, anti-aliasing, motion blur, etc. There is a lot more work that a GPU does than just render polygons. But, if it is possible to use Bruce's mathematical equation and incorporate all of the lovely technology we have grown to expect and admire in our games, then game world developers could be in for a treat. First, let’s back-track a little to briefly explain polygons, voxels and point cloud data. Polygons are what is used in the games industry (both PC and console) today. Polygons are two dimensional plane figures composed of straight lines. A pixel, as you know, is a dot on the screen; a voxel can be thought of like a dot on the screen that moves like it is in 3D space. A voxel is a value on a 3D grid. Point cloud data is when you make whole objects out of voxels. Voxels provide more detail than polygons because you get true rounded edges and real geometry instead of flat texture maps. Have you ever noticed the bases of trees in games today are all hexagons? The number of sides varies depending on the size of the tree, but could involve anywhere from 4-10 sides, then a texture map of bark is stuck on the polygons. If the tree was made out of voxels it could have been imported from the real world using a laser scanner. The base would be true geometry and every little flake of bark would be real geometry. In a voxel game, each hair of the carpet would be real geometry. The problem is that computers take time to process each little voxel and so if you make all your characters and your level and every blade of grass and every grain of sand out of voxels, then the computer will take the same amount of time to move a frame as it took the Egyptians to build the pyramids! So at present, the only place voxels are used is in medicine, mining and the sciences. |
|
|
|
|
|
| Comments | By
mcluvin @
Wednesday, March 26, 2008 3:44 PM |
We've heard this promise before. Until it runs at 1280x1024 (current average gamer resolution) and 30fps (with motion blur) OR 70+fps (without motion blur) with full lighting, shading, deformation, and transform effects, it falls in the category of ray tracing.
Sure, in theory all of this works, but even if the algorithm is sound, the code model is stable, AND the hardware support is good, they still would need the tools to make it a viable transition.
And lets not forget the market entrenchment. Anyone remember the physics add-in card fiasco? New rendering technologies outside the box need to be fully functional, fully scalable, fully stable, and have incredible tools and support out of the box or they never see the light of day, no matter how revolutionary the "theory".
mcluvin |
|
|
By
cybereality @
Wednesday, March 26, 2008 4:18 PM |
This sounds awesome, but I highly doubt you can right an algorithm that has "unlimited" of anything. Computers have hardware limitations and thus the algorithm must have some finite amount of time to render.
I do agree the voxel technology is a possible future for 3d graphics, but it doesn't help the cause making claims that cannot be backed up. Even "mega-texturing", while unlimited in theory, is still limited by storage space, and other technical issues that must be considered.
However, this engine might be the real deal. We will see. |
|
|
BySome Guy @
Wednesday, March 26, 2008 6:56 PM |
This is nonsense. Laser scanning isn't practical for anything bigger than a car. Are they going to carry several hundred thousand dollars worth of equipment to a forest and scan every single tree there so they can get trees that look both detailed AND unique? They'll likely make models so it will still take artists to create them and enough variety to make it look interesting.
"Cloud data" representing infinite detail is also nonsense: there are resolution details on scanning equipment and those are jittered out just like jaggies are jittered out with FSAA. Transistor for transistor, polygon data is always going to be more efficient than a set of random points in space.
Sounds more like a company fishing for venture capital to steal. |
|
|
By
Another Guy @
Wednesday, March 26, 2008 7:11 PM | |
First off what you all need to understand is they stated this was on a single core CPU. It's probably using the match co processor to do most of this. If they used a GPU to do the same thing I would imagine it would be much much faster and at higher resolutions. Just like the physics chip is only good at calculating physics, it's not a far stretch to think that a processor could be made that would be better at rendering voxel data. Unlimited may not be a fair statement but figure everything in front of anything else won't be shown, there are 2,304,000 pixels on a 1920X1200 display and there will always be that many. If it's calculating only what is seen then it would be fair to assume if they can get it to render that many pixels at 30FPS then it would not matter how complex the data is because the number of pixels will not change for each frame, only their location. I think this is a great idea and it seems like a short stretch to think that they could easily lay on top of the voxel data things like motion blur and shadows. Maybe use raytracing to calculate shadow data from a smaller data set of the complex voxel cloud data to generate decent looking soft shadows. I'm assuming with textures that would all just be colored dots leaving an unlimited number of textures in any scene since it's just all colors anyway. No mipmaps to load or other texture data, just simple numbers for colors. OK I'm done, good stuff! |
|
|
By
Solar @
Wednesday, March 26, 2008 8:23 PM |
Voxels in gaming, eh... Welcome back to 1995.
Besides, the "unlimited detail" thing is nonsense. A voxel is just like a picture, only in three dimensions. The closer you get to it, the more evident the "pixels" will get. And if you try to make the resolution high enough that you can't notice the pixels, it would take up a HUGE amount of disk space to store even a single voxel "model". The only way out would be to interpolate the voxels in lower-res models as the viewer approached, thus losing fine detail... at that point it's better to just use the polygons :P
So, voxels... try again in 30 years or so. |
|
|
By
simply a mortal @
Wednesday, March 26, 2008 9:38 PM | |
You don’t need to scan a real car to get a realistic voxel modeled car, it would be enough if you scan a really detailed car model, the same can be done whit almost any objet so the size of the laser scan doesn’t need to be huge, besides that, create a resin model is quite easier and faster than creating a mesh (if you have the artistic skills)
|
|
|
By
strange brew @
Wednesday, March 26, 2008 9:39 PM |
I remember back in 1999, playing a game on the pc called Outcast. It was software rendered using voxels and you needed a beefy cpu to play it.
http://www.gamespot.com/pc/adventure/outcast/index.html?tag=tabs;summary |
|
|
By
Sebastian @
Wednesday, March 26, 2008 10:19 PM |
Storing data in an octtree is far more efficient than storing it using textures and polygons (it's basically free compression for both geometry and texture data). So the storage argument is out.
It's primarily cool because you stop traversing when the size of the pixel is larger than the projected cell, so you don't even need to have all your data in memory, but can stream it in on demand. This means that the amount of data truly is unlimited, or at least the limits are with the artists producing it. You only need a fixed amount of voxels loaded to view a scene, and that doesn't change regardless of how big the scene is. The number of voxels required is proportional to the number of pixels on the screen. If you want to model micrometer detail, go ahead, it won't be loaded into memory until someone zooms in close enough to see it. |
|
|
By
Bruce Dell @
Thursday, March 27, 2008 1:47 AM |
To : Cyber reality
Yes you are quite right unlimited of anything is impossible, but “another guy” seems to have grasped what we are really doing here. We aren’t processing unlimited of anything we are only processing 1024*768 voxels which is really quite limited, the tricky part is grabbing exactly the right ones.
To: Some guy
I to also had my doubts about laser scanning, especially outdoor laser scanning, I mean If you scan a tree you will always miss bits. But some laser scanning people flew us out to see them and I realised that laser scanning produces some very detailed very smooth models, and so I have become a believer. Trees are still tricky but its not our department to fix that problem, its just our department to run the data.
To: Sebastian You’re a clever guy! What do you do ?
|
|
|
ByMchart @
Thursday, March 27, 2008 2:25 AM | |
Good article, but this isn't 'news'. Such technology has been around for quite a while. Unfortunatly, Carmack chose polygons over voxels in making the Quake engine. I can't see developers using Voxel's just because they don't know how to use them very good. A decision was made by the industry to take the path of the Polygon. Thats what we are going to have to live with. |
|
|
By
Conor Stokes @
Thursday, March 27, 2008 2:49 AM |
Point clouds and voxels are two different (although related) things. Point clouds are like polygon soups; just a collection of unorganized point samples, where as voxels are "volume elements" in the same way pixels are "pictures elements" (regularly sampled).
We've seen things similar to this before, the QSplat system http://graphics.stanford.edu/software/qsplat/ has been around a while. Mitsubishi Electric Research Labs was making voxel rendering hardware in the late 90s and also offered surfel based rendering (similar to QSplat style rendering).
Pure voxel and splat methods both have huge problems with things like animation, surface orientation (you usually have to use a sampled normal) and representing "soft" surfaces. This isn't a problem for high resolution medical imaging or representing machine parts for 3D printing, but it is a huge problem for games and physics interaction.
Mitsubishi Electric also worked on ADFs (Adaptive Distance Fields) which were a superior volume representation that fixed most of these problems and added some "neat" features. Distance fields have been known about for a while and used widely in physics simulation research, but the adaptive sampling means they're practical for computation and storage. They also offer great benefits for destructive geometry and artistic manipulation. Voxels are a dead end, distance fields are where it's at. |
|
|
By
Er0ck @
Thursday, March 27, 2008 6:00 AM |
Many people have already commented on most of the these I was going to tuch on, but let me point out that in the pictures shown on here, all you have is lots of instances of the same model dupelcated accross the scene.
While there might be alot of rendering going on here, it's far from impressive because its all using the same textures. So basicly while there is alot of things on the screen, it's not using much memory or disc space to pull off.
What would be impressive if they showed 1000s of totally unique models rendering in the same scene in real-time.
Voxels are dead and have been for years now. As others have said there are far more impressive technologies out there that are simply better for real-time gaming. |
|
|
By
Er0ck @
Thursday, March 27, 2008 6:12 AM |
"The legendary games programmer John Carmack, in an interview on PC Perspective in mid-March 2008 , spoke of a new technology he is working on"
Also, what Carmack is talking about here is using a voxel octree as a different way to handle real-time ray tracting in next-gen games.
He's not talking about using voxel based rendering, hes talking about using raycasting methods to do the rendering, but using a voxel system to store the data in a more efficient manner where you could actually run a partical based ray emission into it and render it much more quickly than your standard triangle/polyogon. |
|
|
By
VicTor @
Thursday, March 27, 2008 8:44 AM | |
remember the game "Delta Force"? it uses the same voxel rendering method, and it was released in 1998! |
|
|
By
Bruce Dell @
Thursday, March 27, 2008 9:54 AM |
To Er0ck
I expected some one to point out that all the animals on our pyramid are the same, and whilst hand making 100,000 different animals sounds like fun I’m busy this week. So let me try and convince you that the system is not smoke and mirrors, so that I can spend my week on other things. When displaying an object on the screen many times in 3d you might think that the model only gets smaller as it goes back in to the distance and that apart from that if it moves from side to side panning across the screen it should stay basically the same. But if you look really closely at 3d graphics you will see that things are a lot more complicated than that. Every animal in the pyramid is from a seen from a slightly different angle and so each animal had to be completely redrawn as though it was new. Weather the animals where all the same or weather they where all different does not effect the amount of calculations that would have to independently done.
Kindest Regards Bruce Dell
|
|
|
By
ketamachine @
Thursday, March 27, 2008 10:27 AM |
If you want to get really old school, check out Comanche: Maximum Overkill. Published in 1992, it was the first flight simulator based on voxel rendering. I remember being so pumped to play that game. It was a blast and nothing else even came close in graphics.
|
|
|
By
LostC1tY @
Thursday, March 27, 2008 11:20 AM |
First off, I am by no means an expert.This all sounds very interesting, but computers are fundamentally limited in that they have a specifically finite amount of memory / processing resources available. Additionally, claims are made about the efficiency of the system aren't backed up by any relevant time data (maybe there was and I missed it, I've been awake for a long time), Show us a scene, and say, "this took x milliseconds to render/(whichever term is appropriate)". The thing that almost completely discredits this system for me, is the whole unlimited claim. Theoretically, Polygon rendering is unlimited, you can have as many as you want, you could process "Terabytes of Terabytes" to put it in your words, But the real issue, and the reason that you can't in physical reality, is the hardware limitations, and more explicitly, the amount of time it would take to process. Keep at it though, I love the level of detail in the tree geometry shots ! -And please correct me on anything I have misunderstood. |
|
|
By
Sebastian @
Thursday, March 27, 2008 5:46 PM |
LostC1tY , I think you are missing the point a bit, I'm afraid. The key realization is that if you shoot a ray for each pixel into the scene, how many intersection points (i.e. "fragments") will you have to process? Exactly the same number as the number of pixels on the screen, right? This is true regardless of how much data you're rendering! This is not true for rasterization unless you have some magical per-pixel visibility and LOD scheme to cut down the number of pixels and vertices to process, which is impossible to achieve in practice. Plus ray casting automatically gives you exact information on what geometry needs to be loaded in from disk, so it's a "perfect" streaming system, wheras with rasterization it would be very difficult to incrementally load a scene depending on what's visible (because you need to load the scene before you know what's visible!)
Bruce Dell, Thanks, I'm a game developer (console titles).
|
|
|
By
random guy @
Thursday, March 27, 2008 6:24 PM |
The Voxel-Based Delta Force games used Voxel terrain ( no animations ) populated with 3-d models. I would run the game at 800x, but those with decent systems back then ( P3's ) could run it at 1024x. I would be interested to see what an engine utilizing a Quad core could do. Assuming that processor power since then has gone:
p3 = ~600mhz core 2 = ~2400mhz x 4 quad core = 9600mhz ==16x more processing power
which means that a Quad Core *should* be able to handle 1920 x 1200 easily
1024x768 = 786432 1920 x 1200 = 2304000
=2.92x pixels
So even placing a traditional 3-d engine on top of a new Voxel based environmental engine should produce some beautiful effects. If done correctly, the Voxel-engine could use 100% of 2 cores, while the traditional engine would use your 3d card, and 1.5 cores ( 0.5 core to Viista/Satan/Black hole of performance). |
|
|
By
LostC1tY @
Thursday, March 27, 2008 8:22 PM |
Ah, it's starting to make sense now. So, assuming for arguments sake you managed to implement this as a GPU based system (would that be more efficient than handling rays on a cpu?), the major factors in terms of 'framerate' that would have to be considered would be the size and speed of the memory directly available to the gpu (vram) in which the point cloud data is stored, right?. But assuming vram was filled and models had been written to the HDD or RAM wouldn't the data streaming process incur the same performance penalty as a polygon based system reading from HDD or RAM?
I'm only a Game Development student in my final year, so I apologise if what I'm saying seems amateurish or ill-informed, or if you feel I am wasting your time. It's just the article doesn't really go into that much detail, and I'm having trouble visualising how the scene is organised in relation to what (little) I know about how things are stored in memory. I mean, even if the number of rays is directly equivelant to the number of pixels on screen, the data for atoms that are not intersected still has to be stored somewhere right? When you're talking about models with 1.5 million atoms, surely a few of those will completely fill all available memory very quickly, especially if there is extra information stored about each atom other than just it's position. Also, would it be possible to carry out animation operations on data sets this large in real time or would this system be used exclusively for static environments?
Thanks for your earlier reply. |
|
|
By
Sebastian @
Thursday, March 27, 2008 10:31 PM | |
LostC1tY, that's the beauty, voxels that are not intersected can be thrown out of memory. Of course you would keep some sort of cache and throw things out on a least recently used basis, but since it's hierarchical you can just load in new levels in the hierarchy only when you hit them. |
|
|
By
Bruce Dell @
Thursday, March 27, 2008 11:51 PM |
Good morning every one
the system isn’t ray tracing at all or anything like ray tracing. Ray tracing uses up lots of nasty multiplication and divide operators and so isn’t very fast or friendly. Unlimited Detail is a sorting algorithm that retrieves only the 3d atoms (I wont say voxels any more it seems that word doesn’t have the prestige in the games industry that it enjoys in medicine and the sciences) that are needed, exactly one for each pixel on the screen, it displays them using a very different procedure from individual 3d to 2d conversion, instead we use a mass 3d to 2d conversion that shares the common elements of the 2d positions of all the dots combined. And so we get lots of geometry and lots of speed, speed isn’t fantastic yet compared to hardware, but its very good for a software application that’s not written for dual core. We get about 24-30 fps 1024*768 for that demo of the pyramids of monsters. This will probably be released as “backgrounds only” for the next few years, until we have made a lot more tools to work with, then we will move in to sprites as well.
Kindest regards Bruce Robert Dell
|
|
|
By
Tom Dell @
Friday, March 28, 2008 1:58 PM | |
Hi I am Bruce Dell’s father and have been fascinated to read the comments written by so many, though some of the comments made do bring to mind the words attributed to Bill Gates “Flipping burgers is not beneath your dignity. Your grandparents had a different word for burger flipping – they called it opportunity”. I get the distinct impression that some of you missed your opportunity in life. I consider myself to be virtually computer illiterate but even I know that when something new is released that my chances of understanding it before I am given the details is nil, however on the flip side I am impressed by the intelligence and ability of many who have commented favourably. One of the points raised is, what will happen to this technology, will it be shelved , or owned by just one company, or made available to all? I can assure you that our goal is to find a company that will licence it to all other interested parties and thus share it with the whole world. I am led to believe that TK Arena have a little treat in store for you in a future edition, hope you enjoy. I would also like to comment on some large companies, that we have tried to deal with. I would love to name them but at this point of sales feel it would not be wise. This technology was shown to the top Australian representative of a company. Realising its importance he said he would present it to the board meeting in America. On return he advised that he informed the board that he wanted to present some breakthrough technology developed by a small Australian entity. With that the chairman told him that they were far too busy to look at something from a small entity. This company could have licensed to the world. In its original form Unlimited Detail would have needed hardware. It is only now that it is able to be run on software alone that interest is stirring. |
|
|
BySomeone @
Monday, March 31, 2008 6:08 AM |
I am wrapping up my master's thesis on volume rendering on multi-GPU clusters (dealing with billions of voxels) so I have some experience with voxel rendering. Obviously, when all voxels are completely opaque or completely transparent there are some significant optimizations that can be made compared to what I am doing. However there are still some inherent limitations that these people seem to be glossing over.
You can render just one fragment for every pixel (since they are opaque), but you can approximate this with rasterization approaches by using early z-testing and occlusion queries. You might be able to quickly determine which voxels are visible (as far as I can tell this is the only novel algorithm you claim to have), but what do you do when the visible voxels are not in memory? There are ways to minimize cache misses, but predicting what will become visible in the next few frames is extremely difficult (especially with fast paced interactive games). Adding in things like dynamic shadows further complicates everything (including the caching).
These guys MIGHT have some impressive new splatting algorithms, but there is no indication as to what they are. As far as I can tell this article is a fluff piece, designed to get this company some venture capital.
PS. Tom Dell, insulting your skeptics is far from classy. Tech fans have been burned by vapor ware so many times that you should really expect skepticism until something concrete is demonstrated in sufficient detail. |
|
|
By
anonymous @
Monday, March 31, 2008 6:41 PM |
For the last week, I've been trying to figure out how Bruce could be pulling off point cloud rendering with asymptotic time significantly less than O(n). If you Google "Direct Visibility of Point Sets", you'll find a paper that seems to fit some of his clues. Basically, it transforms a set of points relative to the viewer, and then you take the convex hull of these points to find which atoms would be visible. The convex hull requires O(n * log n) operations, so n would have to be reduced by using a k-d tree, octree, or similar structure. I'm also wondering whether re-using points from the previous frame could speed things up.
Bruce, I know you are protective of your work - and deservedly so - but any further enlightment to your methods would be appreciated. ; )
|
|
|
By
Bruce Dell @
Tuesday, April 01, 2008 11:25 AM |
Dear Anonymous
I would like nothing more than to tell the world how it is done, because the system is quite unique. At present how ever I thank you for understanding the current need for secrecy. We had our first meeting today with a company. Where the technology could finally be explained under NDA and real time examples shown. I was pleased with the response and how quickly the system was grasped. By no means is the system simple, but it is logical, and this adds to quick understanding. I apologise for the impoliteness of keeping secrets, its very bad manners, and I hope to have it as publicly understood knowledge by the end of the year. We are off to America in a few weeks to see the interested parties who have invited us, there are some companies who have not yet heard of this technology who we would like to see, if any of you are from a company that does not yet have a presentation with Unlimited Detail, then please contact me. unlimited_detail@hotmail.com
As for “Someone” who seems to be as negative as that donkey from winnie the pooh, No we are not looking for venture capitalists. They have come to us before. They draw a big box on a white board, then they put a line through the middle, then another line through half of that and another through half of that etc etc etc. then they say “And see that 10%, that’s what you get !, buts its still very good as even Bill Gates doesn’t own more then 10% of Microsoft”. So we kindly escort them to the door and wish them a lovely day. P.S I hope your master likes the thesis you are wrapping up for him.
Kindest Regards Bruce Robert Dell
|
|
|
BySomeone @
Wednesday, April 02, 2008 7:54 PM |
Yes, my single gramatical error completely invalidates all of my points...
You may not be looking for "venture capital" but you are clearly selling what you have. I suppose that when you meet with these various companies you are not looking to sell anything? I don't think that I am the only one who is skeptical when the person who is talking about how great a certain product is also happens to be selling it.
Resorting to ad hominem attacks makes you look childish. I was just pointing out that some technical limitations to the described approach as well as some alternatives (occlusion queries on the GPU for example). I can appreciate that you need to keep some secrets, but this article sounds like it was written by a PR department. Sorry if I am not so quick to drink the Kool-Aid. |
|
|
Click here to post a comment |
|
|
 |
| |
|  |
|  |
|
|
|
|  |
|
|
|  |