/****** * Rayshade 4.0: a hand in a pond holding a glass sphere. * * Eli Brandt 7/10/92 *******/ /*** hand positioning ***/ define pitch 30 /* degrees above flat */ define yaw 0 /* to right from top */ /*** finger flexion ***/ /* thumb */ define jm0rot 5 /* middle-tip, degrees */ define jb0rot 0 /* base-middle */ define jh0rot 5 /* base swing */ define thangl 40 /* thumb separation */ define thdepr 80 /* thumb depression */ /* index finger */ define jm1rot 5 /* middle-tip, degrees */ define jb1rot 30 /* base-middle */ define jh1rot 10 /* hand-base */ /* middle finger */ define jm2rot 5 /* middle-tip, degrees */ define jb2rot 40 /* base-middle */ define jh2rot 15 /* hand-base */ /* ring finger */ define jm3rot 50 /* middle-tip, degrees */ define jb3rot 110 /* base-middle */ define jh3rot 75 /* hand-base */ /* little finger */ define jm4rot 60 /* middle-tip, degrees */ define jb4rot 90 /* base-middle */ define jh4rot 95 /* hand-base */ /*** finger splay ***/ define splay1 5 /* in degrees */ define splay2 -5 define splay3 -6 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 glass diffuse .08 .08 .08 specular .2 .2 .2 specpow 30 reflect 1. transp 1 body .8 .9 .8 index 1.3 extinct .95 surface silver diffuse .1 .1 .1 specular .8 .8 .8 specpow 30 reflect 1 surface water diffuse 0.17 0.45 0.45 specular 1 1 1 specpow 30 reflect 0.7 surface skysurf ambient 0.1 0.3 0.6 surface cloudsurf ambient 0.8 0.8 0.8 diffuse 0.8 0.8 0.8 applysurf Flesh object Hand rotate 0 0 1 180 rotate 1 0 0 -90 rotate 0 1 0 30 sphere glass 4.5 -2.5 17 0.4 sphere skysurf 2000 0 0 0 plane cloudsurf 0 99 0 0 1 0.07 texture sky 1 0.5 2 7 0.7 0.5 scale 50 50 50 plane water 0 0 0 0 1 0 texture fbmbump 0 0.2 0.5 2 7 scale 3 3 3 /*texture gloss 0.97*/ eyep 5 8 -30 lookp 0 10 0 fov 60 up 0 1 0 light 1 directional 1 3 -2 /*light 1.5 point 10 30 -20*/ light 5 area 10 30 -20 3 0 0 4 0 0 3 4