I'm late to the discussion !!! Sorry for reviving old arguments...
nullsquared wrote:And about the real-time ray tracing ... The thing is, of course it's possible. But it cannot surpass rasterization. I don't care if some ray tracer can do normal mapping, specular, diffuse, per-pixel shadows, etc, at 20 FPS on a quad-core. You can do all of that and way more just by using rasterization with a modern GPU and some shaders - at above 100 FPS.
Yes, you're right. But what about comparing apples to apples : What are the performance of software only rasterization ? In one case, you have a "fully CPU" run software, in the other case you use HIGHLY specialized hardware...
nullsquared wrote:
Once you start adding in complex reflections and refractions, correct soft shadows, ambient occlusion, global illumination, and the rest of the stuff that ray tracing is really meant for, it's not going to be real-time anymore.
Once again you're right. But with some help from hardware, all of these problems could also be "accelerated" 10-100 time. While ambient occlusion and global illumination would still remain too costly to be used really interactively, the other effects would become quite "cheap" ... and thus mostly "for free".
It's true that rasterizing is the primary, most efficient/performence... at the moment, thanks to the specialized GPUs.
That trend can shift since GPUs tend to be more and more programmable, meaning that in some case their power is/will be used for other areas than rasterizing. One such area is Ray-Tracing.
jjp wrote:
Why? Larrabee screams "better configurable rasterization pipeline" I think
Yes, but also "sufficiently general purpose GPU" to be used as a ray-tracing accelerator...
As Azgur may tell you, A MAJOR bottleneck for Arauna is the CPU-side equivalent to the texturing unit. It takes 40% of the CPU just to compute a bilinear filtering for 1 texture. In the Larrabee architecture, which is otherwise fully programmable , the texturing unit is the only one that was kept as fully hardware...
nullsquared wrote:
Arauna wrote:
The sphere code in Arauna is efficient, and does not reduce the performance of scenes that have no spheres.
The way that is written, I understand it as 'add in a few reflective spheres and you've got a big performance problem.' One of the primitive problems solved by ray tracing, reflections, is pretty much dismissed.
I'm quite sure (though not completely of course) that it should be interpreted as :
"I needed to render some spheres, so added code in Arauna to do it. Since it's a feature that may not be needed in some situations, I made sure that the new feature imposes
no penalty in situations where it's not usefull."
Regarding the performance of reflective spheres, I've no Idea, but I guess it's not that bad, since reflections/refractions were already handled "quite efficiently" in Arauna.
Perhaps Azgur may ask his teacher about it ???
Regarding Artists and RT for games (later in the thread), Azgur is a student in a school where Jacco Bikker (aka Phantom) is a teacher. The goal of some of Phantom's courses is to educate artists/programmers to "the ways of ray-tracing", to showcase Ray-tracing as an other option to Rasterizing, and to present the limits of the technology to his students.
With the advent of "Ray-tracing friendlier" GPUs, I think he's right to at least familiarize his students to this topic.
jjp wrote:
An artist can manually place light sources to get better looking results than "real" GI algorithms. Which works for movies but doesn't work for interactive 3d graphics
On the contrary, beeing able to place/displace the light completely during the game design, or simply to put fully dynamic lights which will behave "correctly" will help the artists, making it easier/faster for them to express their artistic view, without having to preoccupy themselves with things as mundain as LISPSSM/**SSM shadow maps parameters/algorithms.