/****** * Rayshade 4.0: a fist points its index finger, which then does a * weird spherical thing. * Eli Brandt 7/10/92 *******/ frames 60 shutter 1 define fr1 35 /* frame at which to finish pointing finger */ define zingt 40 /* frame when the zing happens */ define zingend 59 /* frame when it ends */ define zingval (linear((zingt), .1, (zingend), 5)) define zingrad ((zingval) * (zingval)) /*** hand positioning ***/ define pitch (linear(0,10,(fr1),0)) /* degrees above flat */ define yaw 0 /* to right from top */ /*** finger flexion ***/ /* thumb */ define jm0rot (linear(0,50,(fr1),10)) /* middle-tip, degrees */ define jb0rot 30 /* base-middle */ define jh0rot 5 /* base swing */ define thangl 40 /* thumb separation */ define thdepr (linear(0,90,(fr1),50)) /* thumb depression */ /* index finger */ define jm1rot (linear(0,80,(fr1),5)) /* middle-tip, degrees */ define jb1rot (linear(0,100,(fr1),15)) /* base-middle */ define jh1rot (linear(0,75,(fr1),5)) /* hand-base */ /* middle finger */ define jm2rot (linear(0,80,(fr1),50)) /* middle-tip, degrees */ define jb2rot (linear(0,100,(fr1),110)) /* base-middle */ define jh2rot (linear(0,85,(fr1),65)) /* hand-base */ /* ring finger */ define jm3rot (linear(0,75,(fr1),50)) /* middle-tip, degrees */ define jb3rot (linear(0,105,(fr1),95)) /* base-middle */ define jh3rot (linear(0,95,(fr1),75)) /* hand-base */ /* little finger */ define jm4rot (linear(0,85,(fr1),80)) /* middle-tip, degrees */ define jb4rot (linear(0,85,(fr1),80)) /* base-middle */ define jh4rot (linear(0,110,(fr1),80)) /* hand-base */ /*** finger splay ***/ define splay1 (linear(0,1,(fr1),5)) /* in degrees */ define splay2 0 define splay3 -4 define splay4 -7 /*** finger knuckle offset (from middle) ***/ define xofs1 2.3 /* index */ define yofs1 .6 define xofs2 0 /* middle */ define yofs2 0 define xofs3 -1.9 /* ring */ define yofs3 .3 define xofs4 -3.6 /* little */ define yofs4 .5 define xofs0 2.3 /* thumb */ define yofs0 -0.7 define zofs0 -6.8 /*** index finger ***/ define lt1 1.8 /* length of tip, cm */ define lm1 2.3 /* of middle */ define lb1 4.0 /* of base */ define rjt1 .6 /* radius of tip */ define rjm1 .6 /* of middle-tip joint */ define rjb1 .75 /* of base-middle joint */ define rjh1 0.9 /* of hand-base joint */ name Fingertip1 list cone (rjm1) 0 0 0 (rjt1) 0 0 (lt1) sphere (rjt1) 0 0 (lt1) end name Fingermiddle1 list cone (rjb1) 0 0 0 (rjm1) 0 0 (lm1) sphere (rjm1) 0 0 (lm1) end name Fingerbase1 list cone (rjh1) 0 0 0 (rjb1) 0 0 (lb1) sphere (rjb1) 0 0 (lb1) end name Finger1 list list list object Fingertip1 rotate 1 0 0 (jm1rot) translate 0 0 (lm1) object Fingermiddle1 end rotate 1 0 0 (jb1rot) translate 0 0 (lb1) object Fingerbase1 end rotate 1 0 0 (jh1rot) end /*** middle finger ***/ define lt2 1.9 /* length of tip, cm */ define lm2 2.9 /* of middle */ define lb2 4.7 /* of base */ define rjt2 .65 /* radius of tip */ define rjm2 .6 /* of middle-tip joint */ define rjb2 .8 /* of base-middle joint */ define rjh2 1.0 /* of hand-base joint */ name Fingertip2 list cone (rjm2) 0 0 0 (rjt2) 0 0 (lt2) sphere (rjt2) 0 0 (lt2) end name Fingermiddle2 list cone (rjb2) 0 0 0 (rjm2) 0 0 (lm2) sphere (rjm2) 0 0 (lm2) end name Fingerbase2 list cone (rjh2) 0 0 0 (rjb2) 0 0 (lb2) sphere (rjb2) 0 0 (lb2) end name Finger2 list list list object Fingertip2 rotate 1 0 0 (jm2rot) translate 0 0 (lm2) object Fingermiddle2 end rotate 1 0 0 (jb2rot) translate 0 0 (lb2) object Fingerbase2 end rotate 1 0 0 (jh2rot) end /*** ring finger ***/ define lt3 1.9 /* length of tip, cm */ define lm3 2.5 /* of middle */ define lb3 4.2 /* of base */ define rjt3 .65 /* radius of tip */ define rjm3 .58 /* of middle-tip joint */ define rjb3 .75 /* of base-middle joint */ define rjh3 .85 /* of hand-base joint */ name Fingertip3 list cone (rjm3) 0 0 0 (rjt3) 0 0 (lt3) sphere (rjt3) 0 0 (lt3) end name Fingermiddle3 list cone (rjb3) 0 0 0 (rjm3) 0 0 (lm3) sphere (rjm3) 0 0 (lm3) end name Fingerbase3 list cone (rjh3) 0 0 0 (rjb3) 0 0 (lb3) sphere (rjb3) 0 0 (lb3) end name Finger3 list list list object Fingertip3 rotate 1 0 0 (jm3rot) translate 0 0 (lm3) object Fingermiddle3 end rotate 1 0 0 (jb3rot) translate 0 0 (lb3) object Fingerbase3 end rotate 1 0 0 (jh3rot) end /*** little finger ***/ define lt4 1.7 /* length of tip, cm */ define lm4 1.9 /* of middle */ define lb4 3.5 /* of base */ define rjt4 .55 /* radius of tip */ define rjm4 .55 /* of middle-tip joint */ define rjb4 .7 /* of base-middle joint */ define rjh4 .75 /* of hand-base joint */ name Fingertip4 list cone (rjm4) 0 0 0 (rjt4) 0 0 (lt4) sphere (rjt4) 0 0 (lt4) end name Fingermiddle4 list cone (rjb4) 0 0 0 (rjm4) 0 0 (lm4) sphere (rjm4) 0 0 (lm4) end name Fingerbase4 list cone (rjh4) 0 0 0 (rjb4) 0 0 (lb4) sphere (rjb4) 0 0 (lb4) end name Finger4 list list list object Fingertip4 rotate 1 0 0 (jm4rot) translate 0 0 (lm4) object Fingermiddle4 end rotate 1 0 0 (jb4rot) translate 0 0 (lb4) object Fingerbase4 end rotate 1 0 0 (jh4rot) end /*** all fingers ***/ name Fingers list object Finger1 rotate 0 1 0 (splay1) translate (xofs1) 0 (-yofs1) object Finger2 rotate 0 1 0 (splay2) translate (xofs2) 0 (-yofs2) object Finger3 rotate 0 1 0 (splay3) translate (xofs3) 0 (-yofs3) object Finger4 rotate 0 1 0 (splay4) translate (xofs4) 0 (-yofs4) end /*** "palm" ***/ define wristx1 -2.3 define wristz1 -6 define wristr1 2 define wristx2 1.0 define wristz2 -6 define wristr2 2 name Palm list blob 0.6 5 1.3 (xofs1) 0 (-yofs1) 5 1.3 (xofs2) 0 (-yofs2) 5 1.2 (xofs3) 0 (-yofs3) 5 1.1 (xofs4) 0 (-yofs4) 3 0.9 (.5*xofs1) 0 0 3 0.9 (.5*xofs3) 0 0 3 0.9 (.5*(xofs3+xofs4)) 0 (-yofs3) 3 1.0 -3.4 0 -1.2 3 1.1 -2.3 0 -1.0 3 1.2 -1.2 0 -1.1 3 1.3 0 0 -1.2 3 1.2 1.1 0 -1.3 3 1.1 2.3 0 -1.1 cone 1.1 -3.6 0 (-yofs4) (wristr1) (wristx1) 0 (wristz1) sphere (wristr1) (wristx1) 0 (wristz1) cone 1.2 2.3 0 (-yofs1) (wristr2) (wristx2) 0 (wristz2) sphere (wristr2) (wristx2) 0 (wristz2) cone (wristr1) (wristx1) 0 (wristz1) (wristr2) (wristx2) 0 (wristz2) polygon 2.3 1.2 (-yofs1) -3.6 1.1 (-yofs4) (wristx1) (wristr1) (wristz1) (wristx2) (wristr2) (wristz2) polygon (wristx2) (-wristr2) (wristz2) (wristx1) (-wristr1) (wristz1) -3.6 -1.1 (-yofs4) 2.3 -1.2 (-yofs1) sphere 1.8 (.5*(wristx2+xofs0)) (.5*yofs0) (.5*(wristz2+zofs0)) sphere 1.8 (.55*(wristx2+xofs0)) (.6*yofs0) (.5*(wristz2+zofs0)+1) sphere 1.7 (.6*(wristx2+xofs0)) (.7*yofs0) (.5*(wristz2+zofs0)+2) end /*** thumb ***/ define thtipl 2.5 define thtipr .85 define thmidl 2.9 define thmidr .9 define thbasl 4.1 define thbasr 1.2 define thhndr 1.5 name Thumbtip list difference union list cone (thmidr) 0 0 0 (thtipr) 0 0 (thtipl) disc (thmidr) 0 0 0 0 0 -1 disc (thtipr) 0 0 (thtipl) 0 0 1 end sphere (thtipr) 0 0 (thtipl) end sphere 4 0 (4-.4+thtipr) (thtipl) scale 5 1 1 end end name Thumbmiddle list cone (thbasr) 0 0 0 (thmidr) 0 0 (thmidl) sphere (thmidr) 0 0 (thmidl) end name Thumbbase list cone (thhndr) 0 0 0 (thbasr) 0 0 (thbasl) sphere (thbasr) 0 0 (thbasl) sphere (thhndr) 0 0 0 end name Thumbflesh list cone 1.4 (.5*xofs0) (.5*yofs0) (.5*zofs0) 1.0 3.9 0 2.5 sphere 1.4 (.5*xofs0) (.5*yofs0) (.5*zofs0) sphere 1.1 3.9 0 2.5 end name Thumb list list list list object Thumbtip rotate 1 0 0 (jm0rot) translate 0 0 (thmidl) object Thumbmiddle end rotate 1 0 0 (jb0rot) translate 0 0 (thbasl) object Thumbbase end rotate 1 0 0 (jh0rot) rotate 0 1 0 (thangl) rotate 0 0 1 (-thdepr) translate (xofs0) (yofs0) (zofs0) end end /*** wrist ***/ define wristra 2.9 define wristrb 1.8 define wristl 4 name Wrist list list cylinder (wristra) 0 0 (-wristl) 0 0 0 sphere (wristra) 0 0 (-wristl) sphere (wristra) 0 0 0 end scale 1 ((wristrb)/(wristra)) 1 end /*** hand ***/ name Hand list list list object Palm object Thumb object Fingers end translate 0 0 (-wristz1) rotate 1 0 0 (-pitch) rotate 0 1 0 (-yaw) translate (-.5*((wristx1)+(wristx2))) 0 0 object Wrist end translate 0 0 (wristl) end surface Flesh diffuse .7 .4 .4 ambient .1 .1 .1 surface Gray diffuse .5 .5 .5 ambient .1 .1 .1 surface Glow ambient .75 .6 .3 diffuse .3 .2 .1 transp .3 applysurf Flesh object Hand rotate 0 0 1 180 rotate 1 0 0 -90 rotate 0 1 0 30 sphere Glow 1 0 0 0 scale (zingrad) (zingrad) (zingrad) translate -4 17 0 texture sky 1 0.5 2 7 .65 .55 background .2 .3 .4 plane Gray 0 0 0 0 1 0 eyep 5 8 -20 lookp -2 10 0 fov 65 up 0 1 0 light 1 directional 1 3 -2 light .3 point 5 8 -30