POV-Ray : Newsgroups : povray.binaries.images : Spotchy Radioasity : Re: Spotchy Radioasity Server Time
3 Oct 2024 19:19:38 EDT (-0400)
  Re: Spotchy Radioasity  
From: Nathan Kopp
Date: 10 Oct 1999 23:29:40
Message: <380159a4@news.povray.org>
Rick [Kitty5] <pov### [at] dialpipexcom> wrote...
> Here is my attempt at a radioasity lighting image, however i cannot get
rid
> of the spotchy look (jpeg compression has made no difference), moray
tweaked
> source attached...

The splotchiness can be reduced... sort of.  I've been messing around a lot
with radiosity in POV lately.  (Well, not really... I was messing around
with it a lot about two months ago and I haven't done much of anything with
POV since... very busy with other stuff).

If you change your radiosity settings to the following, you'll get the first
attached image.  Notice that there is less splotchiness  (well, bigger
splotches, really).  There is actually less accuracy, as well (well, kind
of), but the image is, in my opinion, much more visually appealing.
  radiosity {
    brightness 8
    count 150
    distance_maximum 1.5
    error_bound .8*3   // notice the really big error_bound
    gray_threshold 0.0
    low_error_factor .5
    minimum_reuse .001
    nearest_count 6
    recursion_limit 2
  }

Now, this brings me to a few gripes about POV's radiosity.  I think there
are a few bugs in it.  First ,the nearest_count parameter does _not_ specify
the number of cached sample points that will be averaged.  It is the
_maximum_ number of points that will be averaged to estimate a new point.
The result is that POV usually extrapolates from _one_ pre-computed point
instead of interpolating between a few.  This is a major source of the
splotchiness.

Secondly, I think there is a bug in the interpolation/extrapolation code.  I
haven't been able to find it or fix it yet, though.

Finally, the error_bound variable is very much dependent on scene size.  If
you make your scene 10 times as big (10 times in all three directions, so
really 1000 times the volume), you need to double the error_bound to get
similar results.  Try it.  If you leave the settings you already had but
make the scene 50 times smaller, things will look differently than at its
current size.

So this brings me to the second attachment.  It was rendered with my POV-Ray
(not released yet) which changes a few things about radiosity.

1) radiosity is orthogonal with the ambient parameter of a surface.  This
means that you don't have to set ambient_light up so high in a scene.
Instead, the diffuse parameter of the surface is used to determine how the
surface is lit by indirect diffuse light just as it determines how the
surface is lit by direct light.

2) nearest_count is used as a minimun, not a maximum.  This allows the user
to force POV to interpolate between multiple points instead of extrapolating
from a single point.  When using this feature with an appropriately large
error_bound, you can force POV to create a much more visually appealing
(albiet less accurate) image.

I say less accurate because if you look closely at Rick's first image,
you'll see a shadow on the floor behind the yellow sphere.  This is caused
by more sample points being created.  This shadow is much more difficult to
see in either of the images I attach.  Taking fewer sample points (but using
a larger error_bound) and then using more of those existing points in
averages produces very smooth lighting gradients (which is a true assumption
for indirect illumination in most scenes) and looks much better to the eye
than poorly-interpolated quickly-changing gradients (the original image).

-Nathan

Attachment 1:
Rendered with Official POV-Ray 3.1f
Render time: 24 sec on a P266

Attachment 2:
Rendered with my unreleased POV (based on UVPov beta5.4)
Render time: 51 sec on a P266

Here are the settings I used for attachment 2
  ini_option "+QR"  // new feature
  adc_bailout 1/20
  radiosity{
    brightness 2.2  // realistic would be 1.0
    count 100
    nearest_count 5  // always average 5 previous points
    distance_maximum 1.5
    error_bound 0.8*3  // big error bound for nice gradients
    gray_threshold 0.0
    minimum_reuse 0.015
    recursion_limit 4  // possible with my custom compile
  }


Post a reply to this message


Attachments:
Download 'rad1.jpg' (9 KB) Download 'rad2.jpg' (8 KB)

Preview of image 'rad1.jpg'
rad1.jpg

Preview of image 'rad2.jpg'
rad2.jpg


 

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