3d/blbman40/bmhair.inc

91 lines
3.4 KiB
PHP

/****************************************************************
Hair Macro for use with "bmpeople.inc" v4.0
refer to "bmmanual.txt" for usage information
*******************************************************************/
#ifndef (BM_Defaults)
#include "bmdefs.inc"
#end
#macro bmhair()
#local NeckTrans=transform {rotate <BM_Neck_Rot.x,0,BM_Neck_Rot.z>}
#local TorsoTrans=transform {translate <0,20,-3> rotate <BM_Torso_Rot.x,0,BM_Torso_Rot.z> translate <0,-20,3>
translate <0,20,0> rotate <0,BM_Torso_Rot.y,0> translate <0,-20,0>
}
#if (BM_Hair_On=1)
union{
#ifdef (Hair_Seed)
#local rr=seed(Hair_Seed);
#else
#local rr=seed(77);
#end
#local tt=0;
#while (tt<20)
#local zz=tt*3+3;
#local cc=0;
#while (cc<zz)
#local yy=cc*360/zz+rand(rr)*6;
#local xx=BM_Hair_Line-sin((yy+15)*pi/30)*BM_Hair_LDpth;
#local hh=vrotate(<0,.8,0>,<tt*xx+rand(rr)*5,yy,45>);
#local hx=hh.x;
#local hy=hh.y;
#local hz=hh.z;
#local dx=hx/50;
#local dy=hy/50*BM_Hair_Hght;
#local dz=hz/50;
#if (BM_Hair_Arch=1 & dx>0)
#local dy=dy+dx;
#local dx=-dx;
#end
#if (hy>-.25)
blob{
threshold .5
#local ll=0;
#local length=BM_Hair_Length-rand(rr)*BM_Hair_Length/5;
#local vv=rand(rr)*length;
#while (ll<length)
sphere{<hx+BM_Hair_Curl*sin((vv+ll)*pi/3),hy,hz+BM_Hair_Curl*cos((vv+ll)*pi/3)>,BM_Hair_Thck/5,1}
#local ll=ll+BM_Hair_Thck;
#local hx=hx+dx;
#local hy=hy+dy;
#local hz=hz+dz;
#local dx=dx*(1-BM_Hair_Wght*2);
#local dy=dy*(1-BM_Hair_Wght/2)-BM_Hair_Wght/20;
#local dz=dz*(1-BM_Hair_Wght);
#if (BM_Hair_Arch=1 & dx>0)
#local dy=dy+0.001;
#if (hx>-.5)
#local hx=hx+dx;
#end
#end
#end
#ifndef (BM_Hair_Tex)
pigment{rgb BM_Hair_Col+<rand(rr)/10,rand(rr)/10,rand(rr)/10>}}
#else
texture {BM_Hair_Tex}
#end
#end
#local cc=cc+1;
#end
#local tt=tt+1;
#end
rotate y*90
rotate BM_Hair_Rot
scale 4.5
#if (BM_Gender=1)
scale <.95,1.1,1>*.9
#end
translate <0,5,-1>
rotate z*BM_Head_Rot.z
rotate x*BM_Head_Rot.x
rotate y*BM_Head_Rot.y
transform NeckTrans
translate <0,-5.5,1>
transform TorsoTrans
}
#else
object {BM_nul}
#end
#end
// End of Hair Macro