|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
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
|
|
| |
| |
|
|
|
|
| |