|
![](/i/fill.gif) |
"Rafal 'Raf256' Maj" <raf### [at] raf256 com> wrote in message
news:Xns### [at] 204 213 191 226...
> Hello,
> very simple question :
>
> union {
> #declare a = 0.98;
> #declare b = 0.30;
> cylinder { -y, +y*100, 10 pigment { color rgb <a,b,b> } translate z*0 }
> cylinder { -y, +y*100, 10 pigment { color rgb <a,a,b> } translate z*40 }
> cylinder { -y, +y*100, 10 pigment { color rgb <b,a,b> } translate z*80 }
> finish { specular 0.9 roughness 0.02 reflection .5 } // ((1))
> translate <100,0,0>
> }
>
> shouldn't this code set the ((1)) finish to all 3 cyliders in union,
> leaving pigment differnet for each of them ?
>
Nice idea - the trouble is that your pigment statements are not just pigments -
they are expanded to a full texture (including a finish). Therefore your finish
statement has no effect, since it only applies to untextured objects in the
union.
What you need is:
#declare MyFinish = finish { specular 0.9 roughness 0.02 reflection .5 }
union {
#declare a = 0.98;
#declare b = 0.30;
cylinder { -y, +y*100, 10 pigment { color rgb <a,b,b> } finish{MyFinish}
translate z*0 }
cylinder { -y, +y*100, 10 pigment { color rgb <a,a,b> } finish{MyFinish}
translate z*40 }
cylinder { -y, +y*100, 10 pigment { color rgb <b,a,b> } finish{MyFinish}
translate z*80 }
translate <100,0,0>
}
Post a reply to this message
|
![](/i/fill.gif) |