|
![](/i/fill.gif) |
"MessyBlob" <nomail@nomail> wrote:
> "clipka" wrote:
> > [radiosity]
> > ... (although it seems difficult to achieve full 100% reproducibility) ...
>
> Possibly the only truly reprocucible (and thread-safe) way is to iteratively
> process the whole scene, all threads working on the same iteration, then
> waiting for all threads to stop before moving on to the next iteration. One
> might need to back-propagate results (Iteration 1: depth 1; iteration 2: depth
> 2,1; iteration 3: depth 3,2,1; etc.)
>
> I realise this largely prevents optimised and dynamic sampling, but it's safe.
> I've not done any analysis on how efficient it would be. On the other hand,
> maybe it's possible to add a little bit of dynamic radiosity data: when there's
> an integrity clash, add the data, and then 'rewind' the older thread to use the
> new data. Only works with small additions at a time, to avoid circular
> triggering of the 'rewind'.
>
> Hoping the above might provide some ideas, assuming I've not completely
> misunderstood the problem.
The algorithm I devised *should* do the trick as well: It's 100% deterministic
regardless of thread count or scheduling "jitter". Theoretically. However, I
guess there are still a few variables not properly reset when a thread starts
working on the next SMP cell. Some caching mechanisms possibly. But those are
beyond the scope of radiosity.
Post a reply to this message
|
![](/i/fill.gif) |