Ray tracing has to appear at some point, its a mathematical inevitability and its sort of the logical next step.
Ray tracing has to appear at some point, its a mathematical inevitability and its sort of the logical next step.
Otoh when that happens could conceivably be 10+ years. Work needs to be done on both the algorithm side as well as the hardware side, there is no obvious way to make it efficient for mass market realtime apps. By contrast, traditional rasterizers were sort of obvious to experts that its doable in principle, long before 3dfx and so forth.
John Carmack to Reverend via email said:I believe that there is very interesting potential in ray casting through a collapsed sparse octree representation, possibly punting the final calculation to a general fragment program. A tracing solution like this cries out for some simple hardware, rather than a general purpose processor.
John Carmack
Sure, but not O to update. kd-trees are often liked because the ray searches and neighbour searches are fast, but they suck when it comes to updating them for dynamic geometry. Octrees aren't so bad in this regard.True, but only if the raytracer has a "decent" acceleration structure, like an octree, kd-tree or whatever. The problem is, these are all above O to construct... And in games, you generally don't want any restriction on how dynamic your geometry can be.
I think the question of computational power for raytracing is a bit overblown because people naturally associate the word "raytracing" for an exhaustive solution, which it doesn't really have to be. The difference between simply raycasting to sample data and run each sample through regular old fragment shaders and going through a complete Monte Carlo simulation is pretty enormous.The problem is that raytracing will always be computationally more expensive than "faking it" as most rasterisers do today. Who's going to use raytracing when you can take that same computational power and do several times more work?
Did you see my earlier post?Proponents of ray tracing often miss one critical fact. They say that raytracers are O(log n), while rasterizers are O. True, but only if the raytracer has a "decent" acceleration structure, like an octree, kd-tree or whatever. The problem is, these are all above O to construct... And in games, you generally don't want any restriction on how dynamic your geometry can be.
Now the moment you start getting into depths of recursion, Monte Carlo sampling, etc., that's where computational power demands explode.
Fibre is not an option, having to make all the connections with a physical bridge is the problem in the first place ... you could use face to face flip chip bonding I guess, but you would need to be able to implement surface emitting laser diodes (or at least something close to a laser, so you can get decent bandwith) on silicon fist.