POV-Ray : Newsgroups : povray.binaries.images : not sure how to solve this problem Server Time
7 Aug 2024 15:17:47 EDT (-0400)
  not sure how to solve this problem (Message 2 to 11 of 11)  
<<< Previous 1 Messages Goto Initial 10 Messages
From: stm31415
Subject: Re: not sure how to solve this problem
Date: 12 Mar 2006 23:00:01
Message: <web.4414edfae56e389cbfd415560@news.povray.org>
Jim Charter <jrc### [at] msncom> wrote:
> If this has been discussed already I apologize, and/or I am missing
> something obvious.
>
> The object on the left is a csg cylinder
> The object on the right is a isosurface cylinder
>
> The top of the scene was rendered with no assumed_gamma specified
>
> The bottom half of the scene was rendered with no other change that to
> specify assumed_gamma 1.0
>
> So the question is how can I specific assumed_gamma and eliminate the
> artifacting in the shadow?

I believe the problem is with your isosurface, not the gammma. There is
artifacting on the upper half as well. As to waht to do about that, I am
not sure. Are you doing anything odd w/ your functions?

-s
5TF


Post a reply to this message

From: Jim Charter
Subject: Re: not sure how to solve this problem
Date: 12 Mar 2006 23:07:55
Message: <4414f01b$1@news.povray.org>
stm31415 wrote:

> I believe the problem is with your isosurface, not the gammma. There is
> artifacting on the upper half as well. As to waht to do about that, I am
> not sure. Are you doing anything odd w/ your functions?
> 

Don't think so.  Pretty much straight from Mike Williams.

Here's the exact file I tested with:

global_settings {
         assumed_gamma 1.0
}

camera {
   location  vrotate ( <0,0,-12>, <10,0,0> )+<-1,0,0>
   look_at   <0.0, 0.0,  0.0>+<-1,0,0>
   right     x*image_width/image_height
   angle 20
}

light_source {
   0*x                  // light's position (translated below)
   color rgb <1,1,1>    // light's color
   translate vrotate ( <0,0,-20>, <40,60,0> )
}


isosurface {

         function { x*x + z*z - .45*.45 }

         contained_by { box { -1, 1 } }
         accuracy 0.001
         //max_gradient 2.772
         evaluate 5, 1.2, 0.95

         texture{
                pigment {
                         rgb <1,.9,.7>
                }
                finish {
                         ambient 0
                         diffuse 1
                }
         }
}


cylinder {

         <-2,1,0>, <-2,-1,0>, .45

         texture{
                 pigment {
                          rgb <1,.9,.7>
                 }
                 finish {
                          ambient 0
                          diffuse 1
                 }
          }
}

BTW if I set assumed_gamma to 2.2 I get the same result as if
I don't specifiy it at all.


Post a reply to this message

From: Slime
Subject: Re: not sure how to solve this problem
Date: 12 Mar 2006 23:13:19
Message: <4414f15f$1@news.povray.org>
>          accuracy 0.001

Try bringing that down some. Maybe  to 0.0001 or lower.

 - Slime
 [ http://www.slimeland.com/ ]


Post a reply to this message

From: Jim Charter
Subject: Re: not sure how to solve this problem
Date: 12 Mar 2006 23:47:28
Message: <4414f960$1@news.povray.org>
Slime wrote:
>>         accuracy 0.001
> 
> 
> Try bringing that down some. Maybe  to 0.0001 or lower.
> 
thanks Slime, but...

tried 0.000001 with no improvement


Post a reply to this message

From: Slime
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 00:42:00
Message: <44150628$1@news.povray.org>
> tried 0.000001 with no improvement

Mmm. It looks like a really high max_gradient (tried 300) doesn't help
either.

I don't believe this is related to gamma (it just shows up better when gamma
correction is used since that highlights the transition from light to
shadow). It looks like it may be an internal problem with isosurfaces, maybe
related to shadow rays.

 - Slime
 [ http://www.slimeland.com/ ]


Post a reply to this message

From: Mike Williams
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 01:03:38
Message: <i3SbydAikQFEFwFg@econym.demon.co.uk>
The artefacts are entirely in the shadow processing of the isosurface.
The assumed gamma just makes that part of the object bright enough for
them to be visible. You can see the same effect if you change the
ambient to 0.5 or add a second light in an appropriate position.

I've no idea how to fix it.

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: Mike Williams
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 01:15:40
Message: <$3FcCgA+2QFEFwGR@econym.demon.co.uk>
If this effect is causing you problems in a real scene, here's really
ugly workround that will get you going:

#declare my_isosurface = isosurface { ...

object {my_isosurface no_shadow}
object {my_isosurface scale 0.999}

The scale value plus the accuracy value should add up to 1.0 or less, so
scale 0.999 works with your accuracy value of 0.001. If you want more
accurate shadows you can use accuracy 0.00001 and scale 0.99999

Obviously, in your test scene there's no need for the shadow casting
copy, because the shadow isn't case on anything other than itself, and
it's those self shadows that are the problem.

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: Jim Charter
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 02:35:51
Message: <441520d7@news.povray.org>
Mike Williams wrote:
> If this effect is causing you problems in a real scene, here's really
> ugly workround that will get you going:
> 
> #declare my_isosurface = isosurface { ...
> 
> object {my_isosurface no_shadow}
> object {my_isosurface scale 0.999}
> 
> The scale value plus the accuracy value should add up to 1.0 or less, so
> scale 0.999 works with your accuracy value of 0.001. If you want more
> accurate shadows you can use accuracy 0.00001 and scale 0.99999
> 
> Obviously, in your test scene there's no need for the shadow casting
> copy, because the shadow isn't case on anything other than itself, and
> it's those self shadows that are the problem.
> 
Thanks to you and Slime for taking a look.  The first image is a test
from the actual application.

The second is from a quick attempt to apply your workaround but I don't 
think I quite grasped the concept.  Anyway it is apparently to no avail. 
  The actual isosurface function is an IC_Sor definition from 
iso_csg.inc then with some pigment functions combined. So that may be 
why I got the same result. (But as I tried to understand the thinking 
behind your workaround it made me wonder if the threshold value might be 
used.)

Anyway if it doesn't work I'll just have to try another approach.  But 
it makes me wonder why these artifacts don't appear in the iso_wood 
macros for instance.  I can't believe I am the first one down this path.


Post a reply to this message


Attachments:
Download 'img.0029.jpg' (41 KB) Download 'img.0030.jpg' (30 KB)

Preview of image 'img.0029.jpg'
img.0029.jpg

Preview of image 'img.0030.jpg'
img.0030.jpg


 

From: Mike Williams
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 07:44:14
Message: <zoHEWUALaWFEFwmD@econym.demon.co.uk>
Wasn't it Jim Charter who wrote:
>Mike Williams wrote:
>> If this effect is causing you problems in a real scene, here's really
>> ugly workround that will get you going:
>> 
>> #declare my_isosurface = isosurface { ...
>> 
>> object {my_isosurface no_shadow}
>> object {my_isosurface scale 0.999}
>> 
>> The scale value plus the accuracy value should add up to 1.0 or less, so
>> scale 0.999 works with your accuracy value of 0.001. If you want more
>> accurate shadows you can use accuracy 0.00001 and scale 0.99999
>> 
>> Obviously, in your test scene there's no need for the shadow casting
>> copy, because the shadow isn't case on anything other than itself, and
>> it's those self shadows that are the problem.
>> 
>Thanks to you and Slime for taking a look.  The first image is a test
>from the actual application.
>
>The second is from a quick attempt to apply your workaround but I don't 
>think I quite grasped the concept.  Anyway it is apparently to no avail. 

What does your code produce if you just add "no_shadow" to your
isosurface? 

For your cylinder code, adding "no_shadow" clears up the artefacts, but
that would look wrong in a real scene if there was something below the
object onto which a shadow would be expected to be cast.

-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

From: Jim Charter
Subject: Re: not sure how to solve this problem
Date: 13 Mar 2006 10:48:35
Message: <44159453$1@news.povray.org>
Mike Williams wrote:

> 
> What does your code produce if you just add "no_shadow" to your
> isosurface? 
> 
> For your cylinder code, adding "no_shadow" clears up the artefacts, but
> that would look wrong in a real scene if there was something below the
> object onto which a shadow would be expected to be cast.
> 

Oh,...that does seem to work!  Thanks Mike.  The thing is "no_shadow" 
has to be directly in the isosurface { } block.  In my test that didn't 
work, I was applying it in an object wrapper.  A few hours sleep will do 
wonders. ;)


Post a reply to this message

<<< Previous 1 Messages Goto Initial 10 Messages

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