POV-Ray : Newsgroups : povray.unofficial.patches : (simple?) Isosurface patch request : Re: (simple?) Isosurface patch request Server Time
26 Jun 2024 01:05:00 EDT (-0400)
  Re: (simple?) Isosurface patch request  
From: Samuel Benge
Date: 14 Aug 2004 13:11:09
Message: <411E25C9.4050703@hotmail.com>
Wolfgang Wieser wrote:
<snip>

> What Christoph said here and in the previous posting is certainly correct. 
> Once a isosurface root is found, the linear interpolation step gives us 
> a better guess of the true postion of the root (expect one or two orders 
> of magnitude for well-behaved functions). 
> This means: 
> (1) It is not meant as a way to generate bevel edges. 


I understand this. But if we *can* get bevelled edges using higher 
accuracy values, why not let people use it that way? My preliminary 
tests (without the patch) indicate that a simple min(..) of two 
functions can be bevelled, saving lots of csg-coding time. Incidentally, 
it would render faster, too, because of the high accuracy values.

> (2) It cannot make black regions disappear which occur because of 
>    not found roots (such as missed roots due to incorrect max_gradient). 


I don't have this problem. Some people might, but I seem to always be 
able to find the right max_gradient early on.


> (3) It does greatly improve the actual surface accuracy. While the current 
>    code will have the real root depth within the specified accuracy, the 
>    patched code will have it within 1/10 to 1/100 (typ.) of the accuracy. 
>    This in turn means, that one can render equally-well images with smaller 
>    accuracy and hece faster. See below, too. 


This is what's really frustrating me.... I know the patch is better when 
it comes to accuracy. With the 'official' isosurface, we have to use 
accuracy values which are MUCH SMALLER than the needed 'grain size', or 
resolution of the isosurface to rid ourselves of the black dots.


> (4) The black dots on my images are IMO due to the shadow rays (i.e. the 
>    ones from the light source to the object) come _really_ flat above 
>    the surface. I did no detailed investigation on why exactly the black dots 
>    disappear with my patch. However, a linear interpolation after a bisection 
>    algorithm is the most common way to go numerically and there is no reason 
>    why we should not do that here. 


Can I give you an example isosurface statement, to test my theory on 
this? I've seen the problems; I believe your patch fixes them. If we 
break even on render time, so be it. A fix is a fix.

>>but this can't be 
>>generalized.  A two times speedup in all isosurface renders because of
>>this change is illusory.
>>
>>
> Not for "all" but for "a lot of real-life relevant" isosurfaces. 
> And after all, I cannot see major disadvantages from using it. 


I can only see advantages.

 
> BTW, talking about isosurface speed, I very much like the idea of your 
> patch presented here: 
> http://www-public.tu-bs.de:8080/~y0013390/fast_iso/patch.html
> 
> Will this patch be made available sometimes somewhere (such as in 
> the next megapov version)?
> 
> Wolfgang


*Sigh* I wish I knew how to compile POV's source code... :c/

-Sam


Post a reply to this message

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