|
|
On 2/3/22 10:51, Alain Martel wrote:
> One case that I've encountered where scalling up was needed was a scene
> where 1 POV unit represented about 100m, and everything in it was human
> scalled. There was some heavy bleeding in all corners.
Thanks for the info. I fully expect there are as many exceptions as
answers. :-) In the end if scaling up (or down) helps, it helps.
Off the top of my head I can think of a couple scenarios where scaling
up could help with isosurfaces and radiostiy - somewhat apart from the
rough numerical region where solvers work well.
--- isosurfaces
I think of isosurfaces as having a far edge problem by nature.
The solver works in a couple stages. The first using the max_gradient to
sample at some minimum step size within the container until it see the
backside of the container shape or it's found a certain number of roots.
The max gradient is used to find transitions through the threshold value
- the roots, which are usually at or very near zero. After the
transition through a root is seen the accuracy value is used to control
how closely the root / the surface gets approximated.
Where working with boxes or small far-side shape features with a ray
approaching over the top, say - meaning a ray just barely catching a far
corner. In those situations the max gradient also needs to be high(1)
because that transition through the root value - and back - happens over
a very small region of space.
I often let the gradient warnings go in such cases (povr has an option
called 'report' to turn the warnings off by isosurface) and then I let
AA smooth things as best it can. This a piece of why I've pursued
certain AA and new jitter options in the povr branch.
Having max gradient warnings isn't necessarily a problem. You can have
even complete discontinuities in values so long as they happen away from
the threshold/root values. The max gradient must be large enough - for
the steps to be small enough - to still see the root transitions.
Further, the discontinuities cannot change, value wise, in a way that
indicates a root exists at / near the discontinuity.
Anyhow. It might be that scaling up an isosurface while keeping
everything else constant effectively made the gradient steps smaller
with respect to the overall shape - and so solved some corner / fine
detail resolution issues.
--- radiosity
If you were talking about radiosity bleeding through at room corners or
similar.
I've recently spent some time in the radiosity code due running down a
bug therein. While I still consider myself a radiosity amateur as a
user, it looked to me that after the radiosity samples are deposited on
surfaces, they are gathered within a region around the current
intersection while calculating the color/lighting contribution at any
given intersection. This mechanism is similar to what happens with
photon samples.
It wasn't clear to me there was any "strong" mechanism for ignoring
samples which might be on the other side of a surface or from a very
near unrelated surface. Further, there is the issue that the samples
which are actually stored to a file format have considerably reduced
accuracy - they likely drift small amounts after a save/read. Both
radiosity sample gathering 'exposures' are likely reduced by scaling up
and / or cranking down on the error values(a).
(a) IIRC these are tangled with actual scene distances.
FWIW.
Bill P.
Post a reply to this message
|
|