#version unofficial MegaPov 0.5; #include "colors.inc" #include "metals.inc" #macro Reorient(Axis1,Axis2) #declare vX1=vnormalize(Axis1); //john vansickle #declare vX2=vnormalize(Axis2); #declare vY=vnormalize(vcross(vX1,vX2)); #declare vZ1=vnormalize(vcross(vX1,vY)); #declare vZ2=vnormalize(vcross(vX2,vY)); matrix < vX1.x, vY.x,vZ1.x, vX1.y,vY.y,vZ1.y, vX1.z,vY.z, vZ1.z, 0,0,0 > matrix < vX2.x,vX2.y,vX2.z, vY.x,vY.y, vY.z, vZ2.x,vZ2.y,vZ2.z, 0,0,0 > #end #macro Spherer(MyObject,radii) union{ //radii is the radius of sphere for structure // by Greg M. Johnson 2000 #declare MyObject=object{MyObject Reorient(<1,1,1>,y)} // this aligns dense packed planes w/ y normal. #local MaxExt=max_extent(MyObject); #local MinExt=min_extent(MyObject); #local minx=MinExt.x; #local miny=MinExt.y; #local minz=MinExt.z; #local maxx=MaxExt.x; #local maxy=MaxExt.y; #local maxz=MaxExt.z; #declare obfun=pigment {object {MyObject color Black color White}} #local summy=0; #local lx=(maxx-minx); #local ly=(maxy-miny); #local lz=(maxz-minz); #local dx=2*(2^0.5)*radii; #local dy=2*(2^0.5)*radii; #local dz=2*(2^0.5)*radii; #local xinterval=1+int(lx/dx); #local yinterval=1+int(ly/dy); #local zinterval=1+int(lz/dz); #local dd=array[5] #local drr=(2^0.5)*radii; #local dd[1]=<0,0,0>; #local dd[2]=<0,drr,drr>; #local dd[3]=; #local dd[4]=; #local ix=0; #while(ix; #local blank=eval_pigment(obfun,place); #if (blank.x>0) sphere {place,radii*1} #end #declare nnnn=nnnn+1; #end #local iz=iz+1; #end #local iy=iy+1; #end #local ix=ix+1; #end pigment{SeaGreen} finish{ambient 0.1} Reorient(y,<1,1,1>) } #end //-----END OF MACRO, EXAMPLE OF USE-------------- #declare MyObject= text { ttf// "gilu____"// "timrom.ttf" "pterandon" .10, 0 pigment { Red } scale 40 translate <-80.8,.0,0> } Spherer(MyObject,.5) camera{ location <-300,80,-200 > look_at <-20,0,0> //rotate <0,-,0> angle 17 } //object{MyObject} sky_sphere{ pigment{ //function{noise3d} wrinkles pigment_map{ [0 White/2+Blue/2] [1 Blue] } scale 0.1 } } light_source{<-170,1200,-120>rgb .85} light_source{<10,-200,-50>rgb .1}