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