POV-Ray : Newsgroups : povray.unofficial.patches : variable/adaptive radiosity count : variable/adaptive radiosity count Server Time
19 Apr 2024 15:43:46 EDT (-0400)
  variable/adaptive radiosity count  
From: Christoph Hormann
Date: 5 Sep 2002 10:27:04
Message: <3D7769B3.15949030@gmx.de>
I made some more experiments in that matter, see:

Subject: Variable radiosity parameters test (~220k)
Date: Sun, 01 Sep 2002 18:42:44 +0200
From: Christoph Hormann <chr### [at] gmxde>
Newsgroups: povray.binaries.images
news://news.povray.org/3D724384.B9BF687F%40gmx.de

for the previous tests.

The new test images are on:

http://www.tu-bs.de/~y0013390/files/rad_test.html

i suggest downloading the image files and comparing them in a program able
to switch between the files quickly (like irfanview or xv) for seeing the
differences.

Concerning the different renders (all error_bound 0.4, pretrace_start 1,
pretrace_end 1/image_width, recursion_limit 2):

rad_count-120.png:
conventional fixed count 120, time ~20min

rad_count-260.png:
conventional fixed count 260, time ~45min

rad_count-260_a.png:
conventional fixed count 260, error_bound 0.1, time ~1h15min

rad_count-fn.png:
function based count, the function used is based on the object pattern,
see 'rad_object.png' for the used object, inside the object: count 260,
outside: count 120, time ~23min

rad_count-fn2.png:
function based count, additional object made of thinner cylinders and
inside count 500, minimum count 150, time ~30min

rad_count-fn3.png:
function based count, like 'fn2' but also with variable error_bound
0.4/0.1, this removes the persistent bright aretefacts but seems to have
quite strong overall (and not always positive) effects.  I'm really not
sure if varying error_bound is a good idea after all.

rad_count-adaptive.png:
adaptive count, the planned syntax of this is:

radiosity {
  ...
  count {
    MAX_COUNT, MIN_COUNT
    threshold VALUE
  }
}

The program decides whether to shoot all MAX_COUNT rays after doing
MIN_COUNT  based on the maximum and minimum distance returned by these
rays.  This seems to work fairly well, but as said before it does not
really offer much control to the user.  With the function patch enabled
too MAX_COUNT can also be a function of course.

The image uses:

    count {
      260, 120
      threshold 0.15
    }

which results in approx. 16% of the samples using 120 rays. Render time
was ~39 minutes which is much more than in the function based samples
because it improves all parts of the scene with higher count and not just
the few areas defined by the function.

rad_object.png:
The object used for the function in rad_count-fn*.png

And using functions for defining the areas of increased count is really
not that difficult, you simply have to create an object and use something
like:

#declare FnShape=
function {
  pattern {
    object { Rad_Obj }
  }
}

#declare FnRad=function(x, y, z) { select(FnShape(x, y, z)-0.5, 120, 260)
}

The render times BTW are *very* unprecise, there were other tasks running
on the machine meanwhile i did not want to stop.

Ouch, that has become quite a long post, those who have not given up
reading yet are welcome to comment. :-)

Christoph

-- 
POV-Ray tutorials, IsoWood include,                 
TransSkin and more: http://www.tu-bs.de/~y0013390/  
Last updated 13 Aug. 2002 _____./\/^>_*_<^\/\.______


Post a reply to this message

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