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
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
quote: The current generation of gamings is certainly far from matching the results shown by Pohl's engine
quote: far cry from the quality of shadows in upcoming games like Crysis .
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.
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.
quote: I see this only as a marketing stunt for Intel, trapping people to believe that "only" Intel could do it.
quote: Besides above, how many rays has to be traced with action-heavy scene's where a lot of bullets are flying around, lots of debree of houses flying around?
quote: What about physics calculations? What about collision detections? What about...and so on and so on...
quote: The beauty of ray-tracing is that it scales based on the number of rays cast, not the number of polygons in the scene.
quote: I fail to see how those would be directly affected by the choice of renderer.
quote: Do we want to keep shelling out for discrete graphics cards?
quote: (â€œQuake 4: Ray tracedâ€: The water reflects the environment and the player)
quote: 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.
quote: One last point that I am wondering about is effects. While Raytracing may work when building up the geometry of a level, how well will it work with multiple explosions, fog, projectiles and other effects that cannot be done by raytracing? These effects are not part of a map file that can be read, but are added to the game world as you play.
quote: All it wants for input is a scene that needs to be rendered - it doesn't much care what had to be done to set it up beforehand.
quote: ...a flight sim and FPS don't share the same engine now...
quote: This is one of the common misconceptions about ray tracing. Since each ray must be intersected to find out which objects in the scene it collides with, and the exact collision point if it does, the scene complexity definitely affects performance. Many polygons = many collisions to check against (or deeper / more complex collision culling graphs to maintain)It may not scale in the same roughly linear fashion as with rasterization, but it will still affect performance significantly.The myth comes from the fact that Ray Tracing works best with procedural objects (i.e. spheres) which are easy in ray tracing to get pixel-accurate results, but would require thousands of polygons to reproduce in triangles. If your objects are already polygon-based, ray tracing quickly bogs down ad the number of polys increases, since you must intersect each ray against (at worst) each polygon.