|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I am trying to render the following isosurface.
isosurface
{
function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
threshold 0
accuracy 0.001
contained_by
{
box {0,1}
}
max_gradient 50 // was 20000
}
However, from certain angles there appear gaps or cuts in the surface,
and you can see inside. The gaps disappear when viewed from other angles.
Does anyone have any tips on how to fix this? I already tried scaling by
200 but it does not help.
Mike
Post a reply to this message
Attachments:
Download 'ciexyz_color_solid_cube_isosurface10.png' (56 KB)
Preview of image 'ciexyz_color_solid_cube_isosurface10.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Mike Horvath <mik### [at] gmailcom> wrote:
> I am trying to render the following isosurface.
>
> isosurface
> {
> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
> threshold 0
> accuracy 0.001
> contained_by
> {
> box {0,1}
> }
> max_gradient 50 // was 20000
> }
>
> However, from certain angles there appear gaps or cuts in the surface,
> and you can see inside. The gaps disappear when viewed from other angles.
>
> Does anyone have any tips on how to fix this? I already tried scaling by
> 200 but it does not help.
The outer box isn't there but I'm guessing your isosurface is part of CSG, so
maybe if you add all_intersections or max_trace 3 (or whatever integer) might
fix it.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3/7/2017 4:09 PM, omniverse wrote:
> Mike Horvath <mik### [at] gmailcom> wrote:
>> I am trying to render the following isosurface.
>>
>> isosurface
>> {
>> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
>> threshold 0
>> accuracy 0.001
>> contained_by
>> {
>> box {0,1}
>> }
>> max_gradient 50 // was 20000
>> }
>>
>> However, from certain angles there appear gaps or cuts in the surface,
>> and you can see inside. The gaps disappear when viewed from other angles.
>>
>> Does anyone have any tips on how to fix this? I already tried scaling by
>> 200 but it does not help.
>
> The outer box isn't there but I'm guessing your isosurface is part of CSG, so
> maybe if you add all_intersections or max_trace 3 (or whatever integer) might
> fix it.
>
I tried your suggestion and took the isosurface out of the union it
belonged to:
isosurface
{
function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
threshold 0
accuracy 0.001
contained_by
{
box {0,2}
}
max_gradient 50 // was 20000
all_intersections
max_trace 3
}
But it did not solve the problem. I still get the jagged looking artifacts.
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3/8/2017 12:30 AM, Mike Horvath wrote:
> On 3/7/2017 4:09 PM, omniverse wrote:
>> Mike Horvath <mik### [at] gmailcom> wrote:
>>> I am trying to render the following isosurface.
>>>
>>> isosurface
>>> {
>>> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
>>> threshold 0
>>> accuracy 0.001
>>> contained_by
>>> {
>>> box {0,1}
>>> }
>>> max_gradient 50 // was 20000
>>> }
>>>
>>> However, from certain angles there appear gaps or cuts in the surface,
>>> and you can see inside. The gaps disappear when viewed from other
>>> angles.
>>>
>>> Does anyone have any tips on how to fix this? I already tried scaling by
>>> 200 but it does not help.
>>
>> The outer box isn't there but I'm guessing your isosurface is part of
>> CSG, so
>> maybe if you add all_intersections or max_trace 3 (or whatever
>> integer) might
>> fix it.
>>
>
> I tried your suggestion and took the isosurface out of the union it
> belonged to:
>
> isosurface
> {
> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
> threshold 0
> accuracy 0.001
> contained_by
> {
> box {0,2}
> }
> max_gradient 50 // was 20000
> all_intersections
> max_trace 3
> }
>
> But it did not solve the problem. I still get the jagged looking artifacts.
>
>
> Mike
Here it is again with pigment and scaling:
#declare ScaleAmount = 400;
isosurface
{
function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
threshold 0
accuracy 0.001
contained_by
{
box {0,2}
}
max_gradient 50 // was 20000
all_intersections
max_trace 3
pigment {pigmentRGB}
translate <-1/2,-1/2,-1/2>
rotate y * clock * 360
scale ScaleAmount
}
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 8-3-2017 8:08, Mike Horvath wrote:
> On 3/8/2017 12:30 AM, Mike Horvath wrote:
>> On 3/7/2017 4:09 PM, omniverse wrote:
>>> Mike Horvath <mik### [at] gmailcom> wrote:
>>>> I am trying to render the following isosurface.
>>>>
>>>> isosurface
>>>> {
>>>> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
>>>> threshold 0
>>>> accuracy 0.001
>>>> contained_by
>>>> {
>>>> box {0,1}
>>>> }
>>>> max_gradient 50 // was 20000
>>>> }
>>>>
>>>> However, from certain angles there appear gaps or cuts in the surface,
>>>> and you can see inside. The gaps disappear when viewed from other
>>>> angles.
>>>>
>>>> Does anyone have any tips on how to fix this? I already tried
>>>> scaling by
>>>> 200 but it does not help.
>>>
>>> The outer box isn't there but I'm guessing your isosurface is part of
>>> CSG, so
>>> maybe if you add all_intersections or max_trace 3 (or whatever
>>> integer) might
>>> fix it.
>>>
>>
>> I tried your suggestion and took the isosurface out of the union it
>> belonged to:
>>
>> isosurface
>> {
>> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
>> threshold 0
>> accuracy 0.001
>> contained_by
>> {
>> box {0,2}
>> }
>> max_gradient 50 // was 20000
>> all_intersections
>> max_trace 3
>> }
>>
>> But it did not solve the problem. I still get the jagged looking
>> artifacts.
>>
>>
>> Mike
>
> Here it is again with pigment and scaling:
>
> #declare ScaleAmount = 400;
>
> isosurface
> {
> function {fFinal(fInpX(x,y,z),fInpY(x,y,z),fInpZ(x,y,z))}
> threshold 0
> accuracy 0.001
> contained_by
> {
> box {0,2}
> }
> max_gradient 50 // was 20000
> all_intersections
> max_trace 3
> pigment {pigmentRGB}
> translate <-1/2,-1/2,-1/2>
> rotate y * clock * 360
> scale ScaleAmount
> }
>
> Mike
To test this I need the fFinal() fInpX() fInpY() fInpZ() functions too.
--
Thomas
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3/8/2017 2:52 AM, Thomas de Groot wrote:
> To test this I need the fFinal() fInpX() fInpY() fInpZ() functions too.
>
I posted a new thread in p.t.s-f.
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thomas de Groot <tho### [at] degrootorg> wrote:
>
> To test this I need the fFinal() fInpX() fInpY() fInpZ() functions too.
Okay, maybe Thomas has figured this out too. I was just trying to think it out
using other functions and got nowhere but I did suspect something I had happen
before:
I ran your files as animation and found nothing wrong...
except after about clock=0.52 and until about clock=0.72
What's going on is simply a case of max_gradient 50 being too low for that
particular segment of frames.
That isosurface requires up to max_gradient 60 from what I found during that
part of the animation.
Try this instead of max_gradient:
evaluate 15,4,0.7
That will give a minimum gradient value with a multiple of 4 (=60) and change
rate.
Better yet, read about that at:
http://wiki.povray.org/content/Reference:Isosurface
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3/8/2017 4:41 AM, omniverse wrote:
> Thomas de Groot <tho### [at] degrootorg> wrote:
>>
>> To test this I need the fFinal() fInpX() fInpY() fInpZ() functions too.
>
> Okay, maybe Thomas has figured this out too. I was just trying to think it out
> using other functions and got nowhere but I did suspect something I had happen
> before:
>
> I ran your files as animation and found nothing wrong...
> except after about clock=0.52 and until about clock=0.72
>
> What's going on is simply a case of max_gradient 50 being too low for that
> particular segment of frames.
>
> That isosurface requires up to max_gradient 60 from what I found during that
> part of the animation.
>
> Try this instead of max_gradient:
>
> evaluate 15,4,0.7
>
> That will give a minimum gradient value with a multiple of 4 (=60) and change
> rate.
> Better yet, read about that at:
>
> http://wiki.povray.org/content/Reference:Isosurface
>
>
That seems to work. Thank you!
Mike
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 8-3-2017 12:52, Mike Horvath wrote:
> On 3/8/2017 4:41 AM, omniverse wrote:
>> Thomas de Groot <tho### [at] degrootorg> wrote:
>>>
>>> To test this I need the fFinal() fInpX() fInpY() fInpZ() functions too.
>>
>> Okay, maybe Thomas has figured this out too. I was just trying to
>> think it out
>> using other functions and got nowhere but I did suspect something I
>> had happen
>> before:
>>
>> I ran your files as animation and found nothing wrong...
>> except after about clock=0.52 and until about clock=0.72
>>
>> What's going on is simply a case of max_gradient 50 being too low for
>> that
>> particular segment of frames.
>>
>> That isosurface requires up to max_gradient 60 from what I found
>> during that
>> part of the animation.
>>
>> Try this instead of max_gradient:
>>
>> evaluate 15,4,0.7
>>
>> That will give a minimum gradient value with a multiple of 4 (=60) and
>> change
>> rate.
>> Better yet, read about that at:
>>
>> http://wiki.povray.org/content/Reference:Isosurface
>>
>>
>
> That seems to work. Thank you!
>
> Mike
I was not yet that far, but I was thinking in the same direction.
Evaluate is a good tool to use in this context.
--
Thomas
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I haven't had a chance to look over the isosurface functions, but it looks like
the final shape is a parallelpiped.
If so, couldn't you just make a box and shear it in all 3 directions?
Simpler and lots faster, if that's the case.
I enjoy these color models you work on.
They are very pleasing to my eye.
Keep up the good work! :)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|