POV-Ray : Newsgroups : povray.newusers : Strange halo on reflections Server Time
31 Oct 2024 22:20:48 EDT (-0400)
  Strange halo on reflections (Message 1 to 10 of 16)  
Goto Latest 10 Messages Next 6 Messages >>>
From: Crippso
Subject: Strange halo on reflections
Date: 5 Jul 2012 19:05:00
Message: <web.4ff61c88ed9383ae130037650@news.povray.org>
Hi povray people,

in my code below i have camera looking at a diffuse disc. A second disc with
specular reflectance is used to reflect light onto the diffuse disc. When I run
this I get a strange halo around a central bright spot. If I remove the second
disc and point the light direct at my diffuse screen I get a simple spot in the
image with no halo. Any thoughts on what might be causing the halo, and if it
can be removed?

thanks for your help
stu


global_settings
{
   assumed_gamma 1

  photons{count    100000000 max_trace_level 20 adc_bailout 1e-11 jitter 0
gather 500,1000}

}

#macro PhotonTarget(Reflect, Refract, IgnorePhotons)
 photons {
  target
  reflection Reflect
  refraction Refract
  #if(IgnorePhotons=no) collect off #end
 }
#end

//point light at 0,0,0 or at 0,0,-50
light_source{<0,0,-20>, 1 cylinder radius 1 falloff 1 tightness 0 point_at
<0,0,0>}

camera
{
   orthographic
   location <0,0,-20>
   angle 40
   look_at  <0,0,-50>
}
//delete this disc and point light at 0,0,-50 for simple case
disc
{
   <0,0,0> <0,0,1> 50
   pigment{rgb 1}
   finish{ambient 0 reflection{1}}
   PhotonTarget(yes,no,no)
}
disc
{
   <0,0,-50> <0,0,1> 50
   pigment{rgb 1}
   finish{ambient 0 diffuse 1.0}
   PhotonTarget(yes,yes,yes)
}


Post a reply to this message

From: Alain
Subject: Re: Strange halo on reflections
Date: 5 Jul 2012 22:56:30
Message: <4ff653de$1@news.povray.org>

> Hi povray people,
>
> in my code below i have camera looking at a diffuse disc. A second disc with
> specular reflectance is used to reflect light onto the diffuse disc. When I run
> this I get a strange halo around a central bright spot. If I remove the second
> disc and point the light direct at my diffuse screen I get a simple spot in the
> image with no halo. Any thoughts on what might be causing the halo, and if it
> can be removed?
>
> thanks for your help
> stu
>
>
> global_settings
> {
>     assumed_gamma 1
>
>    photons{count    100000000 max_trace_level 20 adc_bailout 1e-11 jitter 0
> gather 500,1000}
>
> }
>
> #macro PhotonTarget(Reflect, Refract, IgnorePhotons)
>   photons {
>    target
>    reflection Reflect
>    refraction Refract
>    #if(IgnorePhotons=no) collect off #end
>   }
> #end
>
> //point light at 0,0,0 or at 0,0,-50
> light_source{<0,0,-20>, 1 cylinder radius 1 falloff 1 tightness 0 point_at
> <0,0,0>}
>
> camera
> {
>     orthographic
>     location <0,0,-20>
>     angle 40
>     look_at  <0,0,-50>
> }
> //delete this disc and point light at 0,0,-50 for simple case
> disc
> {
>     <0,0,0> <0,0,1> 50
>     pigment{rgb 1}
>     finish{ambient 0 reflection{1}}
>     PhotonTarget(yes,no,no)
> }
> disc
> {
>     <0,0,-50> <0,0,1> 50
>     pigment{rgb 1}
>     finish{ambient 0 diffuse 1.0}
>     PhotonTarget(yes,yes,yes)
> }
>
>

Your gather value is to large. Without it, the halo is very small.

Uasualy, you don't need to set gather and let POV-Ray estimate the 
appropriate parameter, whitch it normaly do quite well.

That said, when using photons, you always have some spreading and 
bleeding around sharp bright spots.

Why setting adc_bailout so small? 1e-11 is prety close to the epsilon 
value (a thressold value for considering a very small value as zero).
Commenting it out have no effect on your scene.

You don't need to set the screen object as a target for the photons, it 
will collect them just as well without any photons block.

jitter default to zero and you only need to use it if you want to have 
some random jittering to smooth things out.


Alain


Post a reply to this message

From: Crippso
Subject: Re: Strange halo on reflections
Date: 6 Jul 2012 08:55:00
Message: <web.4ff6dfcd58f7bdbc130037650@news.povray.org>
Thanks Alain

the reason for the large gather value and the low adc_bailout is because I found
that I need these for a the scene I am trying to model. The code I attached in
my first posting was a simple version of this scene - in my main scene the
object that reflects light back to the diffuse screen which is viewed by the
camera is more complex - it is several layers of different ior, and i use
fresnel reflection

stu


Alain <kua### [at] videotronca> wrote:
>
> Your gather value is to large. Without it, the halo is very small.
>
> Uasualy, you don't need to set gather and let POV-Ray estimate the
> appropriate parameter, whitch it normaly do quite well.
>
> That said, when using photons, you always have some spreading and
> bleeding around sharp bright spots.
>
> Why setting adc_bailout so small? 1e-11 is prety close to the epsilon
> value (a thressold value for considering a very small value as zero).
> Commenting it out have no effect on your scene.
>
> You don't need to set the screen object as a target for the photons, it
> will collect them just as well without any photons block.
>
> jitter default to zero and you only need to use it if you want to have
> some random jittering to smooth things out.
>
>
> Alain


Post a reply to this message

From: Alain
Subject: Re: Strange halo on reflections
Date: 6 Jul 2012 21:42:59
Message: <4ff79423$1@news.povray.org>

> Thanks Alain
>
> the reason for the large gather value and the low adc_bailout is because I found
> that I need these for a the scene I am trying to model. The code I attached in
> my first posting was a simple version of this scene - in my main scene the
> object that reflects light back to the diffuse screen which is viewed by the
> camera is more complex - it is several layers of different ior, and i use
> fresnel reflection
>
> stu
>
>

If you just want a very, almost zero, adc_bailout, why not use 
adc_bailout 0. That way, the tracing depth will be controled only by 
max_trace_level, that you can set up to 255.

I don't think that you realy, even with 100 stacked objects having all 
different ior, need to play around with the gather parameter.

Finaly, fresnel only affect the reflectivness of your object reletive to 
it's ior and the angle of the incident rays or photons. It have no 
effect on the photons distribution.
When using fresnel, you should add conserve_energy in the finish of that 
object.

Only the first object to receive the light need the photons block. It 
controlls where the photons are shot. Secondary photons, after any 
refraction of reflection, WILL be affected by any refractive / 
reflective object they emcounter. If you don't want those to collect 
photons and have them be visible on it's surface, add photons{collect off}.

When using count, the photons are distributed between all target 
objects, and any object behind any other will have photons shot toward 
it, but those photons will get intercepted by the intervening object and 
get lost.
It may be why you need 100 millions photons.
Also, if you loose over 90% of your photons, it may explain why you 
needed to play around with gather.
Let say, 20 stacked target objects and the projection plane also set as 
target, means that your count is divided among 21 objects, but only 
those received by the front object realy count.



Alain


Post a reply to this message

From: Crippso
Subject: Re: Strange halo on reflections
Date: 11 Jul 2012 18:15:00
Message: <web.4ffdfa9d58f7bdbc130037650@news.povray.org>
Thanks Alain

thats very helpful advice. I have taken on board your suggestions and get good
scenes now.

One thing I have noticed that is strange in a scene I have created is
absorption. If I shoot photons towards a box with ior = 3.2 that has a thinner
box inside it with same ior but with exponential absorption (alpha) and
thickness (t_box2) I get unexpected results. I use 'difference' to cut two
45degree angles through the two boxes, with the angled sides facing each other
(resulting shape like a truncated pyramid). If I shoot photons so that they hit
an angled side at a position in the midpoint of the absorbing box the photons
are reflected towards the other 45degree face where they are again reflected and
are sent back towards the light source (offset slightly but parallel).

From my results of this it looks like the reflected rays are not absorbed by the
absorbing layer (the path length through the absorber for these photons should
be long because the reflection is in the long dimension of this absorber, rather
than through its smaller thickness).

In a more simple scene without the 'difference' when i shoot rays at the boxes
the returned intensity looks right (absorption is exp(-2*t_box2/alpha) and
multiple reflections seem to be accounted for too).

Is it possible that absorption is calculated in a way that means using
difference to shape an object wont allow correct estimate of pathlength of
photons through the layer?

Alain <kua### [at] videotronca> wrote:

> > Thanks Alain
> >
> > the reason for the large gather value and the low adc_bailout is because I found
> > that I need these for a the scene I am trying to model. The code I attached in
> > my first posting was a simple version of this scene - in my main scene the
> > object that reflects light back to the diffuse screen which is viewed by the
> > camera is more complex - it is several layers of different ior, and i use
> > fresnel reflection
> >
> > stu
> >
> >
>
> If you just want a very, almost zero, adc_bailout, why not use
> adc_bailout 0. That way, the tracing depth will be controled only by
> max_trace_level, that you can set up to 255.
>
> I don't think that you realy, even with 100 stacked objects having all
> different ior, need to play around with the gather parameter.
>
> Finaly, fresnel only affect the reflectivness of your object reletive to
> it's ior and the angle of the incident rays or photons. It have no
> effect on the photons distribution.
> When using fresnel, you should add conserve_energy in the finish of that
> object.
>
> Only the first object to receive the light need the photons block. It
> controlls where the photons are shot. Secondary photons, after any
> refraction of reflection, WILL be affected by any refractive /
> reflective object they emcounter. If you don't want those to collect
> photons and have them be visible on it's surface, add photons{collect off}.
>
> When using count, the photons are distributed between all target
> objects, and any object behind any other will have photons shot toward
> it, but those photons will get intercepted by the intervening object and
> get lost.
> It may be why you need 100 millions photons.
> Also, if you loose over 90% of your photons, it may explain why you
> needed to play around with gather.
> Let say, 20 stacked target objects and the projection plane also set as
> target, means that your count is divided among 21 objects, but only
> those received by the front object realy count.
>
>
>
> Alain


Post a reply to this message

From: clipka
Subject: Re: Strange halo on reflections
Date: 11 Jul 2012 20:26:03
Message: <4ffe199b@news.povray.org>
Am 12.07.2012 00:13, schrieb Crippso:
>
> One thing I have noticed that is strange in a scene I have created is
> absorption. If I shoot photons towards a box with ior = 3.2 that has a thinner
> box inside it with same ior but with exponential absorption (alpha) and
> thickness (t_box2) I get unexpected results. I use 'difference' to cut two
> 45degree angles through the two boxes, with the angled sides facing each other
> (resulting shape like a truncated pyramid). If I shoot photons so that they hit
> an angled side at a position in the midpoint of the absorbing box the photons
> are reflected towards the other 45degree face where they are again reflected and
> are sent back towards the light source (offset slightly but parallel).
>
>  From my results of this it looks like the reflected rays are not absorbed by the
> absorbing layer (the path length through the absorber for these photons should
> be long because the reflection is in the long dimension of this absorber, rather
> than through its smaller thickness).

For a diagnosis of the issue, it would probably help a lot to see the 
corresponding scene code.


Post a reply to this message

From: Crippso
Subject: Re: Strange halo on reflections
Date: 12 Jul 2012 03:50:01
Message: <web.4ffe814058f7bdbc60b91f590@news.povray.org>
Hi clipka

code attached. Its a bit detailed but basically I pass a light through a slit
towards the object I described. The slit is positioned using the xscan variable.
If xscan = 4.0 the narrow beam of light will hit a 45degree side at a position
where the reflection will be through the absorber. Therefore I expect the light
that is reflected to be dull. When xscan = 3.0 the reflection doesnt travel
along the absorber so the reflection should be brighter. However if you run the
scene with both xscan values the brightness of the reflection looks about the
same.

#declare pitch = 15.0;   //pitch
#declare t_st = 6.0;    // front face of absorber
#declare t_abs = 2.0; // absorber thickness
#declare t_back = 9.0; // cmt thickness
#declare Rd = 5.0; //etch depth
#declare n = 0.5; // width of etch at bottom
#declare m = pitch-n-2*Rd; // mesa top size - this formula gives a 45deg slope
on side walls
//#declare m = 6; //mesa top size
#declare b = m; // indium bump size
#declare etch = pitch-m; // width of etch at top
#declare bumpz = t_back-1e-3; // front face of bump




#declare t_ol = 0.1; //an overlap between interfaces required by povray


#declare extent = 100; // x and y extent of 'array' - large enough to fit a 3x3
grid of pixels in

#declare xscan = 3.0;//clock/10;  //scan of slit across pixel

#declare slit=0.2; //slit thickness


#declare xoffset = 0;    //multiples of pitch offset
#declare yoffset = 0;    //multiples of pitch offset

#declare cdte_ior = 2.68;
#declare cmt_ior = 3.2;

#declare cmt_abs = 2.500;


#declare zq1 = t_back-Rd;   // z pos of cutaway bottom (etch bottom)
#declare zq2 = t_back+t_ol; // z pos of cutaway top
#declare slp = 2*Rd/(etch-n); // slope of mesa side

#declare val1 = (etch/2)+(zq2-t_back)/slp; // x or y pos of cutaway top



#declare beamsize = 2*sqrt(2)*pitch;

#default {finish {ambient 0 diffuse 0}}

global_settings
{
   assumed_gamma 1

   //photons{count 2000000000 max_trace_level 20 adc_bailout 1e-11 jitter 0
gather 5000,8000}
  photons{count 100000000 max_trace_level 20 adc_bailout 1e-11 jitter 0
}//gather 500,1000}

}

#macro PhotonTarget(isTarget, Reflect, Refract, DontIgnorePhotons)
 photons {
  #if(isTarget=yes) target #end
  reflection Reflect
  refraction Refract
  #if(DontIgnorePhotons=no) collect off #end
 }
#end

camera
{
   orthographic
   location <0,0,-20>
   angle 100
   look_at  <0,0,-50>

}

/*camera
{
   orthographic
   location <0,0,-30>
   angle 100
   look_at  <0,0,0>

}*/

light_source{<xscan,0,-20>, 1 cylinder radius beamsize falloff beamsize
tightness 0 point_at <xscan,0,t_st>}


#declare movpelayer =
union{

object{

box
{
   <-extent,-extent,0> <extent,extent,t_back>
   pigment{rgbt 1}
   finish
   {
     reflection{0,1 fresnel}
     conserve_energy
   }
   interior{ior cmt_ior fade_distance 1000 fade_power 1000}
   PhotonTarget(yes, yes, yes, no)
}

}

object{

box
{
   <-extent,-extent,t_st> <extent,extent,t_st+t_abs>
   pigment{rgbt 1}
   finish
   {
     reflection{0,1 fresnel}
     conserve_energy
   }
   interior{ior cmt_ior fade_distance cmt_abs fade_power 1000}    // Absorber
Layer
   PhotonTarget(no, yes, yes, no)
}
}

}

#declare etch1 =

merge{
      object{
         prism {
           linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <+pitch/2+xoffset*pitch/2-n/2,zq1>,
<+pitch/2+xoffset*pitch/2+n/2,zq1>, <+pitch/2+xoffset*pitch/2+val1,zq2>,
<+pitch/2+xoffset*pitch/2-val1,zq2>, <+pitch/2+xoffset*pitch/2-n/2,zq1>
            }
         //rotate<0,0,0>
         //translate<+pitch/2+xoffset*pitch/2,0,t_st+t_abs+t_con+1e-3>
         texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
         }

      object{
         prism {
           linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <-pitch/2+xoffset*pitch/2-n/2,zq1>,
<-pitch/2+xoffset*pitch/2+n/2,zq1>, <-pitch/2+xoffset*pitch/2+val1,zq2>,
<-pitch/2+xoffset*pitch/2-val1,zq2>, <-pitch/2+xoffset*pitch/2-n/2,zq1>
            }
          //rotate<0,0,0>
          //translate<-pitch/2+xoffset*pitch/2,0,t_st+t_abs+t_con+1e-3>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }

       object{
         prism {
           linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <pitch+pitch/2+xoffset*pitch/2-n/2,zq1>,
<pitch+pitch/2+xoffset*pitch/2+n/2,zq1>,
<pitch+pitch/2+xoffset*pitch/2+val1,zq2>,
<pitch+pitch/2+xoffset*pitch/2-val1,zq2>,
<pitch+pitch/2+xoffset*pitch/2-n/2,zq1>
            }
         //rotate<0,0,0>
         //translate<+pitch/2+xoffset*pitch/2,0,t_st+t_abs+t_con+1e-3>
         texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
         }

       object{
         prism {
           linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <-pitch-pitch/2+xoffset*pitch/2-n/2,zq1>,
<-pitch-pitch/2+xoffset*pitch/2+n/2,zq1>,
<-pitch-pitch/2+xoffset*pitch/2+val1,zq2>,
<-pitch-pitch/2+xoffset*pitch/2-val1,zq2>,
<-pitch-pitch/2+xoffset*pitch/2-n/2,zq1>
            }
          //rotate<0,0,0>
          //translate<-pitch/2+xoffset*pitch/2,0,t_st+t_abs+t_con+1e-3>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }

      object{
         prism {
           linear_sweep linear_spline
           -extent, // sweep the following shape from here ...
           extent, // ... up through here
            5,
            <-n/2,zq1>, <+n/2,zq1>, <+val1,zq2>, <-val1,zq2>, <-n/2,zq1>
            }
          rotate<0,0,90>
          translate<0,+pitch/2+yoffset*pitch/2,0>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }

      object{
         prism {
            linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <-n/2,zq1>, <+n/2,zq1>, <+val1,zq2>, <-val1,zq2>, <-n/2,zq1>
            }
          rotate<0,0,90>
          translate<0,-pitch/2+yoffset*pitch/2,0>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }

       object{
         prism {
           linear_sweep linear_spline
           -extent, // sweep the following shape from here ...
           extent, // ... up through here
            5,
            <-n/2,zq1>, <+n/2,zq1>, <+val1,zq2>, <-val1,zq2>, <-n/2,zq1>
            }
          rotate<0,0,90>
          translate<0,pitch+pitch/2+yoffset*pitch/2,0>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }

       object{
         prism {
            linear_sweep linear_spline
            -extent, // sweep the following shape from here ...
            extent, // ... up through here
            5,
            <-n/2,zq1>, <+n/2,zq1>, <+val1,zq2>, <-val1,zq2>, <-n/2,zq1>
            }
          rotate<0,0,90>
          translate<0,-pitch-pitch/2+yoffset*pitch/2,0>
          texture {pigment {rgbt 1}
       finish {reflection {0,1 fresnel} conserve_energy  }  }
       interior { ior 1 fade_distance 1000 fade_power 1000 }
       PhotonTarget(no, yes, yes, no)
          }


    }



#declare bump =
object{
   box{<-b/2,-b/2,-b/2>,<b/2,b/2,b/2>}
   texture {pigment {rgb 1}}
   finish {reflection {1} }
   PhotonTarget(no, yes, no, no)
}


//object{movpelayer}
//object{etch1}
//object{etch2}



difference{
       object{movpelayer}
       object{etch1}
       cutaway_textures
}



object{bump translate <0+xoffset*pitch/2,0,b/2+bumpz>}
object{bump translate <+pitch+xoffset*pitch/2,0,b/2+bumpz>}
object{bump translate <-pitch+xoffset*pitch/2,0,b/2+bumpz>}

object{bump translate <0+xoffset*pitch/2,pitch,b/2+bumpz>}
object{bump translate <+pitch+xoffset*pitch/2,pitch,b/2+bumpz>}
object{bump translate <-pitch+xoffset*pitch/2,pitch,b/2+bumpz>}

object{bump translate <0+xoffset*pitch/2,-pitch,b/2+bumpz>}
object{bump translate <+pitch+xoffset*pitch/2,-pitch,b/2+bumpz>}
object{bump translate <-pitch+xoffset*pitch/2,-pitch,b/2+bumpz>}



plane{z,-0.1 clipped_by{box{<-100+xscan,-100,-0.11><-slit/2+xscan,100,-0.09>}}
  texture{
    pigment{rgbt 1}
    finish{ambient 0 diffuse 0}
  }
  interior_texture{
    pigment{rgb 1}
    finish{ambient 0 diffuse 0}
  }
  PhotonTarget(no, yes, yes, no)
}

plane{z,-0.1 clipped_by{box{<100+xscan,-100,-0.11><slit/2+xscan,100,-0.09>}}
  texture{
    pigment{rgbt 1}
    finish{ambient 0 diffuse 0}
  }
  interior_texture{
    pigment{rgb 1}
    finish{ambient 0 diffuse 0}
  }
  PhotonTarget(no, yes, yes, no)
}


/*
object{  //This is a reference object to see the size of things
 box{<-m/2,-m/2,-49.7>,<m/2,m/2,-49.8>}
 texture {pigment {rgb 1}}
 finish {emission 1 diffuse 0}
}

object{  //This is a reference object to see the size of things
 box{<-pitch/2,-pitch/2,-49.8>,<pitch/2,pitch/2,-49.9>}
 texture {pigment {rgb <.3,.1,.9>}}
 finish {emission 1 diffuse 0}
}
*/



disc
{
   <0,0,-50> <0,0,1> 50
   pigment{rgb 1}
   finish{diffuse 1.0}
}


clipka <ano### [at] anonymousorg> wrote:
> Am 12.07.2012 00:13, schrieb Crippso:
> >
> For a diagnosis of the issue, it would probably help a lot to see the
> corresponding scene code.


Post a reply to this message

From: clipka
Subject: Re: Strange halo on reflections
Date: 13 Jul 2012 11:22:56
Message: <50003d50$1@news.povray.org>
Am 12.07.2012 00:13, schrieb Crippso:

> One thing I have noticed that is strange in a scene I have created is
> absorption. If I shoot photons towards a box with ior = 3.2 that has a thinner
> box inside it with same ior but with exponential absorption (alpha) and
> thickness (t_box2) I get unexpected results. I use 'difference' to cut two
> 45degree angles through the two boxes, with the angled sides facing each other
> (resulting shape like a truncated pyramid). If I shoot photons so that they hit
> an angled side at a position in the midpoint of the absorbing box the photons
> are reflected towards the other 45degree face where they are again reflected and
> are sent back towards the light source (offset slightly but parallel).
>
>  From my results of this it looks like the reflected rays are not absorbed by the
> absorbing layer (the path length through the absorber for these photons should
> be long because the reflection is in the long dimension of this absorber, rather
> than through its smaller thickness).

Examining your problem, I did indeed find a bug in the handling of the 
interior fade feature (wrong interior being applied under certain 
circumstances), which I suspect to be relevant in your case. (I also 
found a flaw regarding total internal reflections, but so far I did not 
manage to come up with a situation where it would manifest as a bug, so 
that one can probably be ruled out.)

The interior fade bug is also present in POV-Ray 3.6.2, so I don't think 
it will be fixed in POV-Ray 3.7.0 release proper.

One possible workaround might be to use media instead.


Post a reply to this message

From: Crippso
Subject: Re: Strange halo on reflections
Date: 13 Jul 2012 11:45:00
Message: <web.5000421a58f7bdbc130037650@news.povray.org>
Thanks for looking in to this clipka,

can you explain a little more about how i could use media as a workaround?

also, is the bug regarding TIR easy to explain? I will be relying on TIR in my
scenes which will have different angles than those in the code I included in my
earlier message. If it might go wrong its useful to know before so I can keep an
eye out for problems

stu



clipka <ano### [at] anonymousorg> wrote:

>
> Examining your problem, I did indeed find a bug in the handling of the
> interior fade feature (wrong interior being applied under certain
> circumstances), which I suspect to be relevant in your case. (I also
> found a flaw regarding total internal reflections, but so far I did not
> manage to come up with a situation where it would manifest as a bug, so
> that one can probably be ruled out.)
>
> The interior fade bug is also present in POV-Ray 3.6.2, so I don't think
> it will be fixed in POV-Ray 3.7.0 release proper.
>
> One possible workaround might be to use media instead.


Post a reply to this message

From: Alain
Subject: Re: Strange halo on reflections
Date: 13 Jul 2012 11:54:36
Message: <500044bc@news.povray.org>

> Thanks for looking in to this clipka,
>
> can you explain a little more about how i could use media as a workaround?
>
> also, is the bug regarding TIR easy to explain? I will be relying on TIR in my
> scenes which will have different angles than those in the code I included in my
> earlier message. If it might go wrong its useful to know before so I can keep an
> eye out for problems
>
> stu
>
>
>
> clipka <ano### [at] anonymousorg> wrote:
>
>>
>> Examining your problem, I did indeed find a bug in the handling of the
>> interior fade feature (wrong interior being applied under certain
>> circumstances), which I suspect to be relevant in your case. (I also
>> found a flaw regarding total internal reflections, but so far I did not
>> manage to come up with a situation where it would manifest as a bug, so
>> that one can probably be ruled out.)
>>
>> The interior fade bug is also present in POV-Ray 3.6.2, so I don't think
>> it will be fixed in POV-Ray 3.7.0 release proper.
>>
>> One possible workaround might be to use media instead.
>
>
>
>
You add "hollow" to the object. This enable the object to contain a media.
Next, in the interior block, you add
media{absorbtion Colour}

If you want to let the red pass but absorb the green and blue, you need 
{absorbtion <0,1,1>}

If you also use fade_dolor Colour, use <1,1,1>-Colour for the media.



Alain


Post a reply to this message

Goto Latest 10 Messages Next 6 Messages >>>

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