POV-Ray : Newsgroups : povray.unix : Modify source code of program POVRAY Server Time
21 Dec 2024 06:37:19 EST (-0500)
  Modify source code of program POVRAY (Message 1 to 5 of 5)  
From: gaprie
Subject: Modify source code of program POVRAY
Date: 27 May 2014 20:55:00
Message: <web.538533c76c8053922ebcdc450@news.povray.org>
Hello everyone,
I want to ask How we can open the source code of program POVRay?
If we can do it, we can see the flow proses rendering in POVRay and we can
modify that such we can add some coding (like MPI maybe) for get paralel
rendering program with POVRay.
Sorry, I am new in POVRay.

Regards,
Galih Pribadi


Post a reply to this message

From: Le Forgeron
Subject: Re: Modify source code of program POVRAY
Date: 28 May 2014 05:00:24
Message: <5385a5a8$1@news.povray.org>
Le 28/05/2014 02:54, gaprie nous fit lire :
> Hello everyone,
> I want to ask How we can open the source code of program POVRay?
> If we can do it, we can see the flow proses rendering in POVRay and we can
> modify that such we can add some coding (like MPI maybe) for get paralel
> rendering program with POVRay.
> Sorry, I am new in POVRay.
> 
> Regards,
> Galih Pribadi
> 

Parallel rendering on multiple cores is already supported (appeared with
3.7).

The license for version 3.7 is AGPLv3. Notice that the license for
previous versions were different.

The main problem for rendering on multiple hosts is sharing the memory
of the parsed scene (and its radiosity/photons data if any).

You can obviously fork from the git repository
 https://github.com/POV-Ray/povray

Many people already did it.

About the branches: 3.7-stable is the slowest one, equivalent to
released version. master is more reactive.
(there is two other branches, but you might stay away from them)


Post a reply to this message

From: clipka
Subject: Re: Modify source code of program POVRAY
Date: 28 May 2014 11:11:16
Message: <5385fc94$1@news.povray.org>
Am 28.05.2014 11:00, schrieb Le_Forgeron:
> Le 28/05/2014 02:54, gaprie nous fit lire :
>> Hello everyone,
>> I want to ask How we can open the source code of program POVRay?
>> If we can do it, we can see the flow proses rendering in POVRay and we can
>> modify that such we can add some coding (like MPI maybe) for get paralel
>> rendering program with POVRay.
>> Sorry, I am new in POVRay.
>>
>> Regards,
>> Galih Pribadi
>>
>
> Parallel rendering on multiple cores is already supported (appeared with
> 3.7).
>
> The license for version 3.7 is AGPLv3. Notice that the license for
> previous versions were different.
>
> The main problem for rendering on multiple hosts is sharing the memory
> of the parsed scene (and its radiosity/photons data if any).

Photons isn't that much of a problem, since photon shooting can easily 
be parallelized; you'd just need to distribute the results before the 
main render begins.

Radiosity is a good deal trickier, as the original algorithm 
theoretically requires fully sequential operation.


Post a reply to this message

From: jhu
Subject: Re: Modify source code of program POVRAY
Date: 29 May 2014 20:50:01
Message: <web.5387d4fa4b0f921ad19b0ec40@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:

>
> Radiosity is a good deal trickier, as the original algorithm
> theoretically requires fully sequential operation.

How did you get around that? Whenever I render a scene with radiosity, all cores
are at 100% when calculating the radiosity data.


Post a reply to this message

From: clipka
Subject: Re: Modify source code of program POVRAY
Date: 29 May 2014 22:26:16
Message: <5387ec48@news.povray.org>
Am 30.05.2014 02:46, schrieb jhu:
> clipka <ano### [at] anonymousorg> wrote:
>
>>
>> Radiosity is a good deal trickier, as the original algorithm
>> theoretically requires fully sequential operation.
>
> How did you get around that? Whenever I render a scene with radiosity, all cores
> are at 100% when calculating the radiosity data.

The problem is not in getting all cores busy, nor in the quality of the 
results. The main challenge in radiosity is avoiding to do redundant 
work - computing more radiosity samples than actually needed.

In a shared-memory system (such as your multi-core machine), it's not 
really that bad: Any newly calculated sample is immediately made known 
to all threads, so double work is only done if two threads happen to be 
computing samples at roughly the same spot at the same time.

In a distributed-memory system however, there is a much longer delay 
between a radiosity sample being finished and all the other processes 
learning about it, so the risk of double work goes up - especially if 
you want to prevent the network from being cluttered up by a torrent of 
short messages, and send around finished samples in bigger packages.

Obviously the whole thing also won't scale very well, as each node must 
keep each other node informed of their results.

Therefore, an entirely different approach is needed for the pretrace 
phase, where render nodes don't need to know the whole picture to do 
their part of the job.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.