Jump to content

  • Log In with Google      Sign In   
  • Create Account

Discussion on GPU 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
4 replies to this topic

#1 shiqiu1105   Members   -  Reputation: 111

Like
0Likes
Like

Posted 19 July 2012 - 09:57 AM

HI folks,
I am trying to write a basic ray tracer with CUDA.
What I have implemented now is simply 1 sample per pixel, and each sample is assigned to a cuda thread.
And each thread traces it's own ray.

I am writing to ask more advanced and efficient ways of doing this.

For example, what's the best the strategy for parallelizing all the tasks? When Multiple samples are used, should I assign each thread all samples in one pixel, or should I only parallelize computation within a thread and sequentially render all pixels?

And, I have also heard that it's better to trace ray in a breadth-first mannar? Why? any tutorial of how to do this?

Anyway, I will appreciate any advice and idea, thank you~

Sponsor:

#2 MJP   Moderators   -  Reputation: 11363

Like
0Likes
Like

Posted 19 July 2012 - 03:00 PM

There's an article in GPU Pro 3 about ray-tracing with compute shaders, which should be relevant for you. I would also try and see you can dig up some implementation details on Nvidia's Optix, since at this point it's a pretty mature library and is bound to have a lot of Cuda-specific optimizations. I'm not sure if they have public implementation details, but perhaps you could email one of the developers.

#3 Tsus   Members   -  Reputation: 1036

Like
0Likes
Like

Posted 19 July 2012 - 05:11 PM

Nvidia revealed a little of OptiX in a talk at GTC in 2010 online available here.
Also, there is the paper from Parker et al. presented at Siggraph in 2010 (though it is more explaining the general architecture of the engine).
I guess, there is more on the internet, perhaps more recent material.

#4 xma   Members   -  Reputation: 210

Like
0Likes
Like

Posted 21 July 2012 - 06:18 AM

shiqiu1105, use global atomics for fetch global buffer with rays . (or increment global rays index)
this is faster, because some threads may complited fasts instead another .

you can try use a g-buffer for speed up.

Edited by xma, 21 July 2012 - 06:19 AM.


#5 Magadanec   Members   -  Reputation: 110

Like
0Likes
Like

Posted 31 July 2012 - 11:07 AM

The one is starting, others ray trace 400 million dynamic polygons using GPU, see centileo.com demos




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