|
|
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
|
|