POV-Ray : Newsgroups : povray.advanced-users : Another isosurface question : Re: Another isosurface question Server Time
28 Jul 2024 18:15:30 EDT (-0400)
  Re: Another isosurface question  
From: Slime
Date: 3 Sep 2004 18:37:59
Message: <4138f247$1@news.povray.org>
> I don't
> think that POV can find a zero surface that's positive on both sides.
> (If it did find such a surface, how would it know which was the inside?)

Well, as long as the threshold is set to something greater than zero, it can
find the surface. The "inside" is the set of points whose value is less than
the threshold.

In any case, the technique of taking the square root when the threshold is
zero is obviously flawed because that makes the function undefined in the
negative region, as has been pointed out.

There are other functions, such as atan (as long as it returns a value
from -pi to +pi) which have a similar effect yet are defined everywhere.
However, this won't help. Although it may be possible to use a lower max
gradient with this technique, the function is now much closer to zero
everywhere. This means that POV-Ray can't say "the value here is 500 and
max_gradient is 5 so i can go 100 units and be sure I won't hit the
surface"; rather, it will say "the value here is 5 and the max gradient is 5
so I can only safely go 5 units." So I doubt it will speed things up.

The only real way to speed up the isosurface render is to try to make your
max_gradient as uniform as possible. If the majority of your function has a
max gradient of 1, and one part of it has a gradient of 1000, then you'll
have to set the max_gradient to 1000 which makes the evaluation really slow.
If you can fix that area so that the max gradient is 1 everywhere, then you
can set the max_gradient to 1 and get a good render speed.

 - Slime
 [ http://www.slimeland.com/ ]


Post a reply to this message

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