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