Jump to content

  • Log In with Google      Sign In   
  • Create Account

Breaking GPU memory limits! At least for ray tracing


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 Magadanec   Members   -  Reputation: 110

Posted 05 August 2012 - 06:47 AM

Hello everyone, let's discuss them.

CentiLeo guys are showing the demos with ray tracing dynamics in 360 million polygon scene. Dynamics is something where ray tracing was criticised for: http://www.centileo.com/news.html
They support huge amounts of textures and geometry rendered on GPU, around 10x larger than the GPU memory can arrange. And all of this can be rendered very quickly in HD video on a laptop. Although it is not yet a fully featured product, but a project in progress.
Their final images (noise free, full quality) are still around 1000x slower than current game speeds but these scenes are very huge for GPU to render and still pretty fast in photorealistic graphics liga.
And it is great that someone can show the pros of fast ray tracing on really big scenes. This is not just a couple of spheres and planes used to be demoed by others.
I would like to discuss the pros and cons of ray tracing again. Also curious on the guesses how their team did it.

Sponsor:

#2 Hodgman   Moderators   -  Reputation: 31804

Posted 08 August 2012 - 01:34 AM

The performance on those scenes, with support for scene editing, blows current DCC apps out of the water. Here's hoping for Autodesk/Blender integrations Posted Image

How they did it isn't that complicated at an abstract level, it's a category of solutions called Out-of-Core algorithms, but of course all the small details are what makes it fast.
The basic outline would be -- instead of calling a function (e.g. TraceRay(start, end)) you instead write the input parameters for that function into a queue. Then when you've got a huge number of calls that need to be made, you sort them by required data. e.g. on a polygonal scene, you could divide the scene into grid-cells, where 1 grid-cell does fit into memory. You then sort the pending TraceRay commands and select only the ones that go through a certain grid-cell, upload just that cell's polygons to the GPU, and perform all the TraceRay commands just for that cell. Repeat until you've got all the results. When the results are all calculated, you can begin resuming the code that actually wanted to call the TraceRay function in the first place.
It's all about deferring/batching up work into sensibly-sized chunks.

#3 kuramayoko10   Members   -  Reputation: 386

Posted 14 August 2012 - 09:29 AM

Do you guys know if they are using GLSL to implement the Ray Tracer?
Programming is an art. Game programming is a masterpiece!




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS