Real-time raytracing Real Soon?

Shifty said:
How are you going to handle texturing?
Since it's a software renderer(and all alternative and stuff), who says we have to use texturing. There do exist alternative methods of storing high frequency detail that could be more memory access coherent then texture lookups.
 
Last edited by a moderator:
Well I think you should be able to do textureing well at a minimum. If it's significantly worse then rasterization in any area, then it'll never take off. It's supposed to be an improvement on it after all.
 
Since it's a software renderer(and all alternative and stuff), who says we have to use texturing. There do exist alternative methods of storing high frequency detail that could be more memory access coherent then texture lookups.
I'm unaware of alternatives that'll serve the purposes of gaming texturing, apart from use of procedurals. eg. What alternatives are there to a bitmap lookup to texture a human face?

Perhaps for texturing, a deferred shading system could be used? Targetting Cell for the moment, I envisage a ray cast method that logs every point on every surface where a ray hits. Then for each point their ordered into surface and dealt with surface by surface. This way you cast all your rays, then for each object load the textures into LS to keep texture accessing fast. You'd write out each pixel and then finally composite them into the final image. Except in that case you'd still have randomised read/writes for the pixel data when it comes to compositing, but it should be less memory thrashing than the tracing process becuase each ray would need only one random memory access, as opposed to several for multiple textures.

The downside would be small textures to fit into the LS. I guess you could break a surface up into multiple textured regions.
 
There is a few problems with that approach. First, the surface textures may affect how rays are cast. For example, a mirror that has a normal/height map to encode deformations requires texture lookups to properly bounce rays. Second, if an object is using 2048x2048 textures, there's no way you're going to fit that into cache. More likely, it will have more then one of these, and you're really screwed.

No, you need to be more granular then just per object or surface. This is why I proposed the virtual tessellation system in my above post. It doesn't require any branching, other then a loop here and there, and it will partition the hits on any surface into a set of local areas. This way you only need to load a small piece of the texture into cache, and futhermore you know which areas you will be rendering next so you can start preloading that data too. Then you can efficently calculate all your interactions without trashing the cache ever.
 
the PS2 had hidden power, it could run raytraced graphics back then

15794448249790.jpg


 
I wonder if this was a joke about the PS2 squashing the DC :p


edit: Yep it is. Also squashes an X haha
upload_2020-1-20_3-8-35.png
 
The article was looking at 450 MRays/sec. We're at GigaRays/sec now?

The new goalpost for ray tracing is certainly more ambitious now 14 years later.
They totally underestimated the requirements. The timeline getting to an order of magnitude rays/sec was far longer than they thought. I can only guess they were using far simpler models*/scenes than actually needed for real-world application, so the suggestion of RT replacing rasterisation in 2007 was, as is almost always the case with imminent tech breakthroughs, far too optimistic. Heck, not only do we need an order of magnitude faster rays, that in itself is far too slow and we need adaptive sampling and denoising and the like.

The moral here is the same as ever - any future looking tech should have a minimum 10 years added to the suggested release date. ;)

* representations, not geometry
 
Well thanks a bunch for reminding me of that ad with the hybrid alien-human girl.
No more sleep tonight.
 
The article was looking at 450 MRays/sec. We're at GigaRays/sec now?

The new goalpost for ray tracing is certainly more ambitious now 14 years later.
Almost all modern ray tracers have moved to the montecarlo method as the most efficient (thanks to the genius who wrote the Arnold renderer). It's a relatively new development. It's quite a brute force method but it does everything imaginable in one pass.

And with that we're talking about at least 100 rays per pixels for a reasonable quality. We still have a long way to go.
 
It's interesting to compare this famous ray traced bullshot from 2005:
jus8CoI.png

[Game: 2 Days to Vegas]

with this screenshot from the Mafia 1 Remake that is supposedly using raytracing on next gen for reflections and who knows what else (or somehow the wizards at Hangar 13 made it look that good on current gen)

VR9mzQc.jpg
 
Back
Top