POV-Ray : Newsgroups : povray.advanced-users : Bounding Question : Re: Bounding Question Server Time
30 Jul 2024 18:24:10 EDT (-0400)
  Re: Bounding Question  
From: Ken
Date: 12 Aug 1999 01:16:34
Message: <37B2588E.DB62A106@pacbell.net>
Dave Kreskowiak wrote:
> 
> Hi all.  I took a quick look at the code fragments here and have wondered if
> anyone has seen the same thing I have.
> 
> In the code, it appears that there is a bounding object for just about every
> single difference object.  On top of that, what does the bounding object
> consist of?  A simple box, sphere or something more complex?  I guess it
> would help to see the actual code.  But the thought I have is it looks like
> there is about as many bounding objects as there are primitives.  If this is
> the case, here goes:
> 
> In the case of bounding, more bounds is not a good thing.  If your checking
> a high number of bounding objects, the speed difference, between that and
> just checking if you've hit the object itself, is lost.  I had a similar
> problem with a simple lamp (a small part of the scene is attached).  It's
> not a recursive object by any means, but it's simply a cone shape cut with
> another cone offset and then about 210 long boxes to cut out ribs.  The
> texture is 95% transparent with an IOR about 1.25.  The only light source in
> the scene is in the lamp.  Cutting the shapes into the lamp shade drove the
> rendering time up from 4 hours to about 21 days!

  I agree that more is not necessarily better. What drove me to my current
bounding scheme is the preliminary results I got when testing to see it
bounding offered any advantage. I had the recursion level set to one and
was rendering at a very low resolution. I noted the times with various
bounding routines and found my optimum times with the following results.

3.53 no bounding
3.30  w bounding of difference objects
3.15  w bounding around final shape and difference objects

  So you can see there was a noticable improvement with the scheme I used.
The only real unknown is if at higher levels of recursion (ie more objects)
that added advantage dissapears. It could well be the case.

> Putting a bounding object around every box that cut a rib would not
> eliminate the problem because it would just be checking 210 bounding boxes.
> No speed gain there.  The solution was to:
snip
> In my lamp there are 210 ribs in 10 groups of 21.  This way a ray will be
> checked against a maximum of 10 bounding boxes and then a maximum of 23
> primitives (not counting IOR of course!)  The tracing time went from 21 to
> 5.5 days.
> 
> Dave

  I would say for me there is some black art involved with this process and
have been hoping someone more informed than myself would step in and elaborate
on how pov really handles the bounding action. Perhaps it is beyond the mear
mortal to understand :)

-- 
Ken Tyler

See my 700+ Povray and 3D Rendering and Raytracing Links at:
http://home.pacbell.net/tylereng/index.html


Post a reply to this message

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