backtop


Print E-mail del.icio.us 46 comment(s) - last by tedrodai.. on Oct 10 at 2:22 PM


Gollum is an example of how good (or perhaps ugly, yet photorealistic) ray-tracing can look.  (Source: New Line Cinema)

Farcry at high top settings. Note the trees and plants show no reflection, and the reflections are lower resolution than the land.  (Source: Crytek)

Ray-traced Quake 4. Note the full resolution reflections, which include all objects, including the gun and trees.  (Source: Intel and id software)

Low resolution, artifacted shadows from Call of Juarez.  (Source: Ubisoft)

Sharp, full resolution shadows in Daniel's Quake 3 engine.  (Source: Intel and id software)
While ID and Epic develop their new engines, Intel is working on something that may blow both of them away.

Take a look at the screen shots of the ray-tracing engine by Intel's Daniel Pohl and you won't have to squint to see improvements.  This young gun from Intel is looking to shake up the entire game engine industry with his innovative work.

Designing game engines is a cut-throat business.  Companies regularly fold after investing massive amounts of money and time to develop a proprietary engine.

Part of the problem is market saturation.  You have three giants who release an engine ever couple of years--Epic, id Software, and Valve.  Then you have major developers who make engines to license, such as Emergent Game Technologies who make the Gamebryo engine, used in the popular Elder Scrolls IV: Oblivion.

The real problem though, is that all the new engines utilize most of the same technologies and techniques as the last generation.  There is creativity, but not true innovation.  Rather, it is a slow and expensive process of iterations, each a bit better than the last.

Daniel Pohl does not believe in this style of development.  In college he broke with tradition and redesigned Quake 3's engine to work with ray-tracing, as opposed to rasterization which nearly all traditional engines used.  He was hired out of college by Intel and is currently creating some quite possibly ground breaking work for them.

Ray-tracing is used to render most CGI movies, for example the orcs and various monsters in "The Lord of the Rings" trilogy.  It provides realistic lighting, shadows, and reflection, among other benefits.  However, this technique, like radiosity-based rendering, has taken a back seat to rasterization rendering, due to its high computational costs.

However, early potential was shown when OpenRT, a graphics API similar to OpenGL, was released in 2005.

Now Daniel Pohl has shown that with modern quad-core gaming machines, high performance ray-traced graphics is achievable at acceptable frame rates.  Pohl has been showcasing his new work for Intel at various technology shows across the country this year. 

His new work brings ray-tracing up to the modern era, with a redesigned Quake 4 engine, which use ray-tracing.

The engine yields breathtaking results.  First, raytracing allows for a dramatic increase in polygon count, without significant extra overhead.  This is due to the fact that the engine is based on a set number of rays, and the number of polygons simply affects their course, but does not add extra rays.  Thus a higher level of detail can be obtained at little cost.  In his example, he takes a 2 polygon wall from the rasterized Quake 3 engine and makes it into a 5,000 polygon wall, which process nearly as fast.

A second benefit from ray casting is realistic shadows.  Shadows in today's highest profile games are an ugly business.  They often are lower resolution, have artifacts, look distorted and have various other problems which all stem from the fact that shadows are not naturally processed in rasterization rendering and have to be synthetically added.  Ray-tracing inherently calculates shadows at little cost and displays lighting-realistic shadows at full resolution.

A final key graphical aspect where ray tracing dominates is in reflection and refraction effects.  Most games today limit reflections to the occasional mirror or water surface.  You will seldom see your face reflecting off computer monitors or "fancy" effects such as that.  Further, refraction/reflection effects such as water are typically poorly done.  Some games do not even include water reflections, while others, such as FarCry make an admirable effort, but end up only rendering partial reflections at low resolution, even at the highest settings.  Ray-tracing offers far superior, full resolution, full image reflections at little cost.

Two other aspects that seem to make ray-tracing poised to take over are scaling and ease of programming.  Ray-tracing is based mainly on repeated calculations to a finite set of rays, so it is easily divisible into separate tasks, unlike rasterization.  The result is that frame rates increase approximately linearly with frame count, so a screen that is rendered at 4 fps in a single core machine, would run at about 16 fps on a quad-core machine.  Rasterization engines fare far poorer in this aspect.  The ray-tracing engine also allows effects to be programmed far easier.  Reflections and refractions are inherently calculated, and the only real work to be done is designating the polygonal object's light reflection and refraction indexes.  This is in contrast with rasterization engines, which must design complex algorithms to simulate individual lighting effects.

The best proof of the engine's potential is simply by looking at the screenshots attached.  Unlike most new engines where you have to squint to see the differences of various effects, the upgrade provided by the ray-tracing engine is, in most cases, glaringly obvious.  Daniel Pohl and his team at Intel are hard at working revolutionizing the computer gaming industry.  If his engine succeeds, it has the potential to shatter a 10+ year tradition of rendering monotony by ditching the old--rasterization--for the new--ray-tracing.



Comments     Threshold


This article is over a month old, voting and posting comments is disabled

I don't get it
By wien on 10/4/2007 12:27:14 PM , Rating: 5
Anyone thinking ray tracing is the way of the future really needs to read this thread over at Beyond3D: http://forum.beyond3d.com/showthread.php?t=43721 and in particular post #21 by AndyTX.

Ray tracing is basically the brute force solution you use when you can't find other more efficient ways of rendering your pixels. It's similar to hacking a password by trying every possible combination of characters until you find the right one. Yes it's quite simple and dead easy to code, but it's hardly fast nor elegant and there are usually faster ways of doing it while still solving the problem. I can see why Intel would like to push the brute force method though... sells hardware.




RE: I don't get it
By JasonMick (blog) on 10/4/2007 12:41:41 PM , Rating: 2
I disagree. While there may be more efficient ways, often the best way is to simulate how the effects occur in nature, which the idea behind ray-tracing.

Rasterization algorithms could theoretically be as well done as ray-traced ones for shadows and reflections, but it would take years and years of programming, and a lot of human effort. The current generation of gamings is certainly far from matching the results shown by Pohl's engine. I will believe these super rasterization methods when I see them with my own two eyes.

Sometimes the manpower cost of writing more efficient algorithms is too heavy to outweigh the computing cost associate with more direct but less efficient algorithms. Its definitely a trade off.

You have to understand we brute force a lot of things in science and technology. For example we could use supercomputers to try and simulate how a flu virus attacks the human body, but most of our medical understanding comes from how things operate in the real world, though this might not be the "most efficient" approach. We may not have as full an understanding, and it may (in-theory) be slower to physically diagnose and analyze illness than on the computer, but thats how it is still done today.


RE: I don't get it
By wien on 10/4/2007 1:09:48 PM , Rating: 4
quote:
The current generation of gamings is certainly far from matching the results shown by Pohl's engine
Really? I don't agree at all. :)

There are only two things I personally feel ray tracing does significantly better than current rasterization techniques, and that is reflection and refraction. I just don't see these two as reason enough to switch completely to ray tracing and all the baggage that brings. The reliance on (close to) static scenes for reasonable performance is the big one for me, and will severely limit it's usefulness in games where a lot of stuff is flying about and changing every frame.

If you look at shadows, straight ray traced shadows look horrible compared to a good shadow mapping implementation (see any Pixar movie for reference). Shadows aren't sharp and pixel perfect, they're soft and fuzzy. Doom3's stencil shadows look exactly like ray traced shadows would, and they're a far cry from the quality of shadows in upcoming games like Crysis.

The best solution is probably a hybrid where you use rasterization for most rendering, and fall back to ray tracing when doing reflections and refractions (which, quite frankly, isn't all that often despite game makers' insistence on making everything bright and shiny! ;)). This seems to work well for Pixar, and I see no reason why that won't translate to real time graphics as well.


RE: I don't get it
By wien on 10/4/2007 1:16:38 PM , Rating: 5
quote:
far cry from the quality of shadows in upcoming games like Crysis .
No pun intended by the way. :P


RE: I don't get it
By Setsunayaki on 10/7/2007 7:42:58 AM , Rating: 2
The problem with raytracing and rasterization is algorithm efficiency...When I tested Raytracing, I was looking at Asymptotic time, and though its like brute force and its very demanding....Ive seen them run at O(n)^2 and O(n)^3 time....

what this means, that is one plans a hybrid.....we have to think about what is really important to us in competetive gameplay...Our framerate and fill rate. Working on a Hybrid system would mean that our framerate will equal the generation of the lesser quality work...minus the framerate and performance hit of the highest quality.

I find it hard to believe that in all the pages of text I have read about Raytracing, that no one has truly tried to really test for upper bound and lower bound asymptotic time....

Just by looking at the framerate alone in tests....the performance hits were extremely high.

No, let me ask you all a question...

Since some of your speak of efficiency and that is good thought on approaching this topic....Does anyone know what the best and worse case scenarios are for Asymptotic time of the raytracing algorythms?

Remember that the longer the time, before completion of each set, the lower the framerate and longer the rendering time required......I remember a year ago one of the timings I obtained was O(n)^3...and we dropped testing when we saw portions of O(n)^4 algorithms....But today we have dual processing quad core machines, where each core can be overclocked to 4ghz....so how would that look like in running those algorithms...

If any of you overclock like I do and have that machine above...This is the reason why we overclockers are needed in computer science....to see if we can make algorithms like this work and catch a glimpse of tomorrow's performance today! ^_^ So now you have a reason to Overclock that is well justified....^_^


RE: I don't get it
By tedrodai on 10/10/2007 2:22:06 PM , Rating: 2
I'm all for overclocking--for fun and a passtime, or getting more for your money, etc., but let's face it:

A few hundred MHz is not going to solve the problem of an O(n)^3 algorithm or worse. From a brute-force standpoint, exponentially increasing the number of processors, as they're beginning to do, may help; but we're sure as heck not able to exponentially increase the speed of today's PC processors through overclocking.


RE: I don't get it
By wien on 10/4/2007 1:25:44 PM , Rating: 2
And just for the record, I can certainly see the attraction of ray tracing wrt. simplicity of implementation. It's extremely intuitive, and you save a lot of gruntwork you have to do with rasterization.

What a lot of people seem to forget though, is that ray tracing brings in a whole set of new problems that you have to develop ways to work around, and I'm just not convinced those problems are simpler or more easily solved that the ones we face in rasterization.


RE: I don't get it
By peldor on 10/4/2007 2:30:24 PM , Rating: 3
Consider your last link where Pohl estimates 1 billion rays/s for a 'game quality' level of performance, and then consider the 8-core system they were demoing only managed 83 million rays/s. That's roughly 25 Core2Quads running full out for a low-res, 30 fps game. Sure lots of polygons, wow lots of great reflections. Push it to 20" widescreen and 60 fps, now you're looking at nearly 500 cores necessary. And though ray-tracing scales very well on multi-core, it's not perfect and never will be. When you get up to 128 cores your performance is more like 100x.

If we get ray-tracing in games it's not going to be on anything but a many-core processor. Maybe Larabee but more likely a GPU. Intel's talk of ray-tracing is just smoke and mirrors (coincidently, two things ray-tracing is good at simulating!) as far as their main CPU lineup.


RE: I don't get it
By scrapsma54 on 10/5/2007 2:08:53 PM , Rating: 1
quote:
Consider your last link where Pohl estimates 1 billion rays/s for a 'game quality' level of performance, and then consider the 8-core system they were demoing only managed 83 million rays/s. That's roughly 25 Core2Quads running full out for a low-res, 30 fps game. Sure lots of polygons, wow lots of great reflections. Push it to 20" widescreen and 60 fps, now you're looking at nearly 500 cores necessary. And though ray-tracing scales very well on multi-core, it's not perfect and never will be. When you get up to 128 cores your performance is more like 100x.

80 core anyone


RE: I don't get it
By eman7613 on 10/5/2007 9:40:58 PM , Rating: 2
quote:
I disagree. While there may be more efficient ways, often the best way is to simulate how the effects occur in nature, which the idea behind ray-tracing.


If we were to go by this logic, intel should drop Ray-tracing and jump into Monte-Carlo path tracing! Would be the exact same thing as what they are curently doing.

The point of the current 3D graphics is to skip as many steps as posible to generate an accurate result. If the shadows are not strong enough for you, you can simply turn of the samples. Ray tracing has this exact same problem, Thats why they have options to change the AA, AF, Soft/hardShadows, etcetera.

Raytracing's forte is CGI movies solely because it is more accurate, and can have much higher poly counts as the artical says (but you still have to have the space in your ram to fit it!).


RE: I don't get it
By scrapsma54 on 10/5/2007 9:55:16 AM , Rating: 1
Upgrading a cpu in not as conusmer friendly as upgrading a gpu. Nor is it even acceptable. Sure raytracing may seem awesome, but how much memory does it consume? DX has come a long way to achieve what it has today. Prey comes nowhere near the graphical quality enabled in DX9. It is certainly fast and allows
so many filtering methods to be used with very little hit in performance, but now the time of high polygon models has been replaced by the need for Normal mapping, parallax, and ambient. Far cry is a 3 year old machine hog, now its tamed by the dual core computer or shader model 3 computer. Unreal Engine 3, Cry engine 2, and Source engine are prime examples of how far Rasterization has progressed. In fact Unreal engine 3 isn't even cpu heavy.


RE: I don't get it
By Moishe on 10/5/2007 11:38:29 AM , Rating: 2
The cool thing is not that it's brute force... but that raytracing has inherent benefits. The great thing about brute force is that it's often the most inefficient method, BUT if you can do it fast, you get the most accurate results.

If they can produce high quality raytraced images in real time... well rasterization will simply have to go away or innovate something completely new. photo-realism requires raytracing because raytracing is a simulation of how real light works.

The two things that make this possible are: more power (more cores, more GPU power), and greater effiency in the raytrace method.


RE: I don't get it
By wien on 10/6/2007 10:46:20 AM , Rating: 2
Yes it probably is more accurate, but at what cost? And for what gain?

Rasterization today (with shaders becoming ubiquitous) is just as much a simulation as ray tracing is wrt the actual surface calculations. No it doesn't trace photons through all the scene geometry and calculate shadows, reflection, refractions "for free" that way, but the workarounds currently in use in modern games will usually create something that looks 99% as good (better if you look at shadowmapped vs. ray traced shadows).

I just don't buy into the "simulation for simulation's sake" thing. If hacking it looks just as good in 99% of cases and performs significantly better, why not hack it? :)

Minor nitpick: Ray tracing doesn't really simulate real light as much as trace light contribution backwards from the eye to the light sources. If you really want to simulate light, you need to trace the light from the source, through all bounces, and accumulate whatever light hits the eye. If you add a photon mapping step for instance you're much closer to a simulation than just plain ray tracing, but that can in theory be added to a rasterization algorith too so it's not specific to ray tracing.


RE: I don't get it
By dnd728 on 10/6/2007 5:15:12 PM , Rating: 2
I guess sticking a couple of video cards in a PC is also brute force...


RE: I don't get it
By Proteusza on 10/9/2007 5:14:31 AM , Rating: 2
Are you saying using a "brute force" simulation of how things are in real life is worse than code hacks, approximations and brute force (if you know anything about 3d graphics, you will know that all of these are abundant).


Finally, but...
By DingieM on 10/4/07, Rating: 0
RE: Finally, but...
By crystal clear on 10/4/2007 11:44:31 AM , Rating: 2
The article discusses-"Designing game engines<"/i>

Does AMD or Nvidia develop game engines ?

If yes ! gives some details please.

quote:
I see this only as a marketing stunt for Intel, trapping people to believe that "only" Intel could do it.


Every company promotes its product incl new ones on the way.
Nothing new.

People have come to believe (from experience) that

Only Intel delivers on time

I am neither a fanboy nor very much interested in Intel/AMD
wars.

Just facts & realities.