|
|
>I need a bit of advice.
Maybe you should try out Christoph's IsoCSG library...
http://www.imagico.de/pov/ic/index.html
#include "iso_csg.inc"
#declare dAngle = 15;
#declare SZ = 1+(360/dAngle);
#declare a_column = array [SZ];
// main column
#declare a_column[0] = IC_Cylinder(<0,0,0>,<0,1,0>,1);
#declare c = 0;
#while (c < 360/dAngle)
// flute
#declare a_column[c+1] =
IC_Rotate(
IC_Translate(
IC_Scale(
IC_Merge2 (
IC_Cylinder(<0,-0.1,0>,<0,0.8,0>,0.1),
IC_Sphere(<0,0.8,0>,0.1)
),
<1,1,0.25>
),
<0,0,-1>
),
<0,c*dAngle,0>
);
#declare c = c+1;
#end
// difference the flutes from the column
#declare f_column = IC_Difference_Array(a_column);
// wrinkle pattern
#declare R_Freq = 2;
#declare R_SZ = 0.025;
#declare f_rough = function {
f_wrinkles(x*R_Freq, y*R_Freq,z*R_Freq)*R_SZ
};
#declare column = isosurface {
function{f_column(x,y,z) + f_rough(x,y,z)}
max_gradient 50
contained_by {box {<-1.1, 0, -1.1>, < 1.1, 1, 1.1>}}
accuracy 1e-3
};
object {column
pigment {Red}
finish {
specular 0.3
roughness 0.01
}
}
Post a reply to this message
|
|