POV-Ray : Newsgroups : povray.binaries.animations : Mysterious vanishing isosurface Server Time
11 Oct 2026 18:14:37 EDT (-0400)
  Mysterious vanishing isosurface (Message 1 to 19 of 19)  
From: Mike Horvath
Subject: Mysterious vanishing isosurface
Date: 8 Dec 2016 21:36:18
Message: <584a18a2@news.povray.org>
If I rotate the camera 90 degrees around the x axis, the isosurface 
disappears.

Mike


Post a reply to this message


Attachments:
Download 'cieluv_cube.mp4.mpg' (240 KB) Download 'cieluv_cube_disappear_01.gif' (97 KB)

Preview of image 'cieluv_cube_disappear_01.gif'
cieluv_cube_disappear_01.gif


 

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 00:03:10
Message: <584a3b0e$1@news.povray.org>
Am 09.12.2016 um 03:36 schrieb Mike Horvath:
> If I rotate the camera 90 degrees around the x axis, the isosurface
> disappears.

My guess would be that on the "bottom" side of the shape, the function
has a much stronger gradient, so that when POV-Ray starts searching the
contained_by volume for intersection points starting from that side, it
finds incredibly huge values and thinks, "oh, I must still be VERY far
from the surface" -- advances a good deal, _skipping_ over the actual
body of the shape, and finds itself still outside, concluding that there
is no shape at all.

You must either increase max_gradient to fit even that portion of the
shape, or somehow find a way to get a nicer gradient down there.


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 00:09:49
Message: <584a3c9d$1@news.povray.org>
On 12/9/2016 12:02 AM, clipka wrote:
> Am 09.12.2016 um 03:36 schrieb Mike Horvath:
>> If I rotate the camera 90 degrees around the x axis, the isosurface
>> disappears.
>
> My guess would be that on the "bottom" side of the shape, the function
> has a much stronger gradient, so that when POV-Ray starts searching the
> contained_by volume for intersection points starting from that side, it
> finds incredibly huge values and thinks, "oh, I must still be VERY far
> from the surface" -- advances a good deal, _skipping_ over the actual
> body of the shape, and finds itself still outside, concluding that there
> is no shape at all.
>
> You must either increase max_gradient to fit even that portion of the
> shape, or somehow find a way to get a nicer gradient down there.
>

Is there any "adaptive" form of max_gradient, so the setting is only 
high where needed?

Mike


Post a reply to this message

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 00:22:15
Message: <584a3f87$1@news.povray.org>
Am 09.12.2016 um 06:09 schrieb Mike Horvath:
> On 12/9/2016 12:02 AM, clipka wrote:
>> Am 09.12.2016 um 03:36 schrieb Mike Horvath:
>>> If I rotate the camera 90 degrees around the x axis, the isosurface
>>> disappears.
>>
>> My guess would be that on the "bottom" side of the shape, the function
>> has a much stronger gradient, so that when POV-Ray starts searching the
>> contained_by volume for intersection points starting from that side, it
>> finds incredibly huge values and thinks, "oh, I must still be VERY far
>> from the surface" -- advances a good deal, _skipping_ over the actual
>> body of the shape, and finds itself still outside, concluding that there
>> is no shape at all.
>>
>> You must either increase max_gradient to fit even that portion of the
>> shape, or somehow find a way to get a nicer gradient down there.
>>
> 
> Is there any "adaptive" form of max_gradient, so the setting is only
> high where needed?

There's that `evaluate` mechanism; but I have no idea how it even works.


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 08:25:46
Message: <584ab0da@news.povray.org>
On 12/9/2016 12:02 AM, clipka wrote:
> Am 09.12.2016 um 03:36 schrieb Mike Horvath:
>> If I rotate the camera 90 degrees around the x axis, the isosurface
>> disappears.
>
> My guess would be that on the "bottom" side of the shape, the function
> has a much stronger gradient, so that when POV-Ray starts searching the
> contained_by volume for intersection points starting from that side, it
> finds incredibly huge values and thinks, "oh, I must still be VERY far
> from the surface" -- advances a good deal, _skipping_ over the actual
> body of the shape, and finds itself still outside, concluding that there
> is no shape at all.
>
> You must either increase max_gradient to fit even that portion of the
> shape, or somehow find a way to get a nicer gradient down there.
>

What's weird is that the "missing" area perfectly fits the dimensions of 
the bottom face of the cube used in the contained_by clause.

Anyway, I tried max_gradient 1000, and am now trying 10000. Not usre how 
long it will take however.

:(

Mike


Post a reply to this message


Attachments:
Download 'cieluv_color_solid_cube_isosurface_05.png' (50 KB)

Preview of image 'cieluv_color_solid_cube_isosurface_05.png'
cieluv_color_solid_cube_isosurface_05.png


 

From: Stephen
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 09:11:54
Message: <584abbaa$1@news.povray.org>
On 12/9/2016 1:25 PM, Mike Horvath wrote:
> Anyway, I tried max_gradient 1000, and am now trying 10000. Not usre how
> long it will take however.


If you are only interested in a part of an image. You can render that 
(in Windows) by Shift + RMB click and drag.

-- 

Regards
     Stephen


Post a reply to this message

From: Bald Eagle
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 12:30:00
Message: <web.584ae993262a811ac437ac910@news.povray.org>
clipka <ano### [at] anonymousorg> wrote:

> There's that `evaluate` mechanism; but I have no idea how it even works.

POV-Ray can also dynamically adapt the used max_gradient. To activate this
technique you have to specify the evaluate keyword followed by three parameters:
  P0: the minimum max_gradient in the estimation process,
  P1: an over-estimating factor. This means that the max_gradient is multiplied
by the P1 parameter.
  P2: an attenuation parameter (1 or less)
In this case POV-Ray starts with the max_gradient value P0 and dynamically
changes it during the render using P1 and P2. In the evaluation process, the P1
and P2 parameters are used in quadratic functions. This means that
over-estimation increases more rapidly with higher values and attenuation more
rapidly with lower values. Also with dynamic max_gradient, there can be
artefacts and holes.
If you are unsure what values to use, start a render without evaluate to get a
value for max_gradient. Now you can use it with evaluate like this:
P0 : found max_gradient * min_factor
'min_factor' being a float between 0 and 1 to reduce the max_gradient to a
'minimum max_gradient'. The ideal value for P0 would be the average of the found
max_gradients, but we do not have access to that information.
A good starting point is 0.6 for the min_factor
P1 : sqrt(found max_gradient/(found max_gradient * min_factor))
'min_factor' being the same as used in P0 this will give an over-estimation
factor of more than 1, based on your minimum max_gradient and the found
max_gradient.
P2 : 1 or less
0.7 is a good starting point.
When there are artifacts / holes in the isosurface, increase the min_factor and
/ or P2 a bit. Example: when the first run gives a found max_gradient of 356,
start with
  #declare Min_factor= 0.6;
  isosurface {
     ...
     evaluate 356*Min_factor,  sqrt(356/(356*Min_factor)),  0.7
     //evaluate 213.6, 1.29, 0.7
     ...
   }
This method is only an approximation of what happens internally, but it gives
faster rendering speeds with the majority of isosurfaces.


Post a reply to this message

From: William F Pokorny
Subject: Re: Mysterious vanishing isosurface
Date: 9 Dec 2016 12:55:55
Message: <584af02b$1@news.povray.org>
On 12/08/2016 09:36 PM, Mike Horvath wrote:
> If I rotate the camera 90 degrees around the x axis, the isosurface
> disappears.
>
> Mike

Is there any chance the camera is ending up inside the contained_by 
shape for the isosurface?

Bill P.


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 10 Dec 2016 07:50:29
Message: <584bfa15$1@news.povray.org>
On 12/9/2016 12:55 PM, William F Pokorny wrote:
> On 12/08/2016 09:36 PM, Mike Horvath wrote:
>> If I rotate the camera 90 degrees around the x axis, the isosurface
>> disappears.
>>
>> Mike
>
> Is there any chance the camera is ending up inside the contained_by
> shape for the isosurface?
>
> Bill P.

I don't think so. My camera is 17 units away from the origin, and the 
contained_by area is only 1 unit wide.

(These values then get scaled by 200000.)

Mike


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 10 Dec 2016 23:55:04
Message: <584cdc28$1@news.povray.org>
On 12/8/2016 9:36 PM, Mike Horvath wrote:
> If I rotate the camera 90 degrees around the x axis, the isosurface
> disappears.
>
> Mike

I increased the max_gradient to 10000, and there seems to be no improvement.

Mike


Post a reply to this message

From: William F Pokorny
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 09:09:22
Message: <584d5e12$1@news.povray.org>
On 12/10/2016 07:50 AM, Mike Horvath wrote:
> On 12/9/2016 12:55 PM, William F Pokorny wrote:
>> On 12/08/2016 09:36 PM, Mike Horvath wrote:
>>> If I rotate the camera 90 degrees around the x axis, the isosurface
>>> disappears.
>>>
>>> Mike
>>
>> Is there any chance the camera is ending up inside the contained_by
>> shape for the isosurface?
>>
>> Bill P.
>
> I don't think so. My camera is 17 units away from the origin, and the
> contained_by area is only 1 unit wide.
>
> (These values then get scaled by 200000.)
>
> Mike

OK - it was a shot in the dark. I've not followed your color space 
function() development.

A suggesting is trying the isosurface coded in your scene at a rotations 
around where it is breaking up, at a low resolution, no aa+, area light, 
etc., as

isosurface {
}

not used by reference (github #114 (#113 is related)), so you get some 
idea what the max gradient really is and how it is changing.

Bill P.


Post a reply to this message

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 17:35:55
Message: <584dd4cb$1@news.povray.org>
Am 11.12.2016 um 15:09 schrieb William F Pokorny:

> A suggesting is trying the isosurface coded in your scene at a rotations
> around where it is breaking up, at a low resolution, no aa+, area light,
> etc., as
> 
> isosurface {
> }
> 
> not used by reference (github #114 (#113 is related)), so you get some
> idea what the max gradient really is and how it is changing.

Thanks for bringing this report and analysis up again; I had wondered
recently why my own toying-around with Mike's isosurfaces didn't prompt
any max gradient warnings, but didn't take the time to investigate.

I've just published a new version that supersedes the offending
mechanism with something smarter, and should again report the max
gradient as expected, for each and every isosurface actually rendered,
yet aggregating the results for any clones.

https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8913469


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 18:50:58
Message: <584de662$1@news.povray.org>
On 12/11/2016 9:09 AM, William F Pokorny wrote:
> On 12/10/2016 07:50 AM, Mike Horvath wrote:
>> On 12/9/2016 12:55 PM, William F Pokorny wrote:
>>> On 12/08/2016 09:36 PM, Mike Horvath wrote:
>>>> If I rotate the camera 90 degrees around the x axis, the isosurface
>>>> disappears.
>>>>
>>>> Mike
>>>
>>> Is there any chance the camera is ending up inside the contained_by
>>> shape for the isosurface?
>>>
>>> Bill P.
>>
>> I don't think so. My camera is 17 units away from the origin, and the
>> contained_by area is only 1 unit wide.
>>
>> (These values then get scaled by 200000.)
>>
>> Mike
>
> OK - it was a shot in the dark. I've not followed your color space
> function() development.
>
> A suggesting is trying the isosurface coded in your scene at a rotations
> around where it is breaking up, at a low resolution, no aa+, area light,
> etc., as
>
> isosurface {
> }
>
> not used by reference (github #114 (#113 is related)), so you get some
> idea what the max gradient really is and how it is changing.
>
> Bill P.

I don't understand. What are you saying?

Mike


Post a reply to this message

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 19:08:22
Message: <584dea76$1@news.povray.org>
Am 12.12.2016 um 00:51 schrieb Mike Horvath:

>> A suggesting is trying the isosurface coded in your scene at a rotations
>> around where it is breaking up, at a low resolution, no aa+, area light,
>> etc., as
>>
>> isosurface {
>> }
>>
>> not used by reference (github #114 (#113 is related)), so you get some
>> idea what the max gradient really is and how it is changing.
>>
>> Bill P.
> 
> I don't understand. What are you saying?

He's suggesting that rather than

    #declare Whatever = isosurface {...}
    ...
    object { Whatever }

you should use (at least temporarily)

    isosurface {...}

as this will allow POV-Ray to give you a warning if it thinks your
max_gradient is a poor choice (whether unnecessarily high or too low).


Alternatively, use the brand-new development release I posted about a
couple of minutes ago, which should be able to do the same stunt without
any changes to your scene file.


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 21:11:22
Message: <584e074a$1@news.povray.org>
On 12/11/2016 7:08 PM, clipka wrote:
> Am 12.12.2016 um 00:51 schrieb Mike Horvath:
>
>>> A suggesting is trying the isosurface coded in your scene at a rotations
>>> around where it is breaking up, at a low resolution, no aa+, area light,
>>> etc., as
>>>
>>> isosurface {
>>> }
>>>
>>> not used by reference (github #114 (#113 is related)), so you get some
>>> idea what the max gradient really is and how it is changing.
>>>
>>> Bill P.
>>
>> I don't understand. What are you saying?
>
> He's suggesting that rather than
>
>     #declare Whatever = isosurface {...}
>     ...
>     object { Whatever }
>
> you should use (at least temporarily)
>
>     isosurface {...}
>
> as this will allow POV-Ray to give you a warning if it thinks your
> max_gradient is a poor choice (whether unnecessarily high or too low).
>
>
> Alternatively, use the brand-new development release I posted about a
> couple of minutes ago, which should be able to do the same stunt without
> any changes to your scene file.
>


"Shutdown Warning: The maximum gradient found was 32.504, but 
max_gradient of the isosurface was set to 100.000. Adjust max_gradient 
to get a faster rendering of the isosurface."

According to this, max_gradient setting is not the problem, right?

Mike


Post a reply to this message

From: Mike Horvath
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 22:09:38
Message: <584e14f2$1@news.povray.org>
On 12/8/2016 9:36 PM, Mike Horvath wrote:
> If I rotate the camera 90 degrees around the x axis, the isosurface
> disappears.
>
> Mike

I'm not sure why, but increasing the contained_by box fixed the problem. 
I used:

	contained_by
	{
		box {-1,1}
	}

instead of:

	contained_by
	{
		box {0,1}
	}


Mike


Post a reply to this message

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 22:23:48
Message: <584e1844@news.povray.org>
Am 12.12.2016 um 03:11 schrieb Mike Horvath:

> "Shutdown Warning: The maximum gradient found was 32.504, but
> max_gradient of the isosurface was set to 100.000. Adjust max_gradient
> to get a faster rendering of the isosurface."
> 
> According to this, max_gradient setting is not the problem, right?

Right.


Post a reply to this message

From: clipka
Subject: Re: Mysterious vanishing isosurface
Date: 11 Dec 2016 22:27:24
Message: <584e191c@news.povray.org>
Am 12.12.2016 um 04:09 schrieb Mike Horvath:
> On 12/8/2016 9:36 PM, Mike Horvath wrote:
>> If I rotate the camera 90 degrees around the x axis, the isosurface
>> disappears.
>>
>> Mike
> 
> I'm not sure why, but increasing the contained_by box fixed the problem.
> I used:
> 
>     contained_by
>     {
>         box {-1,1}
>     }
> 
> instead of:
> 
>     contained_by
>     {
>         box {0,1}
>     }

Maybe your functions have numeric instabilities near x=0, y=0 or z=0;
choosing a bounding box that does not coincide with these values would
drastically reduce the chance of the isosurface alhorithm hitting those
locations exactly, and it might now just skip over that ditch.


Post a reply to this message

From: William F Pokorny
Subject: Re: Mysterious vanishing isosurface
Date: 12 Dec 2016 08:57:13
Message: <584eacb9$1@news.povray.org>
On 12/11/2016 05:35 PM, clipka wrote:
> Am 11.12.2016 um 15:09 schrieb William F Pokorny:
>
>> A suggesting is trying the isosurface coded in your scene at a rotations
>> around where it is breaking up, at a low resolution, no aa+, area light,
>> etc., as
>>
>> isosurface {
>> }
>>
>> not used by reference (github #114 (#113 is related)), so you get some
>> idea what the max gradient really is and how it is changing.
>
> Thanks for bringing this report and analysis up again; I had wondered
> recently why my own toying-around with Mike's isosurfaces didn't prompt
> any max gradient warnings, but didn't take the time to investigate.
>
> I've just published a new version that supersedes the offending
> mechanism with something smarter, and should again report the max
> gradient as expected, for each and every isosurface actually rendered,
> yet aggregating the results for any clones.
>
> https://github.com/POV-Ray/povray/releases/tag/v3.7.1-alpha.8913469
>
This update will be very useful to me. Thanks much! :-)

Bill P.


Post a reply to this message

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