POV-Ray : Newsgroups : povray.advanced-users : Isosurface issue? Server Time
31 Oct 2024 10:21:45 EDT (-0400)
  Isosurface issue? (Message 1 to 7 of 7)  
From: Woody
Subject: Isosurface issue?
Date: 14 Oct 2007 22:55:00
Message: <web.4712d57b4c6a1def30d4452f0@news.povray.org>
I was testing out some of the Isosurfaces from the documentation and came
across some thing which I'm not sure if its a bug, a limitation, or so I'm
just not doing it right.

The code below renders to the attached image. There seems to be some weird
normals, shading, or with the general shape. But if I change the viewing
coordinates to something else like <3,2,5> everything looks fine.

Can anybody tell me what I'm doing wrong or make any suggestions?

Image at <web.4712c21a4144865430d4452f0@news.povray.org>


#include "colors.inc"

camera {
 location <2,2,2>
 look_at <0,0,0>
}

isosurface{
        function{ abs(x)+abs(y)-1}
        contained_by {box{-1,1}}
        pigment{color White}
}


light_source {
 <2,2,2>
 color White
}


Post a reply to this message

From: Mark Weyer
Subject: Re: Isosurface issue?
Date: 15 Oct 2007 02:35:00
Message: <web.471309f58e5bb9e1fddaa4670@news.povray.org>
> Can anybody tell me what I'm doing wrong or make any suggestions?

> isosurface{
>         function{ abs(x)+abs(y)-1}
>         contained_by {box{-1,1}}
>         pigment{color White}
> }

You have coincident surfaces of the object and its container.
The object would be an infinite bar, something like a
  box {<-1,-1,-infinity> <1,1,infinity>}
Changing the contained_by to
  contained_by {box <-2,-2,-1> <2,2,1>}
should do the trick.


Post a reply to this message

From: Woody
Subject: Re: Isosurface issue?
Date: 15 Oct 2007 07:55:01
Message: <web.471354cd8e5bb9e194e61a50@news.povray.org>
Yeah, I tried changing it and it doesn't seem to do much good.


Post a reply to this message

From: Mark Weyer
Subject: Re: Isosurface issue?
Date: 15 Oct 2007 11:05:01
Message: <web.4713809e8e5bb9e1fddaa4670@news.povray.org>
> > isosurface{
> >         function{ abs(x)+abs(y)-1}
> >         contained_by {box{-1,1}}
> >         pigment{color White}
> > }
>
> The object would be an infinite bar, something like a
>   box {<-1,-1,-infinity> <1,1,infinity>}

Err, sorry. That's wrong. At least, there is a
  scale sqrt(0.5)  rotate 45*z
missing. So, no, it is not a problem of coincident surfaces.

But then, the length of the gradient is sqrt(2) everywhere.
Maybe it is just a matter of increasing max_gradient to 1.5.


Post a reply to this message

From: Lance Birch
Subject: Re: Isosurface issue?
Date: 16 Oct 2007 04:11:32
Message: <47147234$1@news.povray.org>
Woody wrote:
> I was testing out some of the Isosurfaces from the documentation and came
> across some thing which I'm not sure if its a bug, a limitation, or so I'm
> just not doing it right.
> 
> The code below renders to the attached image. There seems to be some weird
> normals, shading, or with the general shape. But if I change the viewing
> coordinates to something else like <3,2,5> everything looks fine.
> 
> Can anybody tell me what I'm doing wrong or make any suggestions?
> 
> Image at <web.4712c21a4144865430d4452f0@news.povray.org>
> 
> 
> #include "colors.inc"
> 
> camera {
>  location <2,2,2>
>  look_at <0,0,0>
> }
> 
> isosurface{
>         function{ abs(x)+abs(y)-1}
>         contained_by {box{-1,1}}
>         pigment{color White}
> }
> 
> 
> light_source {
>  <2,2,2>
>  color White
> }

Woody, I received your bug report to the povray.bugreports group, however 
this is *not* a bug.  The messages output by POV-Ray at the time of 
rendering should provide the clue:

"Shutdown Warning: The maximum gradient found was 1.375, but the 
max_gradient of the isosurface was set to 1.100.  The isosurface may 
contain holes!  Adjust max_gradient to get a proper rendering of the 
isosurface."

Therefore, to resolve the issue you're seeing (and as Mark also noticed) 
you have to include a higher max_gradient value in your isosurface, which 
can be done as follows:

isosurface{
   function{ abs(x)+abs(y)-1}
   contained_by {box{-1,1}}
   max_gradient 1.375
   pigment{color White}
}

I'd recommend checking the isosurfaces area in the documentation to read 
more about max_gradient and why this happens as it's something that needs 
to be watched out for.  Note that the higher the max_gradient setting is, 
the slower the isosurface takes to render, which is why the default value 
of max_gradient is set so low.

As an aside, please ensure in the future when submitting possible bugs to 
the povray.bugreports group that you check that the provided SDL is 
syntactically correct, as the SDL you sent with your post contained a 
syntax error that made it difficult to determine whether the problem you 
were having was with the syntax or with something else.

Kind regards,

Lance Birch.

thezone - thezone.firewave.com.au


Post a reply to this message

From: Alain
Subject: Re: Isosurface issue?
Date: 16 Oct 2007 11:41:27
Message: <4714dba7$1@news.povray.org>
Lance Birch nous apporta ses lumieres en ce 2007/10/16 04:11:
> Woody wrote:
>> I was testing out some of the Isosurfaces from the documentation and came
>> across some thing which I'm not sure if its a bug, a limitation, or so 
>> I'm
>> just not doing it right.
>>
>> The code below renders to the attached image. There seems to be some 
>> weird
>> normals, shading, or with the general shape. But if I change the viewing
>> coordinates to something else like <3,2,5> everything looks fine.
>>
>> Can anybody tell me what I'm doing wrong or make any suggestions?
>>
>> Image at <web.4712c21a4144865430d4452f0@news.povray.org>
>>
>>
>> #include "colors.inc"
>>
>> camera {
>>  location <2,2,2>
>>  look_at <0,0,0>
>> }
>>
>> isosurface{
>>         function{ abs(x)+abs(y)-1}
>>         contained_by {box{-1,1}}
>>         pigment{color White}
>> }
>>
>>
>> light_source {
>>  <2,2,2>
>>  color White
>> }
> 
> Woody, I received your bug report to the povray.bugreports group, 
> however this is *not* a bug.  The messages output by POV-Ray at the time 
> of rendering should provide the clue:
> 
> "Shutdown Warning: The maximum gradient found was 1.375, but the 
> max_gradient of the isosurface was set to 1.100.  The isosurface may 
> contain holes!  Adjust max_gradient to get a proper rendering of the 
> isosurface."
> 
> Therefore, to resolve the issue you're seeing (and as Mark also noticed) 
> you have to include a higher max_gradient value in your isosurface, 
> which can be done as follows:
> 
> isosurface{
>   function{ abs(x)+abs(y)-1}
>   contained_by {box{-1,1}}
>   max_gradient 1.375
>   pigment{color White}
> }
> 
> I'd recommend checking the isosurfaces area in the documentation to read 
> more about max_gradient and why this happens as it's something that 
> needs to be watched out for.  Note that the higher the max_gradient 
> setting is, the slower the isosurface takes to render, which is why the 
> default value of max_gradient is set so low.
> 
> As an aside, please ensure in the future when submitting possible bugs 
> to the povray.bugreports group that you check that the provided SDL is 
> syntactically correct, as the SDL you sent with your post contained a 
> syntax error that made it difficult to determine whether the problem you 
> were having was with the syntax or with something else.
> 
> Kind regards,
> 
> Lance Birch.
> 
> thezone - thezone.firewave.com.au
A hi max_gradient don't always mean slow render, and a small gradient don't 
equate to fast render. A gradient of 1.4 is not large, and in this case, setting 
max_gradient to 1.3 should be enough.
If your function have area of small gradient (close to 1 or less close to the 
tresshold) and area of large gradient (over 1000), THEN you get slow rendering, 
as the low gradient areas get hugely oversampled. A possible solution for that 
can be to use the log of the function as it could compress the hi gradient areas.

-- 
Alain
-------------------------------------------------
WARNING: The consumption of alcohol may cause you to tell your friends over and 
over again that you love them.


Post a reply to this message

From: Lance Birch
Subject: Re: Isosurface issue?
Date: 16 Oct 2007 22:18:20
Message: <471570ec$1@news.povray.org>
Alain wrote:
> Lance Birch nous apporta ses lumieres en ce 2007/10/16 04:11:
>> Woody wrote:
>>> I was testing out some of the Isosurfaces from the documentation and 
>>> came
>>> across some thing which I'm not sure if its a bug, a limitation, or 
>>> so I'm
>>> just not doing it right.
>>>
>>> The code below renders to the attached image. There seems to be some 
>>> weird
>>> normals, shading, or with the general shape. But if I change the viewing
>>> coordinates to something else like <3,2,5> everything looks fine.
>>>
>>> Can anybody tell me what I'm doing wrong or make any suggestions?
>>>
>>> Image at <web.4712c21a4144865430d4452f0@news.povray.org>
>>>
>>>
>>> #include "colors.inc"
>>>
>>> camera {
>>>  location <2,2,2>
>>>  look_at <0,0,0>
>>> }
>>>
>>> isosurface{
>>>         function{ abs(x)+abs(y)-1}
>>>         contained_by {box{-1,1}}
>>>         pigment{color White}
>>> }
>>>
>>>
>>> light_source {
>>>  <2,2,2>
>>>  color White
>>> }
>>
>> Woody, I received your bug report to the povray.bugreports group, 
>> however this is *not* a bug.  The messages output by POV-Ray at the 
>> time of rendering should provide the clue:
>>
>> "Shutdown Warning: The maximum gradient found was 1.375, but the 
>> max_gradient of the isosurface was set to 1.100.  The isosurface may 
>> contain holes!  Adjust max_gradient to get a proper rendering of the 
>> isosurface."
>>
>> Therefore, to resolve the issue you're seeing (and as Mark also 
>> noticed) you have to include a higher max_gradient value in your 
>> isosurface, which can be done as follows:
>>
>> isosurface{
>>   function{ abs(x)+abs(y)-1}
>>   contained_by {box{-1,1}}
>>   max_gradient 1.375
>>   pigment{color White}
>> }
>>
>> I'd recommend checking the isosurfaces area in the documentation to 
>> read more about max_gradient and why this happens as it's something 
>> that needs to be watched out for.  Note that the higher the 
>> max_gradient setting is, the slower the isosurface takes to render, 
>> which is why the default value of max_gradient is set so low.
>>
>> As an aside, please ensure in the future when submitting possible bugs 
>> to the povray.bugreports group that you check that the provided SDL is 
>> syntactically correct, as the SDL you sent with your post contained a 
>> syntax error that made it difficult to determine whether the problem 
>> you were having was with the syntax or with something else.
>>
>> Kind regards,
>>
>> Lance Birch.
>>
>> thezone - thezone.firewave.com.au
> A hi max_gradient don't always mean slow render, and a small gradient 
> don't equate to fast render. A gradient of 1.4 is not large, and in this 
> case, setting max_gradient to 1.3 should be enough.
> If your function have area of small gradient (close to 1 or less close 
> to the tresshold) and area of large gradient (over 1000), THEN you get 
> slow rendering, as the low gradient areas get hugely oversampled. A 
> possible solution for that can be to use the log of the function as it 
> could compress the hi gradient areas.

Hi Alain, that's correct.  I was simply noting that the reason POV-Ray 
uses a low max_gradient *by default* is that a *higher than required* 
max_gradient results in more samples and a slower render.  I noted this in 
case Woody wondered why the default value of max_gradient was so low, 
since he submitted a bug report about his problem.

Regards,

Lance.

thezone - thezone.firewave.com.au


Post a reply to this message

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