|
|
I hope somebody can help with this: I have noticed a strange (and in my
opinion
unphysical) behaviour when two absorbing (interior {fade_distance....} like)
objects overlap.
I attach a test scene, with two transparent boxes, with absorbing interior,
one red, the other blue, the red in the front, the blue in the back; as I
move
the red box making it overlap with the blue one, the intersection area
changes
color from
dark violet (no overlap)
blue (slight overlap)
light violet (0.5 overlap)
red (almost completely overlapping, red in the front)
blue (almost complete overlap, red in the back)
red (slight overlap, red in the back)
dark violet (no overlap, red in the back).
It seems to me that there is something wrong in how overlap is handled:
sticking to red in the front, slight overlap case, the ray traverses the
blue box, so it's blue, than gets into the red box, so that it starts to
get red-filtered, but when it gets out of the blue box it behaves as if
it left also the red box, and suffers no more absorption, hence it turns
out to be blue, when it should have been violet.
I tried to figure out in the code how the raytracer tests into which object
it is when it calculate attenuation, but I have no previous knowledge
of PovRay source, and I fear it's beyond my capabilities.
Please tell me if I'm doing something wrong, or if this is
a bug and in that case give me a hint on where I should look in the code
to fix it. thanks a lot
michele ceriotti
>> TEST SCENE ( same result with PoV 3.5 & 3.6, changing IORs or
boxes pigments doesn't affect the problem)
global_settings{ max_trace_level 50 }
light_source {
<-3,10,-10>
color rgb <1,1,1>
}
light_source {
<3,-5,4>
color rgb <1,1,1> *0.5
}
box{
<0.0,1,-2>,<1,4,2>
pigment{rgbt 1.0}
interior{ior 1.00
fade_distance 0.4
fade_power 1000
fade_color <1,0,0>*0.9
}
/* play around with this, moving the
box & changing the overlap between the two*/
translate x*0.1
/******************/
translate z*-1
}
box{
<-1,2,-2>,<0.0,5,2>
pigment{rgbt 1.0}
interior{ior 1.00
fade_distance 0.4
fade_power 1000
fade_color <0,0,1>*0.9
}
translate z*1
}
camera {
location <7, 5, -0>
direction 1.0*z
right x*image_width/image_height
look_at <0.0, 3, 0.0>
}
background { color rgb <1.0,0.8,0.2> }
plane { y ,-0.2
texture{
pigment { checker pigment {rgb 1} pigment{rgb <0,0,0.6>} }
finish {ambient 0.3 diffuse 0.8 }
}
}
/*END TEST*/
Post a reply to this message
|
|