|
![](/i/fill.gif) |
> Following the answers to my question, I give you here the solution I find
> very near to my intentions. Who knows, you may need it yourselves?
>
Good result !
One minor thing is that you use ior in a polygon, which does not
simulate accurately a glass layer. What happens is that the direction of
a ray going through your polygon changes only once, while it changes
twice when going to an actual window. This is caused by the fact that
the polygon does not really have a finite inside... A ray "entering" the
polygon never exits.
If you want to keep the micronormals, and still be able to see the
object outside where they truely are, you could keep a polygon of
"paint" inside a thin block of perfectly transparent glass. Something
such as this:
//----------------------------------------------------------------------
#declare MatGlassBody =
material {
texture {
pigment {
color rgbt t
}
normal {
granite , 0.05
scale 0.001
}
finish {
ambient 0
diffuse 1
brilliance 5
specular 0.6
roughness 0.001
conserve_energy
reflection {
0.1 , 0.1
fresnel on
falloff 1.0
exponent 1.0
metallic 0.0
}
}
}
interior {
ior 1.5
dispersion 1.02
//fade_distance 1.0
//fade_power 1001
}
}
#declare MatGlassLayer =
material {
texture {
pigment {
color rgbt <1.0, 1.0, 1.0, 0.4>
}
}
}
union{
polygon {
5, // number of points
<-0.5, 0>, <0.5, 0>, <0.5, 1>, <-0.5, 1>, <-0.5, 0>
material {MatGlassLayer}
double_illuminate
}
box {
<-0.5, 0, -0.001>, <0.5, 1, 0.001>
material {MatGlassBody}
}
scale 2
rotate -45*y
translate <-1, -1, 1>
}
//----------------------------------------------------------------------
Though it does have strange effects with micronormals, disturbs
radiosity, and renders slower... Depends on the level of realism you
want to achieve, and on your scene; if there is nothing to be seen
outside, the problem will not appear...
Regards
--
Vincent
Post a reply to this message
|
![](/i/fill.gif) |