This is a 100 frame animation I made of a new thing I did in povray.
This is a single mesh2 object. I modeled it with a routine I wrote in the povray Scene Description Language. What it allows me to do is specify a certain number of "cross sections" or splines, and then it skins or draws a series of triangles between then. The cool thing is that in povray I can then animate the meshes themselves and then I have a "character" that is animatable and made from a single mesh.
Others have done this before. The new thing I have done here is to allow a different cross section at every step. I start out with circles for arms and then make a parallelogram that mimics the shape of a chest.
Persistence of Vision Raytracer SDL posted below:
//povray 3.6 scene file originated by Greg M. Johnson
#include"transforms.inc"
#declare rarm_transform=transform{translate -8*x rotate -45*z*sin(2*pi*clock) translate 8*x}
#declare larm_transform=transform{ translate 8*x rotate 45*z*sin(2*pi*clock) translate -8*x}
//#declare larm_transform=transform{ rotate 30*z*sin(2*pi*clock) }
#declare toppt=vtransform(<-14,0,0>,larm_transform);
#declare numrings=8;
#declare npts=90;//frame_number;
#declare ring=array[numrings+1]
#declare ring[0]=spline{ cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
#declare ring[1]=spline{ cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
#declare ring[2]=spline{cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
#declare bre=0.5*<0,0.5*sin(4*pi*clock),sin(4*pi*clock)>;
#declare ring[3]=spline{linear_spline
0,<-3,0,5>+bre,0.15,<-3,3,1>,0.25,<-3,3,-1>,0.4,<-3,-0,-4>,0.6,<-2.5,-8,-2.5>,0.8,<-2.5,-8,2.5>,0.9,<-2.5,-4,2.5>
0.95,<-3,-2,5>+bre,1.0,<-3,0,5>+bre}
#declare ring[4]=spline{linear_spline
0,<>+bre,0.15,<>,0.25,<>,0.4,<>,0.6,<>,0.8,<>,0.9,<>,
0.95,<3,-2,5>+bre,1.0,<>+bre}
#declare ring[5]=spline{cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
#declare ring[6]=spline{cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
#declare ring[7]=spline{ cubic_spline
#declare n=-1;
#while (n
#declare n=n+1;
#end
}
//#declare botpt=vtransform(<0,-6,0>,chin_transform);
#declare botpt=vtransform(<14,0,0> ,rarm_transform);
#declare themesh=
mesh2{
vertex_vectors{
npts*numrings+2
toppt,
#declare nspacer=0.5;
#declare ringo=0;
#while(ringo
#declare n=n+1;
#end
#declare a=1;
#declare anen=0;
#while(anen
#declare np=0;
#while(np
,
#declare np=np+1;
#end
,
//, //the problem??
, //the problem??
#else
//#//if(nspacer=0)
#declare np=0;
#while(np
,
#declare np=np+1;
#end
//,
//<1,2,0>//
// , //9:
, //9:
// , //
, //,
#end
#declare nspacer=mod(nspacer+0.5,1);
#declare a=a+npts;
#declare anen=anen+1;
#end
#declare n=0;
#while(n
#declare n=n+1;
#end
}
pigment {rgb 1}
}
object{themesh rotate 180*y translate -12*x}
object{themesh rotate -90*x translate 12*y+8*z}
object{themesh rotate -104*y translate 15*x+5*z}
light_source{<0,200,-50> color rgb 1}
light_source{<0,200,0> color rgb x rotate -80*x rotate 45*y}
light_source{<0,200,0> color rgb z rotate -80*x rotate -45*y}
light_source{<0,0,0> color rgb 1 translate 10*x }
background{rgb 1}
No comments:
Post a Comment