|
![](/i/fill.gif) |
/*
On Tue, 06 Apr 1999 19:29:49 -0400, Anthony Bennett
<ben### [at] panama phoenix net> wrote:
>Wouldn't it just be easier and faster to have a predetermined pigment like
>that? If not, then bring on the macro!
No sooner said than done (I had already been working on it.) Just
paste this whole article into POV and render. Scale is a little
funky--the hexes are one unit from point to point. That makes the
calculation of mortar thickness a little tricky but not impossible.
Just divide the thickness you want by .866 and subtract from 1 to
get the cutoff to use in the color_map.
Indentation is ignored for the sake of compactness. Either that or
Tyler Syndrome is contagious.
*/
#macro HexTiles( Map )
#local hexGrad=pigment { gradient x
color_map {Map} scale sqrt(3)/2+.0001}
#local hexBlock=pigment { radial pigment_map{
#local i=0; #while (i<6)
[i/6 hexGrad rotate (30+60*i)*y]
[(i+1)/6 hexGrad rotate (30+60*i)*y]
#local i=i+1; #end}}
radial pigment_map {
[0/3 hexBlock translate <.5,0,-sqrt(3)/2>]
[1/3 hexBlock translate <.5,0,-sqrt(3)/2>]
[1/3 hexBlock translate <-1,0,0>]
[2/3 hexBlock translate <-1,0,0>]
[2/3 hexBlock translate <.5,0,sqrt(3)/2>]
[3/3 hexBlock translate <.5,0,sqrt(3)/2>]
}
translate x
warp {repeat 1.5*x flip x}
warp {repeat .5*sqrt(3)*z flip z}
scale .5
#end
plane { y,0
pigment {HexTiles(color_map{[.95 red .7] [.95 rgb 1]})}
}
camera { location 12*y sky z look_at 0 }
light_source { 6*y rgb 1}
Post a reply to this message
|
![](/i/fill.gif) |