| 
  | 
Hello programmers!
I am a programming student and would like to think of an efficient way of
splitting the Ray-Tracing problem to multiple threads.
According to my understanding, the current development version of POV-Ray is
working on doing this.
My question is:
Where can I get information about the algorithm POV-Ray is using?
Can someone refer me to a specific file in the "source" directory of the source
code which is responsible for the top-level ray-tracing?
Thanks in advance,
jazzman
 
 Post a reply to this message 
 | 
  | 
 | 
  | 
Am 02.06.2010 12:07, schrieb jazzman:
> Hello programmers!
> I am a programming student and would like to think of an efficient way of
> splitting the Ray-Tracing problem to multiple threads.
> According to my understanding, the current development version of POV-Ray is
> working on doing this.
>
> My question is:
> Where can I get information about the algorithm POV-Ray is using?
> Can someone refer me to a specific file in the "source" directory of the source
> code which is responsible for the top-level ray-tracing?
I would suggest diving into it at "TraceTask::Run()", in the file 
"source/backend/render/tracetask.cpp". This is the method run for every 
rendering thread.
Concentrate on the simplest case, "tracingMethod=0" (no anti-aliasing) 
with "previewSize=0" (no mosaic preview), i.e. 
"TraceTask::SimpleSamplingM0()".
The basic idea behind the code is to repeatedly retrieve a work package 
(a rectangular chunk of the image) from a dispatcher 
("GetViewData()->GetNextRectangle(...)"), render it pixel by pixel, and 
retrieve the next work package - until the dispatcher has no more work 
to do.
 Post a reply to this message 
 | 
  | 
 | 
  | 
On 02.06.10 12:07, jazzman wrote:
> My question is:
> Where can I get information about the algorithm POV-Ray is using?
> Can someone refer me to a specific file in the "source" directory of the source
> code which is responsible for the top-level ray-tracing?
Your are better off with a good book an ray-tracing. There are several 
listed in the documentation (older ones, so your library is likely to have 
them).
For a more current treatment, while it does cover lots of other subjects, 
"Real-Time Rendering" 3rd Edition is a good choice. It also explains how to 
do ray-tracing in parallel, and lots of other things.
	Thorsten
 
 Post a reply to this message 
 | 
  |