Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
4274c0242e |
Before Width: | Height: | Size: 208 KiB |
|
@ -1,290 +0,0 @@
|
|||
/***************************************************************
|
||||
___ _ _ __ __
|
||||
| _ ) |___| |__| \/ |__ _ _ _
|
||||
| _ \ / _ \ '_ \ |\/| / _` | ' \ v4.0
|
||||
|___/_\___/_.__/_| |_\__,_|_||_|
|
||||
/ __| |_ _ _ __| (_)___
|
||||
\__ \ _| || / _` | / _ \
|
||||
|___/\__|\_,_\__,_|_\___/
|
||||
For use with "bmpeople.inc"
|
||||
|
||||
Refer to "bmmanual.txt" for full usage details
|
||||
|
||||
****************************************************************
|
||||
|
||||
B L O B M A N S A M P L E P O S E S
|
||||
|
||||
Set Pose_Studio to 'no' to see pre-defined poses set PoseNo
|
||||
for the pose you wish to try.
|
||||
|
||||
PoseNo PoseNo
|
||||
0 = Standing Relaxed 6 = "We're Not Worthy"
|
||||
1 = Standing Hands on Hips 7 = Hand Stand
|
||||
2 = Meditation 8 = Sun Bathing
|
||||
3 = Sitting at Table/Piano etc 9 = Surfer
|
||||
4 = Gunfighter 10 = Reclined (Male)
|
||||
5 = Praying on Knees 11 = Reclined (Female)
|
||||
|
||||
If you wish to experiment with Blob Man Studio (below) set
|
||||
Pose_Studio to 'yes'.
|
||||
****************************************************************/
|
||||
#declare Pose_Studio=yes;
|
||||
#declare BM_PoseNo=0; // If Pose_Studio is set to "no" set this to
|
||||
// a Pose Number from the list above.
|
||||
|
||||
/****************************************************************
|
||||
General Settings used for Pose Studio and Pre-Defined Poses
|
||||
*****************************************************************/
|
||||
#declare BM_Gender = 1; // Male=0, Female=1
|
||||
#declare BM_EyeCol = <.22,.69,.87>; // Iris Colour of eye (<r,g,b>) - ie. <.22,.69,.87> = Blue
|
||||
#declare BM_Hair_Col = <.6,.5,.4>; // Hair Colour <r,g,b>
|
||||
#declare BM_Nose = 0.5; // Nose Size. Range: 0 - 1.25 Default : 0.5
|
||||
|
||||
#declare Costume = "lft.cdf" // Name of Costume Definition File eg. "sample.cdf"
|
||||
|
||||
#declare Background = <.5,.5,.5>; // <r,g,b> for Studio Background colour.
|
||||
|
||||
#declare BM_DeBug = off; // Puts Visible Locators at ends of Limbs
|
||||
// useful for object positioning.
|
||||
|
||||
/****************************************************************
|
||||
|
||||
B L O B M A N S T U D I O
|
||||
|
||||
Change the settings below to create your own poses.
|
||||
|
||||
****************************************************************/
|
||||
|
||||
#include "bmpeople.inc"
|
||||
|
||||
#if (Pose_Studio=yes)
|
||||
/****************************************************************
|
||||
Head Settings
|
||||
*****************************************************************/
|
||||
|
||||
#declare BM_Head_Rot = <0,0,0>; // x = Head position Front to Back
|
||||
// y = Head rotation Left to Right
|
||||
// z = Head position Right Side to Left Side
|
||||
|
||||
/****************************************************************
|
||||
Torso Settings
|
||||
Arm Rotation Vectors <X,Y,Z>
|
||||
<0,0,0> is pointing straight down
|
||||
X= Back(-) to Front(+)
|
||||
Y= Twist Left(-), Right (+)
|
||||
Z= Side to Side Lift Right(-), Left(+)
|
||||
*****************************************************************/
|
||||
|
||||
#declare BM_Neck_Rot = <-10,0,0>; // Rotation vector for the neck (Note: "y" is not used)
|
||||
#declare BM_Torso_Rot= <-10,0,0>; // Rotation vector for the Upper Torso
|
||||
|
||||
#declare BM_RA_S2E = <-20,0,-8>; // Right Upperarm
|
||||
#declare BM_RA_E2W = <-20+20,0,-3>; // Right Forearm
|
||||
#declare BM_RH_Rot = <0,0,0>; // Right Hand
|
||||
|
||||
#declare BM_LA_S2E = <20,0,8>; // Left Upperarm
|
||||
#declare BM_LA_E2W = <20+20,0,3>; // Left Forearm
|
||||
#declare BM_LH_Rot = <0,0,0>; // Left Hand
|
||||
|
||||
#declare BM_RL_H2K = <30,0,-5>; // Right Thigh
|
||||
#declare BM_RL_K2A = <15,0,0>; // Right Lower Leg
|
||||
#declare BM_RF_Rot = <0,0,0>; // Right Foot
|
||||
|
||||
#declare BM_LL_H2K = <0,0,5>; // Left Thigh
|
||||
#declare BM_LL_K2A = <-30,0,0>; // Left Lower Leg
|
||||
#declare BM_LF_Rot = <15,0,0>; // Left Foot
|
||||
|
||||
/****************************************************************
|
||||
Hand Settings
|
||||
Hand Rotation Vectors <X,Y,Z>
|
||||
<0,0,0> - fingers pointing down with thumbs foward.
|
||||
*****************************************************************/
|
||||
// Right Hand
|
||||
#declare BM_RFP_Pos = < 5, 45, 5, 0>; // Pinky Finger
|
||||
#declare BM_RFR_Pos = < 10, 30, 5, 0>; // Ring Finger
|
||||
#declare BM_RFM_Pos = < 5, 15, 5, 0>; // Middle Finger
|
||||
#declare BM_RFI_Pos = < 0, 10, 0, 0>; // Index Finger
|
||||
#declare BM_RFT_Pos = < 0,-10, 5, 10>; // Thumb
|
||||
|
||||
// Left Hand
|
||||
#declare BM_LFP_Pos = < 5, 45, 5, 0>; // Pinky Finger
|
||||
#declare BM_LFR_Pos = < 10, 30, 5, 0>; // Ring Finger
|
||||
#declare BM_LFM_Pos = < 5, 15, 5, 0>; // Middle Finger
|
||||
#declare BM_LFI_Pos = < 0, 10, 0, 0>; // Index Finger
|
||||
#declare BM_LFT_Pos = < 0,-10, 5, 10>; // Thumb
|
||||
|
||||
/****************************************************************
|
||||
Foot Settings
|
||||
Foot Rotation Vectors <X,Y,Z>
|
||||
<0,0,0> - toes pointing forward
|
||||
*****************************************************************/
|
||||
|
||||
#declare BM_Toe_Angle =<15,0,0>; // x = Left Foot
|
||||
// y = ** Not Used **
|
||||
// z = Right Foot
|
||||
|
||||
/****************************************************************
|
||||
Hair Settings
|
||||
Note: Hair drastically increases the parse time !
|
||||
*****************************************************************/
|
||||
#declare BM_Hair_On = 1; // Hair (1) - No Hair (0)
|
||||
#declare BM_Hair_Rot = <-20,0,0>; // Hair Rotation - Standard <0,0,0>
|
||||
#declare BM_Hair_Arch = 0; // Arch hairline over head in line with ears (1) or Not (0)
|
||||
#declare BM_Hair_Thck = 0.20; // Hair Thickness <0.15 to 0.5> - Standard: 0.25
|
||||
#declare BM_Hair_Line = 4; // Hair Line Height (Best Settings 3 to 6) - Standard: 5
|
||||
#declare BM_Hair_LDpth = 0.3; // Hairline profile Depth (Range: 0-Straight Fringe to 1-Widows Peak) - standard: 0.7
|
||||
#declare BM_Hair_Wght = 0.015; // Hair Weight (Range 0.005 to 0.05) - Standard: 0.01
|
||||
#declare BM_Hair_Hght = 1.5; // Hair Height (Range 1 to 2) - Standard: 1
|
||||
#declare BM_Hair_Length= 15; // Hair Length (1 to 20) - Standard: 10
|
||||
#declare BM_Hair_Curl = 0.00; // Curliness (Range 0-Straight to 0.1-Curly) - Standard: 0.05
|
||||
|
||||
/****************************************************************
|
||||
*****************************************************************
|
||||
|
||||
*****************************************************************
|
||||
Write settings to external files.
|
||||
*****************************************************************/
|
||||
#fopen file "bmarray.txt" write
|
||||
#write (file, "/************************************************************\n",
|
||||
" Blob Man Pose File for use with Blob_Man.inc\n",
|
||||
" This file was created automatically by Blob_Man_Studio.POV\n",
|
||||
"*************************************************************/\n\n")
|
||||
#write (file, "#declare BM_Pose=array[1][17]\n",
|
||||
" {\n",
|
||||
" { ",BM_Head_Rot,",",BM_Neck_Rot,",",BM_Torso_Rot,",",BM_RA_S2E,",",BM_RA_E2W,",",BM_LA_S2E,",",BM_LA_E2W,",",BM_RL_H2K,",",BM_RL_K2A,",",BM_LL_H2K,",",BM_LL_K2A,",",BM_RF_Rot,",",BM_LF_Rot,",",BM_Toe_Angle,",",BM_RH_Rot,",",BM_LH_Rot,", <0,0,1> },\n",
|
||||
" }\n\n")
|
||||
#write (file, "#declare BM_Hands=array[2][5]\n",
|
||||
" {\n",
|
||||
" { ",BM_LFP_Pos,",",BM_LFR_Pos,",",BM_LFM_Pos,",",BM_LFI_Pos,",",BM_LFT_Pos," },\n",
|
||||
" { ",BM_RFP_Pos,",",BM_RFR_Pos,",",BM_RFM_Pos,",",BM_RFI_Pos,",",BM_RFT_Pos," },\n",
|
||||
" }\n\n")
|
||||
#write (file, "#declare BM_Pose_Hair_1=array[1][1]\n",
|
||||
" {\n",
|
||||
" { ",BM_Hair_Rot," },\n",
|
||||
" }\n\n")
|
||||
#write (file, "#declare BM_Pose_Hair_2=array[1][9]\n",
|
||||
" {\n",
|
||||
" { ",BM_Hair_On,",",BM_Hair_Arch,",",BM_Hair_Thck,",",BM_Hair_Line,",",BM_Hair_LDpth,",",BM_Hair_Wght,",",BM_Hair_Hght,",",BM_Hair_Length,",",BM_Hair_Curl," },\n",
|
||||
" }\n")
|
||||
#write (file, "// End of File")
|
||||
#fclose file
|
||||
|
||||
#fopen file "bmdeclar.txt" write
|
||||
#write (file, "/************************************************************\n",
|
||||
" Blob Man Pose File for use with bmpeople.inc\n",
|
||||
" This file was created automatically by Blob_Man_Studio.POV\n",
|
||||
"*************************************************************/\n\n")
|
||||
#write (file, " #declare BM_Head_Rot = ",BM_Head_Rot,";\n")
|
||||
#write (file, " #declare BM_Neck_Rot = ",BM_Neck_Rot,";\n")
|
||||
#write (file, " #declare BM_Torso_Rot = ",BM_Torso_Rot,";\n")
|
||||
#write (file, " #declare BM_RA_S2E = ",BM_RA_S2E,";\n")
|
||||
#write (file, " #declare BM_RA_E2W = ",BM_RA_E2W,";\n")
|
||||
#write (file, " #declare BM_LA_S2E = ",BM_LA_S2E,";\n")
|
||||
#write (file, " #declare BM_LA_E2W = ",BM_LA_E2W,";\n")
|
||||
#write (file, " #declare BM_RL_H2K = ",BM_RL_H2K,";\n")
|
||||
#write (file, " #declare BM_RL_K2A = ",BM_RL_K2A,";\n")
|
||||
#write (file, " #declare BM_LL_H2K = ",BM_LL_H2K,";\n")
|
||||
#write (file, " #declare BM_LL_K2A = ",BM_LL_K2A,";\n")
|
||||
#write (file, " #declare BM_RF_Rot = ",BM_RF_Rot,";\n")
|
||||
#write (file, " #declare BM_LF_Rot = ",BM_LF_Rot,";\n")
|
||||
#write (file, " #declare BM_Toe_Angle = ",BM_Toe_Angle,";\n")
|
||||
#write (file, " #declare BM_RH_Rot = ",BM_RH_Rot,";\n")
|
||||
#write (file, " #declare BM_LH_Rot = ",BM_LH_Rot,";\n\n")
|
||||
#write (file, "// If you wish to use a predefined hand be sure to include\n",
|
||||
"// bm_hands.inc and then set BM_Pose_RHand/LHand to the array\n",
|
||||
"// entry number (0 being the first entry). Otherwise set them \n",
|
||||
"// to -1 and use the finger positions defined below\n\n")
|
||||
#write (file, " #declare BM_Pose_RHand = ",BM_Pose_RHand,";\n")
|
||||
#write (file, " #declare BM_Pose_LHand = ",BM_Pose_LHand,";\n\n")
|
||||
#write (file, " #declare BM_RFP_Pos = ",BM_RFP_Pos,";\n")
|
||||
#write (file, " #declare BM_RFR_Pos = ",BM_RFR_Pos,";\n")
|
||||
#write (file, " #declare BM_RFM_Pos = ",BM_RFM_Pos,";\n")
|
||||
#write (file, " #declare BM_RFI_Pos = ",BM_RFI_Pos,";\n")
|
||||
#write (file, " #declare BM_RFT_Pos = ",BM_RFT_Pos,";\n")
|
||||
#write (file, " #declare BM_LFP_Pos = ",BM_LFP_Pos,";\n")
|
||||
#write (file, " #declare BM_LFR_Pos = ",BM_LFR_Pos,";\n")
|
||||
#write (file, " #declare BM_LFM_Pos = ",BM_LFM_Pos,";\n")
|
||||
#write (file, " #declare BM_LFI_Pos = ",BM_LFI_Pos,";\n")
|
||||
#write (file, " #declare BM_LFT_Pos = ",BM_LFT_Pos,";\n")
|
||||
#write (file, " #declare BM_Hair_Rot = ",BM_Hair_Rot,";\n")
|
||||
#write (file, " #declare BM_Hair_Arch = ",BM_Hair_Arch,";\n")
|
||||
#write (file, " #declare BM_Hair_Thck = ",BM_Hair_Thck,";\n")
|
||||
#write (file, " #declare BM_Hair_Line = ",BM_Hair_Line,";\n")
|
||||
#write (file, " #declare BM_Hair_LDpth = ",BM_Hair_LDpth,";\n")
|
||||
#write (file, " #declare BM_Hair_Wght = ",BM_Hair_Wght,";\n")
|
||||
#write (file, " #declare BM_Hair_Hght = ",BM_Hair_Hght,";\n")
|
||||
#write (file, " #declare BM_Hair_Length = ",BM_Hair_Length,";\n")
|
||||
#write (file, " #declare BM_Hair_Curl = ",BM_Hair_Curl,";\n\n")
|
||||
#write (file, " #declare BM_PoseNo = -1;\n\n")
|
||||
#write (file, "// End of File")
|
||||
#fclose file
|
||||
|
||||
#ifdef (Costume)
|
||||
#include Costume
|
||||
#end
|
||||
|
||||
#declare BM_PoseNo=-1;
|
||||
Blob_Man(BM_Gender,0)
|
||||
|
||||
#else
|
||||
/****************************************************************
|
||||
Use Pre-Defined Poses
|
||||
*****************************************************************/
|
||||
|
||||
#include "bm_pose.inc"
|
||||
|
||||
#ifdef (Costume)
|
||||
#include Costume
|
||||
#end
|
||||
|
||||
Blob_Man(BM_Gender,0)
|
||||
|
||||
#end
|
||||
|
||||
/****************************************************************
|
||||
Lights, Camera and Setting
|
||||
*****************************************************************/
|
||||
camera{location <0,-40,-100> orthographic look_at <0,-40,0> }
|
||||
light_source{<-200,200,-200> rgb <1,.9,.5> }
|
||||
light_source{< 400,400,-200> rgb <.2,.4,.8> shadowless }
|
||||
light_source{<-200,200,-200> rgb .7 shadowless }
|
||||
light_source{< 100, 50,-150> rgb .5 shadowless }
|
||||
light_source{< 100,-50,-150> rgb .3 shadowless }
|
||||
light_source{<-100,-50,-150> rgb .1 shadowless }
|
||||
background {rgb Background}
|
||||
|
||||
/****************************************************************
|
||||
The Models
|
||||
****************************************************************/
|
||||
object {BlobMan translate x*-15 no_shadow}
|
||||
object {BlobMan rotate y*180 translate x* 45 no_shadow}
|
||||
object {BlobMan rotate y* 90 translate x*-45 no_shadow}
|
||||
object {BlobMan rotate y*-90 translate x* 15 no_shadow}
|
||||
object {BlobMan rotate x*-90 translate y*-75 translate x*-15 no_shadow}
|
||||
object {BlobMan rotate y*180 rotate x*90 translate y*-75 translate x* 45 no_shadow}
|
||||
text {
|
||||
ttf
|
||||
"crystal.ttf",
|
||||
#if (BM_Gender=0)
|
||||
#ifdef (Costume)
|
||||
concat ("Blob Man v4.0 - ",Costume),
|
||||
#else
|
||||
"Blob Man v4.0",
|
||||
#end
|
||||
#else
|
||||
#ifdef (Costume)
|
||||
concat ("Blob Lady v4.0 - ",Costume),
|
||||
#else
|
||||
"Blob Lady v4.0",
|
||||
#end
|
||||
#end
|
||||
.1,
|
||||
0
|
||||
translate <-11.5,1.5,0>
|
||||
pigment {rgb 1}
|
||||
finish {ambient 1}
|
||||
no_shadow
|
||||
scale 6
|
||||
}
|
||||
|
||||
// EOF
|
|
@ -1,524 +0,0 @@
|
|||
/*******************************************************
|
||||
Persistence of Vision Ray Tracer Scene Description File
|
||||
File Name : Body_Part_Viewer.pov
|
||||
Version : POV v 3.1 : Blob_Man v4.0
|
||||
Desciption: View the inividual body parts of Blob Man
|
||||
Use it to check positioning of Limb Objects
|
||||
Date : 01 March 2000
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://welcome.to/HoustonGraphics
|
||||
http://members.xoom.com/HoustonGraph
|
||||
********************************************************/
|
||||
#include "bmpeople.inc"
|
||||
#include "bm_hands.inc"
|
||||
/*******************************************************
|
||||
Include the Costume Definition File Here
|
||||
********************************************************/
|
||||
//#include "filname.cdf"
|
||||
|
||||
#ifndef (CDF)
|
||||
#declare CDF=false;
|
||||
#end
|
||||
/*******************************************************
|
||||
Body Part Switch Number
|
||||
=======================
|
||||
1 = Head
|
||||
2 = Torso
|
||||
3 = Upperarm Right
|
||||
4 = Upperarm Left
|
||||
5 = Forearm Right
|
||||
6 = Forearm Left
|
||||
7 = Hand Right
|
||||
8 = Hand Left
|
||||
9 = Thigh Right
|
||||
10 = Thigh Left
|
||||
11 = Calf Right
|
||||
12 = Calf Left
|
||||
13 = Foot Right
|
||||
14 = Foot Left
|
||||
********************************************************/
|
||||
#declare Body_Part_Switch =1;
|
||||
#declare BM_Gender=1; // 0=Male 1=Female
|
||||
#declare HandPoseNo=0; // Hand Pose as defined in "bm_hands.inc"
|
||||
|
||||
#if (CDF=false) // The following options only apply if no CDF is included (see above)
|
||||
#declare BM_Jowls=0; // Jowl Mass Range: 0-3
|
||||
#declare BM_Teeth=1; // 0 = No Teeth, 1 = Teeth
|
||||
#declare BM_Nose=.5; // Nose Size Range : 0 - 1.25 : Default=0.5
|
||||
#declare BM_Jaw=.65; // Jaw Opening
|
||||
#declare BM_Mouth=1; // Mouth Size
|
||||
#declare BM_MouthShape=1; // + Mouth Corners Up / - Mouth Corners Down
|
||||
#end
|
||||
|
||||
#declare ShowXYZ=on; // Places a visible marker at <0,0,0>
|
||||
// Please Note that the DeBug variable
|
||||
// does not work in this file.
|
||||
|
||||
#declare XYZ= union {cylinder {<-8,0,0><8,0,0>.25 pigment {rgb x}}
|
||||
cylinder {<0,-8,0><0,8,0>.25 pigment {rgb y}}
|
||||
cylinder {<0,0,-8><0,0,8>.25 pigment {rgb z}}
|
||||
}
|
||||
#declare BM_RA_S2E= <0,0,0>;
|
||||
#declare BM_RA_E2W= <0,0,0>;
|
||||
#declare BM_LA_S2E= <0,0,0>;
|
||||
#declare BM_LA_E2W= <0,0,0>;
|
||||
#declare BM_RL_H2K= <0,0,0>;
|
||||
#declare BM_RL_K2A= <0,0,0>;
|
||||
#declare BM_LL_H2K= <0,0,0>;
|
||||
#declare BM_LL_K2A= <0,0,0>;
|
||||
#declare BM_RH_Rot= <0,0,0>;
|
||||
#declare BM_LH_Rot= <0,0,0>;
|
||||
#declare BM_RF_Rot= <0,0,0>;
|
||||
#declare BM_LF_Rot= <0,0,0>;
|
||||
#declare BM_Toe_Angle= <0,0,0>;
|
||||
#declare BM_Head_Rot= <0,0,0>;
|
||||
#declare BM_Neck_Rot= <0,0,0>;
|
||||
#declare BM_Torso_Rot= <0,0,0>;
|
||||
#declare BM_Toe_Angle=<0,0,0>;
|
||||
|
||||
#declare BM_PoseNo=-1;
|
||||
|
||||
#switch (Body_Part_Switch)
|
||||
#case (1)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*2 translate y*2}
|
||||
#declare Title="Head"
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Head_Object=union {object {BM_Head_Object} object {XYZ}}
|
||||
#end
|
||||
#declare BodyPart =
|
||||
object {
|
||||
bmhead()
|
||||
translate y*-5
|
||||
scale 2
|
||||
}
|
||||
#break
|
||||
#case (2)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5}
|
||||
#declare Title="Torso"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Torso_Object=union {object {BM_Torso_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (3)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5}
|
||||
#declare Title="Right Upperarm"
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Upperarm_R_Object=union {object {BM_Upperarm_R_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <9,-5,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (4)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5}
|
||||
#declare Title="Left Upperarm"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Upperarm_L_Object=union {object {BM_Upperarm_L_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <-9,-5,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (5)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5}
|
||||
#declare Title="Right Forearm"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Forearm_R_Object=union {object {BM_Forearm_R_Object} object {XYZ}}
|
||||
#end
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <9,6,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (6)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5}
|
||||
#declare Title="Left Forearm"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Forearm_L_Object=union {object {BM_Forearm_L_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <-9,12,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (7)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*3.5 translate y*3.5}
|
||||
#declare Title="Right Hand"
|
||||
#if (HandPoseNo>=0)
|
||||
#declare BM_RFP_Pos=BM_Hands[HandPoseNo][0];
|
||||
#declare BM_RFR_Pos=BM_Hands[HandPoseNo][1];
|
||||
#declare BM_RFM_Pos=BM_Hands[HandPoseNo][2];
|
||||
#declare BM_RFI_Pos=BM_Hands[HandPoseNo][3];
|
||||
#declare BM_RFT_Pos=BM_Hands[HandPoseNo][4];
|
||||
#end
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Hand_R_Object=union {object {BM_Hand_R_Object} object {XYZ scale .5}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
object {
|
||||
bmhand(-1)
|
||||
translate <9,30,0>
|
||||
scale 3.5
|
||||
}
|
||||
#break
|
||||
#case (8)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*3.5 translate y*3.5}
|
||||
#declare Title="Left - Hand"
|
||||
#if (HandPoseNo>=0)
|
||||
#declare BM_LFP_Pos=BM_Hands[HandPoseNo][0];
|
||||
#declare BM_LFR_Pos=BM_Hands[HandPoseNo][1];
|
||||
#declare BM_LFM_Pos=BM_Hands[HandPoseNo][2];
|
||||
#declare BM_LFI_Pos=BM_Hands[HandPoseNo][3];
|
||||
#declare BM_LFT_Pos=BM_Hands[HandPoseNo][4];
|
||||
#end
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Hand_L_Object=union {object {BM_Hand_L_Object} object {XYZ scale .5}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmhand(1)
|
||||
translate <-9,30,0>
|
||||
scale 3.5
|
||||
}
|
||||
#break
|
||||
#case (9)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5 translate y*1.5}
|
||||
#declare Title="Right Thigh"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Thigh_R_Object=union {object {BM_Thigh_R_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <4,18,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (10)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5 translate y*1.5}
|
||||
#declare Title="Left Thigh"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=2;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Thigh_L_Object=union {object {BM_Thigh_L_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <-4,18,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (11)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5 translate y*1.5}
|
||||
#declare Title="Right Calf"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_L_Calf_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_L_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Calf_R_Object=union {object {BM_Calf_R_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <4,32,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (12)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*1.5 translate y*1.5}
|
||||
#declare Title="Left Calf"
|
||||
#declare BM_R_Upperarm_Mass=0;
|
||||
#declare BM_R_Forearm_Mass=0;
|
||||
#declare BM_L_Upperarm_Mass=0;
|
||||
#declare BM_L_Forearm_Mass=0;
|
||||
#declare BM_R_Thigh_Mass=0;
|
||||
#declare BM_R_Calf_Mass=0;
|
||||
#declare BM_L_Thigh_Mass=0;
|
||||
#declare BM_Torso_Mass=0;
|
||||
#declare BM_Abdomen_Mass=0;
|
||||
#declare BM_Neck_Mass=0;
|
||||
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Abdomen_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_L_Object=object{BM_nul}
|
||||
#declare BM_Forearm_R_Object=object{BM_nul}
|
||||
#declare BM_Forearm_L_Object=object{BM_nul}
|
||||
#declare BM_Thigh_R_Object=object{BM_nul}
|
||||
#declare BM_Thigh_L_Object=object{BM_nul}
|
||||
#declare BM_Calf_R_Object=object{BM_nul}
|
||||
#declare BM_Neck_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Calf_L_Object=union {object {BM_Calf_L_Object} object {XYZ}}
|
||||
#end
|
||||
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmtorso()
|
||||
translate <-4,32,0>
|
||||
scale 1.5
|
||||
}
|
||||
#break
|
||||
#case (13)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*2}
|
||||
#declare Title="Right Foot"
|
||||
#declare BM_L_Foot=0;
|
||||
#declare BM_Foot_L_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Foot_R_Object=union {object {BM_Foot_R_Object} object {XYZ scale .75}}
|
||||
#end
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmfeet()
|
||||
translate <4,50,0>
|
||||
scale 2
|
||||
}
|
||||
#break
|
||||
#case (14)
|
||||
plane {z,100 pigment {checker rgb .15,rgb .25} scale 2*2}
|
||||
#declare Title="Left Foot"
|
||||
#declare BM_R_Foot=0;
|
||||
#declare BM_Foot_R_Object=object{BM_nul}
|
||||
#if (ShowXYZ=on)
|
||||
#declare BM_Foot_L_Object=union {object {BM_Foot_L_Object} object {XYZ scale .75}}
|
||||
#end
|
||||
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmfeet()
|
||||
translate <-4,50,0>
|
||||
scale 2
|
||||
}
|
||||
#break
|
||||
#end
|
||||
|
||||
/****************************************************************
|
||||
Lights, Camera and Setting
|
||||
*****************************************************************/
|
||||
camera{location <0,-40,-100> orthographic look_at <0,-40,0> }
|
||||
light_source{<-200,200,-200> rgb <1,.9,.5> }
|
||||
light_source{< 400,400,-200> rgb <.2,.4,.8> shadowless }
|
||||
light_source{<-200,200,-200> rgb .7 shadowless }
|
||||
light_source{< 100, 50,-150> rgb .5 shadowless }
|
||||
light_source{< 100,-50,-150> rgb .3 shadowless }
|
||||
light_source{<-100,-50,-150> rgb .1 shadowless }
|
||||
background {rgb 0}
|
||||
|
||||
/****************************************************************
|
||||
The Models
|
||||
****************************************************************/
|
||||
text {
|
||||
ttf
|
||||
"crystal.ttf",
|
||||
concat (Title," - 1 Square = 2 Units"),
|
||||
.1,
|
||||
0
|
||||
translate <-9,1,-5>
|
||||
pigment {rgb 1}
|
||||
finish {ambient 1}
|
||||
scale 7.5
|
||||
no_shadow
|
||||
}
|
||||
|
||||
object {BodyPart translate x*-15 no_shadow}
|
||||
object {BodyPart rotate y*180 translate x* 45 no_shadow}
|
||||
object {BodyPart rotate y* 90 translate x*-45 no_shadow}
|
||||
object {BodyPart rotate y*-90 translate x* 15 no_shadow}
|
||||
object {BodyPart rotate x*-90 translate y*-75 translate x*-15 no_shadow}
|
||||
object {BodyPart rotate y*180 rotate x*90 translate y*-75 translate x* 45 no_shadow}
|
||||
|
||||
// EOF
|
|
@ -1,132 +0,0 @@
|
|||
/****************************************************************
|
||||
_ _ _
|
||||
| || |__ _ _ _ __| |
|
||||
| __ / _` | ' \/ _` |
|
||||
_|_||_\__,_|_||_\__,_|
|
||||
/ __| |_ _ _ __| (_)___
|
||||
\__ \ _| || / _` | / _ \
|
||||
|___/\__|\_,_\__,_|_\___/
|
||||
|
||||
for use with bmpeople.inc
|
||||
|
||||
This scene creates a file "bmhand.txt" which contains a single
|
||||
entry array for use with the hand macro in "bmpeople.inc"
|
||||
|
||||
see "bmmanual.txt" for full details.
|
||||
|
||||
Set View_Hands (below) to "yes", then change the HandNo to view
|
||||
the hand poses in "bm_hands.inc"
|
||||
*****************************************************************/
|
||||
|
||||
#local View_Hands=yes;
|
||||
#local HandNo=0;
|
||||
|
||||
/****************************************************************
|
||||
Set View_Hands (above) to off and then alter the vectors below
|
||||
to change the finger positions.
|
||||
|
||||
<X,Y,Z,T> = <1st Joint, 2nd Joint, 3rd Joint, Spread>
|
||||
|
||||
Z Z Z
|
||||
| | | Z
|
||||
Y Y Y |
|
||||
Z | | | Y
|
||||
\ X X X | Please excuse the crude
|
||||
Y +--+--+_ X Diagram :)
|
||||
\ / \+
|
||||
X \
|
||||
| |
|
||||
\ /
|
||||
+------+
|
||||
|
||||
(+) Figures in X,Y or Z bend the joint towards the palm.
|
||||
(-) Figures in X,Y or Z bend the joint away from the palm.
|
||||
|
||||
The T figure bends the whole finger sideways (+) is towards the
|
||||
thumb, (-) towards the Pinky.
|
||||
|
||||
*****************************************************************/
|
||||
#include "bmhand.inc"
|
||||
|
||||
#local Thumb = < 0, 0, 0, 0>; //<1st,2nd,3rd,Spread>
|
||||
#local Index = < 0, 0, 0, 0>; //<1st,2nd,3rd,Spread>
|
||||
#local Middle = < 0, 0, 0, 0>; //<1st,2nd,3rd,Spread>
|
||||
#local Ring = < 0, 0, 0, 0>; //<1st,2nd,3rd,Spread>
|
||||
#local Pinky = < 0, 0, 0, 0>; //<1st,2nd,3rd,Spread>
|
||||
|
||||
// Rendering at [320 x 240, No AA] shouldn't take very long,
|
||||
// and is large enought to see if the positions are correct,
|
||||
|
||||
/****************************************************************
|
||||
Lights, Camera and Setting
|
||||
*****************************************************************/
|
||||
camera{location <0,-40,-100> orthographic look_at <0,-40,0> }
|
||||
light_source{<-200,200,-200> rgb <1,.9,.5> }
|
||||
light_source{< 400,400,-200> rgb <.2,.4,.8> shadowless }
|
||||
light_source{<-200,200,-200> rgb .7 shadowless }
|
||||
light_source{< 100, 50,-150> rgb .5 shadowless }
|
||||
light_source{< 100,-50,-150> rgb .3 shadowless }
|
||||
light_source{<-100,-50,-150> rgb .1 shadowless }
|
||||
background {rgb 0}
|
||||
|
||||
/****************************************************************
|
||||
The Models
|
||||
****************************************************************/
|
||||
|
||||
text {
|
||||
ttf
|
||||
"crystal.ttf",
|
||||
concat ("Hand Studio for bmpeople.inc v4.0"),
|
||||
.1,
|
||||
0
|
||||
translate <-9,1,-5>
|
||||
pigment {rgb 1}
|
||||
finish {ambient 1}
|
||||
scale 7.5
|
||||
no_shadow
|
||||
}
|
||||
|
||||
#if (View_Hands=on)
|
||||
#include "bm_hands.inc"
|
||||
#local Pinky = BM_Hands[HandNo][0];
|
||||
#local Ring = BM_Hands[HandNo][1];
|
||||
#local Middle = BM_Hands[HandNo][2];
|
||||
#local Index = BM_Hands[HandNo][3];
|
||||
#local Thumb = BM_Hands[HandNo][4];
|
||||
#end
|
||||
|
||||
#declare BM_RFP_Pos=Pinky;
|
||||
#declare BM_RFR_Pos=Ring;
|
||||
#declare BM_RFM_Pos=Middle;
|
||||
#declare BM_RFI_Pos=Index;
|
||||
#declare BM_RFT_Pos=Thumb;
|
||||
#declare BM_RA_S2E=<0,0,0>;
|
||||
#declare BM_RA_E2W=<0,0,0>;
|
||||
#declare BM_RH_Rot=<0,0,0>;
|
||||
|
||||
#declare BodyPart=
|
||||
union {
|
||||
bmhand(-1)
|
||||
translate <9,30,0>
|
||||
scale 5
|
||||
}
|
||||
|
||||
object {BodyPart scale <-1,-1,1> translate <-10,-45,0> no_shadow}
|
||||
object {BodyPart scale <-1,-1,1> rotate y*180 translate <40,-45,0> no_shadow}
|
||||
object {BodyPart scale <-1,-1,1> rotate y* 90 translate <-55,-45,0> no_shadow}
|
||||
object {BodyPart scale <-1,-1,1> rotate y*-90 translate <20,-45,0> no_shadow}
|
||||
object {BodyPart rotate x*-90 rotate z*-90 translate y*-75 translate x*-20 no_shadow}
|
||||
object {BodyPart rotate y*180 rotate x*90 rotate z*90 translate y*-75 translate x* 50 no_shadow}
|
||||
|
||||
#fopen file "bmhand.txt" write
|
||||
#write (file, "/************************************************************\n",
|
||||
" Blob Man Hand Pose File for use with bmpeople.inc\n",
|
||||
" This file was created automatically by Hand_Studio.pov\n",
|
||||
"*************************************************************/\n\n")
|
||||
#write (file, "#declare BM_Hands=array[1][5]\n",
|
||||
" {\n",
|
||||
" { ",Pinky,",",Ring,",",Middle,",",Index,",",Thumb," },\n",
|
||||
" }\n")
|
||||
#fclose file
|
||||
|
||||
// EOF
|
|
@ -1,77 +0,0 @@
|
|||
******************************************************************************************
|
||||
___ _ _ __ __
|
||||
| _ ) |___| |__| \/ |__ _ _ _
|
||||
| _ \ / _ \ '_ \ |\/| / _` | ' \ v4.0
|
||||
|___/_\___/_.__/_| |_\__,_|_||_|
|
||||
|
||||
How to Create Costume Definition Files
|
||||
|
||||
by Peter Houston
|
||||
|
||||
******************************************************************************************
|
||||
|
||||
When creating a Costume Definition File (CDF) it is a good idea to have a picture of what
|
||||
you are attempting to create.
|
||||
|
||||
The first thing you should do is save a copy of layout.cdf to a new file, and then work
|
||||
through each of the Body Part options, uncommenting any that need to be changed, leave image
|
||||
and bump maps until later.
|
||||
|
||||
When creating CDFs I use Blob_Man_Studio.pov and Body_Part_Viewer.pov to position the
|
||||
costume components correctly. If rendered at [ 320 x 240 No AA ] the objects are quite easy
|
||||
to position and it doesn't take too long to render.
|
||||
|
||||
Using the Body_Part_Viewer.pov file change the Body_Part_Switch variable on line 41, to
|
||||
the body part you are going to work on. If you render this you will notice six views of the
|
||||
body part. Left Side, Front, Right Side, Back, Top and Underside. The scale of the grid
|
||||
is shown at the top as is the name of Body Part (this is important as most of the arms/legs look
|
||||
similar).
|
||||
|
||||
Also set BM_Gender (line 42) to 0 for Male or 1 for Female.
|
||||
|
||||
Uncomment line 18 and enter the filename of your CDF.
|
||||
|
||||
Uncomment the Body Part Object you are going to work on in your CDF file, you will notice that
|
||||
the object refers to itself to begin with. This is important if you intend to use the DeBug
|
||||
Variable later on, if you do, make sure you create a union with the current object as part if it.
|
||||
|
||||
e.g.
|
||||
#declare Head_Object=union { object{Head_Object}
|
||||
Your object definitions here
|
||||
..
|
||||
..
|
||||
}
|
||||
|
||||
Create the objects you want to attached to the limb within this union in the CDF file. They should be
|
||||
positioned in relation to <0,0,0>. If you change the ShowXYZ variable in Body_Part_Viewer.pov (line 54)
|
||||
to "on" you will be able to see where <0,0,0> is in relation to the limb. (It is set to on by defult)
|
||||
|
||||
Tips
|
||||
----
|
||||
|
||||
Think about how the objects you are placing will move with the limbs, for example if you are putting knee
|
||||
pads on a skater, should they be attached to the bottom of the Thigh Objects or the Top of the Calf Objects.
|
||||
use the Blob_Man_Studio.pov file to adjust the pose and see how the objects react. If you take a look at
|
||||
sample.cdf you will notice that the helmet is attached to the Torso Object so that it remains static when the
|
||||
head moves.
|
||||
|
||||
When adding objects to the hands be aware that the only static part is the palm area, any objects placed on
|
||||
the fingers will NOT move if the finger positions change. Use the HandPose variable (line 43) test with different
|
||||
hand poses (the number refers to the Array Entry in "bm_hands.inc"
|
||||
|
||||
If you intend to use Image Maps on the limb, remember that any object placed on that limb will adopt the image
|
||||
map texture, if you do not want this to happen be sure you texture the objects in the CDF file.
|
||||
|
||||
When creating objects that are identical on both left and right limbs, declare them as a seperate object located
|
||||
at <0,0,0> then add the object to the Body parts but flip them for the opposite side.
|
||||
|
||||
e.g Right Side would be : object {MyObject}
|
||||
Left Side would be : object {MyObject scale <-1,1,1>}
|
||||
|
||||
If you intend to use the same objects in various CDF's why not create an include file with objects declared
|
||||
in it and located at <0,0,0> then just include this file at the beginning of your CDF file, and place those
|
||||
objects as normal in the body part objects.
|
||||
|
||||
******************************************************************************************
|
||||
|
||||
Last Updated : 9th April, 2000
|
|
@ -1,21 +0,0 @@
|
|||
/************************************************************
|
||||
Sample BlobMan People Hair File for use with bmpeople.inc
|
||||
*************************************************************/
|
||||
|
||||
#declare BM_Pose_Hair_1=array[5][1]
|
||||
{
|
||||
{ <0,0,0> },
|
||||
{ <0,0,0> },
|
||||
{ <0,0,0> },
|
||||
{ <0,0,0> },
|
||||
{ <0,0,0> },
|
||||
}
|
||||
|
||||
#declare BM_Pose_Hair_2=array[5][9]
|
||||
{
|
||||
{ 0,0,0,0,0,0,0,0,0},
|
||||
{ 1,0,0.25,5,0.7,0.01,1,10,0.05},
|
||||
{ 1,0,0.25,5,0.7,0.01,1,20,0.1},
|
||||
{ 1,0,0.25,5,0.7,0.05,1,6,0},
|
||||
{ 1,0,0.5,5,0,0.005,1,6,0},
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
/************************************************************
|
||||
Sample BlobMan Hands File for use with bmpeople.inc
|
||||
Use Hand_Studio.pov to create new Hand Poses.
|
||||
|
||||
*************************************************************/
|
||||
|
||||
#declare BM_Hands=array[13][5]
|
||||
{
|
||||
{ <5,45,5,0> ,<10,30,5,0> ,<5,15,5,0> ,<0,10,0,0> ,<0,-10,5,10> },
|
||||
{ <10,10,20,-10> ,<5,10,10,-5> ,<0,10,5,0> ,<0,10,5,5> ,<-10,-10,-20,0> },
|
||||
{ <0,0,0,-20> ,<0,0,0,-10> ,<0,0,0,0> ,<0,0,0,10> ,<-20,-20,-20,0> },
|
||||
{ <75,75,75,0> ,<75,75,75,0> ,<75,75,75,0> ,<75,75,75,0> ,<0,45,75,0> },
|
||||
{ <75,75,75,0> ,<75,75,75,0> ,<10,5,0,0> ,<75,75,75,0> ,<0,45,75,0> },
|
||||
{ <75,75,75,0> ,<75,75,75,0> ,<10,5,0,-10> ,<10,5,0,10> ,<0,45,75,0> },
|
||||
{ <75,75,75,0> ,<75,75,75,0> ,<75,75,0,0> ,<5,5,0,0> ,<0,45,75,0> },
|
||||
{ <2,1,0,0> ,<75,75,75,0> ,<75,75,75,0> ,<2,1,0,0> ,<0,45,75,0> },
|
||||
{ <2,1,0,-10> ,<2,1,0,-12> ,<2,1,0,12> ,<2,1,0,8> ,<0,0,0,0> },
|
||||
{ <85,75,55,0> ,<75,65,55,0> ,<65,55,45,0> ,<2,1,0,0> ,<-10,-10,-10,0> },
|
||||
{ <45,45,45,0> ,<45,45,45,0> ,<45,45,45,0> ,<45,45,45,0> ,<45,20,10,0> },
|
||||
{ <75,90,5,0> ,<75,90,5,0> ,<75,45,45,0> ,<25,45,60,0> ,<25,0,5,20> },
|
||||
{ <0,0,0,0> ,<0,0,0,0> ,<0,0,0,0> ,<0,0,0,0> ,<0,0,0,30> },
|
||||
}
|
||||
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
/************************************************************
|
||||
Sample BlobMan People Pose File for use with bmpeople.inc
|
||||
|
||||
PoseNo
|
||||
0 = Standing Relaxed
|
||||
1 = Standing Hands on Hips
|
||||
2 = Meditation (transform BM_Abdomen_U)
|
||||
3 = Sitting at Table/Piano etc (transform BM_Abdomen_U)
|
||||
4 = Gunfighter
|
||||
5 = Praying on Knees (transform BMO_Knee_R translate <0,1,0>*BM_Scale )
|
||||
6 = "We're Not Worthy" (transform BMO_Knee_R translate <0,1,0>*BM_Scale )
|
||||
7 = Hand Stand (transform BMO_Hand_R)
|
||||
8 = Sun Bathing (transform BMO_Torso_B rotate x*99 ) Female
|
||||
(transform BMO_Torso_B rotate x*109 ) Male
|
||||
9 = Surfer
|
||||
10 = Reclined (Male) (transform BMO_Abdomen_L rotate z*-85)
|
||||
11 = Reclined (Female) (transform BMO_Abdomen_L rotate z*-85)
|
||||
|
||||
*************************************************************/
|
||||
#include "bm_hands.inc"
|
||||
#include "bm_hair.inc"
|
||||
|
||||
#declare BM_Pose=array[12][17]
|
||||
{
|
||||
{ <0,0,0> ,<0,0,0> ,<0,0,0> ,<-8,0,-8> ,<8,0,-3> ,<-8,0,8> ,<8,0,3> ,<8,0,-5> ,<-8,0,3> ,<8,0,5> ,<-8,0,-3> ,<8,0,-3> ,<8,0,3> ,<0,0,0> ,<0,0,0> ,<0,0,0> , <0,0,0> },
|
||||
{ <0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,-42> ,<0,0,45> ,<0,0,42> ,<0,0,-45> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,-38> ,<0,0,38> ,<0,0,0> , },
|
||||
{ <0,0,0> ,<5,0,0> ,<-5,0,0> ,<0,0,-15> ,<60,0,-15> ,<0,0,15> ,<60,0,15> ,<80,45,0> ,<10,0,90> ,<80,-45,0> ,<-5,0,-100> ,<-30,0,0> ,<-30,0,0> ,<0,0,0> ,<0,100,-20> ,<0,-100,20> , <11,0,11> },
|
||||
{ <0,0,0> ,<0,0,0> ,<0,0,0> ,<25,0,-20> ,<90,0,0> ,<25,0,20> ,<90,0,0> ,<90,15,0> ,<0,0,0> ,<90,-15,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<-10,-90,0> ,<10,90,0> ,<0,0,0> , },
|
||||
{ <0,0,0> ,<0,0,0> ,<0,0,0> ,<-10,5,-35> ,<10,0,10> ,<-10,-5,35> ,<10,0,-10> ,<8,0,-15> ,<-8,0,0> ,<8,0,15> ,<-8,0,0> ,<8,0,0> ,<8,0,0> ,<0,0,0> ,<0,0,10> ,<0,0,-10> , <0,0,0> },
|
||||
{ <-10,0,0> ,<-10,0,0> ,<0,0,0> ,<25,0,0> ,<145,-50,-4> ,<25,0,0> ,<145,50,4> ,<65,10,0> ,<-90,0,0> ,<65,-10,0> ,<-90,0,0> ,<-45,0,0> ,<-45,0,0> ,<-30,0,-30> ,<30,-30,-20> ,<30,30,20> , <12,0,12> },
|
||||
{ <45,0,0> ,<0,0,0> ,<0,0,0> ,<145,20,0> ,<210,0,0> ,<145,-20,0> ,<210,0,0> ,<65,10,0> ,<-90,0,0> ,<65,-10,0> ,<-90,0,0> ,<-45,0,0> ,<-45,0,0> ,<-30,0,-30> ,<30,-30,-60> ,<30,30,60> , <0,0,0> },
|
||||
{ <30,0,0> ,<30,0,0> ,<0,0,0> ,<0,0,-150> ,<0,90,-180> ,<0,0,150> ,<0,-90,180> ,<45,0,-10> ,<-45,0,-10> ,<-5,0,10> ,<-5,0,10> ,<0,0,0> ,<0,0,0> ,<0,0,0> ,<0,0,-90> ,<0,0,90> , <12,0,12> },
|
||||
{ <0,-10,0> ,<0,0,0> ,<0,0,0> ,<-10,0,-120> ,<0,15,-260> ,<-10,0,120> ,<0,15,259> ,<30,0,0> ,<-30,0,0> ,<0,0,10> ,<-8,0,0> ,<-50,0,0> ,<0,-15,0> ,<0,0,0> ,<0,100,0> ,<0,-100,0> , <12,0,12> },
|
||||
{ <0,50,0> ,<0,0,0> ,<0,15,0> ,<85,45,0> ,<110,30,0> ,<60,-60,0> ,<85,-30,0> ,<60,45,0> ,<45,45,0> ,<85,-45,0> ,<0,-30,0> ,<-25,0,0> ,<20,0,0> ,<0,0,0> ,<0,-90,0> ,<0,90,0> , <0,0,0> },
|
||||
{ <0,10,10> ,<0,0,10> ,<0,0,18> ,<-20,0,15> ,<45,0,-33> ,<-8,0,146> ,<8,0,273> ,<25,0,0> ,<0,0,7.5> ,<8,0,-1> ,<-8,0,-1> ,<-15,0,8> ,<-8,0,-8> ,<0,0,0> ,<15,0,30> ,<0,180,-75> , <0,0,0> },
|
||||
{ <0,10,10> ,<0,0,10> ,<0,0,17> ,<-20,0,15> ,<45,0,-40> ,<-8,0,138> ,<8,0,273> ,<25,0,0> ,<0,0,7.5> ,<8,0,0> ,<-8,0,0> ,<-15,0,8> ,<-8,0,-8> ,<0,0,0> ,<30,0,50> ,<0,180,-75> , <0,0,1> },
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
/************************************************************
|
||||
Blob Man Pose File for use with Blob_Man.inc
|
||||
This file was created automatically by Blob_Man_Studio.POV
|
||||
*************************************************************/
|
||||
|
||||
#declare BM_Pose=array[1][17]
|
||||
{
|
||||
{ <0,0,0> ,<-10,0,0> ,<-10,0,0> ,<-20,0,-8> ,<0,0,-3> ,<20,0,8> ,<40,0,3> ,<30,0,-5> ,<15,0,0> ,<0,0,5> ,<-30,0,0> ,<0,0,0> ,<15,0,0> ,<15,0,0> ,<0,0,0> ,<0,0,0> , <0,0,1> },
|
||||
}
|
||||
|
||||
#declare BM_Hands=array[2][5]
|
||||
{
|
||||
{ <5,45,5,0> ,<10,30,5,0> ,<5,15,5,0> ,<0,10,0,0> ,<0,-10,5,10> },
|
||||
{ <5,45,5,0> ,<10,30,5,0> ,<5,15,5,0> ,<0,10,0,0> ,<0,-10,5,10> },
|
||||
}
|
||||
|
||||
#declare BM_Pose_Hair_1=array[1][1]
|
||||
{
|
||||
{ <-20,0,0> },
|
||||
}
|
||||
|
||||
#declare BM_Pose_Hair_2=array[1][9]
|
||||
{
|
||||
{ 1,0,0.2,4,0.3,0.015,1.5,15,0 },
|
||||
}
|
||||
// End of File
|
|
@ -1,53 +0,0 @@
|
|||
/************************************************************
|
||||
Blob Man Pose File for use with bmpeople.inc
|
||||
This file was created automatically by Blob_Man_Studio.POV
|
||||
*************************************************************/
|
||||
|
||||
#declare BM_Head_Rot = <0,0,0> ;
|
||||
#declare BM_Neck_Rot = <-10,0,0> ;
|
||||
#declare BM_Torso_Rot = <-10,0,0> ;
|
||||
#declare BM_RA_S2E = <-20,0,-8> ;
|
||||
#declare BM_RA_E2W = <0,0,-3> ;
|
||||
#declare BM_LA_S2E = <20,0,8> ;
|
||||
#declare BM_LA_E2W = <40,0,3> ;
|
||||
#declare BM_RL_H2K = <30,0,-5> ;
|
||||
#declare BM_RL_K2A = <15,0,0> ;
|
||||
#declare BM_LL_H2K = <0,0,5> ;
|
||||
#declare BM_LL_K2A = <-30,0,0> ;
|
||||
#declare BM_RF_Rot = <0,0,0> ;
|
||||
#declare BM_LF_Rot = <15,0,0> ;
|
||||
#declare BM_Toe_Angle = <15,0,0> ;
|
||||
#declare BM_RH_Rot = <0,0,0> ;
|
||||
#declare BM_LH_Rot = <0,0,0> ;
|
||||
|
||||
// If you wish to use a predefined hand be sure to include
|
||||
// bm_hands.inc and then set BM_Pose_RHand/LHand to the array
|
||||
// entry number (0 being the first entry). Otherwise set them
|
||||
// to -1 and use the finger positions defined below
|
||||
|
||||
#declare BM_Pose_RHand = -1;
|
||||
#declare BM_Pose_LHand = -1;
|
||||
|
||||
#declare BM_RFP_Pos = <5,45,5,0> ;
|
||||
#declare BM_RFR_Pos = <10,30,5,0> ;
|
||||
#declare BM_RFM_Pos = <5,15,5,0> ;
|
||||
#declare BM_RFI_Pos = <0,10,0,0> ;
|
||||
#declare BM_RFT_Pos = <0,-10,5,10> ;
|
||||
#declare BM_LFP_Pos = <5,45,5,0> ;
|
||||
#declare BM_LFR_Pos = <10,30,5,0> ;
|
||||
#declare BM_LFM_Pos = <5,15,5,0> ;
|
||||
#declare BM_LFI_Pos = <0,10,0,0> ;
|
||||
#declare BM_LFT_Pos = <0,-10,5,10> ;
|
||||
#declare BM_Hair_Rot = <-20,0,0> ;
|
||||
#declare BM_Hair_Arch = 0;
|
||||
#declare BM_Hair_Thck = 0.2;
|
||||
#declare BM_Hair_Line = 4;
|
||||
#declare BM_Hair_LDpth = 0.3;
|
||||
#declare BM_Hair_Wght = 0.015;
|
||||
#declare BM_Hair_Hght = 1.5;
|
||||
#declare BM_Hair_Length = 15;
|
||||
#declare BM_Hair_Curl = 0;
|
||||
|
||||
#declare BM_PoseNo = -1;
|
||||
|
||||
// End of File
|
|
@ -1,236 +0,0 @@
|
|||
/***************************************************************
|
||||
Default Settings for the "bmpeople.inc" and associated files
|
||||
****************************************************************/
|
||||
// Default Settings
|
||||
#declare BM_Defaults=true;
|
||||
#declare Male=0;
|
||||
#declare Female=1;
|
||||
#ifndef (BM_Guide_Rad) #declare BM_Guide_Rad=2; #end
|
||||
#ifndef (BM_PoseNo) #declare BM_PoseNo=-1; #end
|
||||
#ifndef (BM_Pose_RHand) #declare BM_Pose_RHand=-1; #end
|
||||
#ifndef (BM_Pose_LHand) #declare BM_Pose_LHand=-1; #end
|
||||
#ifndef (BM_Hair_Seed) #declare BM_Hair_Seed=77; #end
|
||||
#ifndef (BM_Gender) #declare BM_Gender=0; #end
|
||||
#ifndef (BM_HairCol) #declare BM_HairCol=<.5,.5,.5,>; #end
|
||||
#ifndef (BM_Flex) #declare BM_Flex=1; #end
|
||||
#ifndef (BM_TShirt) #declare BM_TShirt=0; #end
|
||||
#ifndef (BM_Build) #declare BM_Build=0.5; #end
|
||||
#ifndef (BM_Mouth) #declare BM_Mouth=1; #end
|
||||
#ifndef (BM_MouthShape) #declare BM_MouthShape=.5; #end
|
||||
#ifndef (BM_EyeCol) #declare BM_EyeCol=<.22,.69,.87>; #end
|
||||
#ifndef (BM_EyeLids) #declare BM_EyeLids=<0,0,0>; #end
|
||||
#ifndef (BM_RA_S2E) #declare BM_RA_S2E= <-8,0,-8>; #end
|
||||
#ifndef (BM_RA_E2W) #declare BM_RA_E2W= <8,0,-3>; #end
|
||||
#ifndef (BM_LA_S2E) #declare BM_LA_S2E= <-8,0,8>; #end
|
||||
#ifndef (BM_LA_E2W) #declare BM_LA_E2W= <8,0,3>; #end
|
||||
#ifndef (BM_RL_H2K) #declare BM_RL_H2K= <8,0,-5>; #end
|
||||
#ifndef (BM_RL_K2A) #declare BM_RL_K2A= <-8,0,3>; #end
|
||||
#ifndef (BM_LL_H2K) #declare BM_LL_H2K= <8,0,5>; #end
|
||||
#ifndef (BM_LL_K2A) #declare BM_LL_K2A= <-8,0,-3>; #end
|
||||
#ifndef (BM_RH_Rot) #declare BM_RH_Rot= <0,0,0>; #end
|
||||
#ifndef (BM_LH_Rot) #declare BM_LH_Rot= <0,0,0>; #end
|
||||
#ifndef (BM_RF_Rot) #declare BM_RF_Rot= <8,0,-3>; #end
|
||||
#ifndef (BM_LF_Rot) #declare BM_LF_Rot= <8,0,3>; #end
|
||||
#ifndef (BM_Toe_Angle) #declare BM_Toe_Angle=<0,0,0>; #end
|
||||
#ifndef (BM_Head_Rot) #declare BM_Head_Rot= <0,0,0>; #end
|
||||
#ifndef (BM_Neck_Rot) #declare BM_Neck_Rot= <0,0,0>; #end
|
||||
#ifndef (BM_Torso_Rot) #declare BM_Torso_Rot= <0,0,0>; #end
|
||||
#ifndef (BM_LFP_Pos) #declare BM_LFP_Pos= <5,45,5,0>; #end
|
||||
#ifndef (BM_LFR_Pos) #declare BM_LFR_Pos= <10,30,5,0>; #end
|
||||
#ifndef (BM_LFM_Pos) #declare BM_LFM_Pos= <5,15,5,0>; #end
|
||||
#ifndef (BM_LFI_Pos) #declare BM_LFI_Pos= <0,10,0,0>; #end
|
||||
#ifndef (BM_LFT_Pos) #declare BM_LFT_Pos= <0,-10,5,10>; #end
|
||||
#ifndef (BM_RFP_Pos) #declare BM_RFP_Pos= <5,45,5,0>; #end
|
||||
#ifndef (BM_RFR_Pos) #declare BM_RFR_Pos= <10,30,5,0>; #end
|
||||
#ifndef (BM_RFM_Pos) #declare BM_RFM_Pos= <5,15,5,0>; #end
|
||||
#ifndef (BM_RFI_Pos) #declare BM_RFI_Pos= <0,10,0,0>; #end
|
||||
#ifndef (BM_RFT_Pos) #declare BM_RFT_Pos= <0,-10,5,10>; #end
|
||||
#ifndef (BM_Map_R_Finger) #declare BM_Map_R_Finger=1; #end
|
||||
#ifndef (BM_Map_L_Finger) #declare BM_Map_L_Finger=1; #end
|
||||
#ifndef (BM_Nails) #declare BM_Nails=1; #end
|
||||
#ifndef (BM_Ears) #declare BM_Ears=2; #end
|
||||
#ifndef (BM_Jaw) #declare BM_Jaw=.5; #end
|
||||
#ifndef (BM_Teeth) #declare BM_Teeth=1; #end
|
||||
#ifndef (BM_Jowls) #declare BM_Jowls=0; #end
|
||||
#ifndef (BM_Nose) #declare BM_Nose=.4; #end
|
||||
#ifndef (BM_Face) #declare BM_Face=1; #end
|
||||
#ifndef (BM_R_Foot) #declare BM_R_Foot=1; #end
|
||||
#ifndef (BM_L_Foot) #declare BM_L_Foot=1; #end
|
||||
#ifndef (BM_R_Hand) #declare BM_R_Hand=1; #end
|
||||
#ifndef (BM_L_Hand) #declare BM_L_Hand=1; #end
|
||||
#ifndef (BM_Eyes) #declare BM_Eyes=1; #end
|
||||
#ifndef (BM_HairStyle) #declare BM_HairStyle=-1; #end
|
||||
#ifndef (BM_Hair_Col) #declare BM_Hair_Col=<.5,.5,.5>; #end
|
||||
#ifndef (BM_Hair_Rot) #declare BM_Hair_Rot=<0,0,0>; #end
|
||||
#ifndef (BM_Hair_On) #declare BM_Hair_On=0; #end
|
||||
#ifndef (BM_Hair_Arch) #declare BM_Hair_Arch=0; #end
|
||||
#ifndef (BM_Hair_Thck) #declare BM_Hair_Thck=0; #end
|
||||
#ifndef (BM_Hair_Line) #declare BM_Hair_Line=0; #end
|
||||
#ifndef (BM_Hair_LDpth) #declare BM_Hair_LDpth=0; #end
|
||||
#ifndef (BM_Hair_Wght) #declare BM_Hair_Wght=0; #end
|
||||
#ifndef (BM_Hair_Hght) #declare BM_Hair_Hght=0; #end
|
||||
#ifndef (BM_Hair_Length) #declare BM_Hair_Length=0; #end
|
||||
#ifndef (BM_Hair_Curl) #declare BM_Hair_Curl=0; #end
|
||||
|
||||
#ifndef (BM_R_Upperarm_Mass) #declare BM_R_Upperarm_Mass=2; #end
|
||||
#ifndef (BM_L_Upperarm_Mass) #declare BM_L_Upperarm_Mass=2; #end
|
||||
#ifndef (BM_R_Forearm_Mass) #declare BM_R_Forearm_Mass=2; #end
|
||||
#ifndef (BM_L_Forearm_Mass) #declare BM_L_Forearm_Mass=2; #end
|
||||
#ifndef (BM_R_Thigh_Mass) #declare BM_R_Thigh_Mass=2; #end
|
||||
#ifndef (BM_L_Thigh_Mass) #declare BM_L_Thigh_Mass=2; #end
|
||||
#ifndef (BM_R_Calf_Mass) #declare BM_R_Calf_Mass=2; #end
|
||||
#ifndef (BM_L_Calf_Mass) #declare BM_L_Calf_Mass=2; #end
|
||||
#ifndef (BM_Neck_Mass) #declare BM_Neck_Mass=1; #end
|
||||
#ifndef (BM_Torso_Mass) #declare BM_Torso_Mass=1; #end
|
||||
#ifndef (BM_Abdomen_Mass) #declare BM_Abdomen_Mass=1; #end
|
||||
#ifndef (BM_Head_Mass) #declare BM_Head_Mass=1; #end
|
||||
#ifndef (BM_Bump_Map_Size) #declare BM_Bump_Map_Size=0.25; #end
|
||||
|
||||
// Define Default Textures
|
||||
#ifndef (BM_Skin_Tex)
|
||||
#declare BM_Skin_Tex=
|
||||
texture {
|
||||
pigment{rgb <0.96,0.80,0.69>}
|
||||
finish{
|
||||
phong .1
|
||||
phong_size 40
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
#ifndef (BM_Lip_Tex)
|
||||
#declare BM_Lip_Tex =
|
||||
texture {
|
||||
pigment{rgb <.7,.3,.2>}
|
||||
finish{
|
||||
phong .3
|
||||
phong_size 40
|
||||
}
|
||||
normal{
|
||||
crackle .2
|
||||
turbulence .7
|
||||
scale .7
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
#ifndef (BM_Nail_Tex)
|
||||
#declare BM_Nail_Tex =
|
||||
texture{BM_Skin_Tex
|
||||
finish {
|
||||
ambient -.25
|
||||
}
|
||||
}
|
||||
#end
|
||||
#ifndef (BM_Tooth_Tex)
|
||||
#declare BM_Tooth_Tex=
|
||||
texture {
|
||||
pigment {rgb 1}
|
||||
finish {phong .9 phong_size 90}
|
||||
}
|
||||
#end
|
||||
|
||||
// Declare Default nul Objects
|
||||
#ifndef (BM_DeBug)
|
||||
#declare BM_DeBug=off;
|
||||
#end
|
||||
|
||||
#declare BM_Vector_Locator=
|
||||
union {
|
||||
cylinder {<-8,0,0><8,0,0> .5 pigment {rgb x}}
|
||||
cylinder {<0,0,-8><0,0,8> .5 pigment {rgb y}}
|
||||
cylinder {<0,-8,0><0,8,0> .5 pigment {rgb z}}
|
||||
torus {5,.4 pigment {rgb <1,1,0>}}
|
||||
}
|
||||
|
||||
#declare BM_nul=sphere{0,.0000001 pigment {rgbft 1}}
|
||||
|
||||
#ifndef (BM_Head_Object) #declare BM_Head_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Neck_Object) #declare BM_Neck_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Torso_Object) #declare BM_Torso_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Abdomen_Object) #declare BM_Abdomen_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Upperarm_R_Object) #declare BM_Upperarm_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Upperarm_L_Object) #declare BM_Upperarm_L_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Forearm_R_Object) #declare BM_Forearm_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Forearm_L_Object) #declare BM_Forearm_L_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Hand_R_Object) #declare BM_Hand_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Hand_L_Object) #declare BM_Hand_L_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Thigh_R_Object) #declare BM_Thigh_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Thigh_L_Object) #declare BM_Thigh_L_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Calf_R_Object) #declare BM_Calf_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Calf_L_Object) #declare BM_Calf_L_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Foot_R_Object) #declare BM_Foot_R_Object=object{BM_nul} #end
|
||||
#ifndef (BM_Foot_L_Object) #declare BM_Foot_L_Object=object{BM_nul} #end
|
||||
|
||||
#if (BM_DeBug=yes)
|
||||
#declare BM_Head_Object=
|
||||
union {
|
||||
object{BM_Head_Object}
|
||||
object{BM_Vector_Locator scale 1.5}
|
||||
}
|
||||
#declare BM_Torso_Object=object{BM_nul}
|
||||
#declare BM_Upperarm_R_Object=
|
||||
union {
|
||||
object {BM_Upperarm_R_Object}
|
||||
object {BM_Vector_Locator rotate z*90}
|
||||
}
|
||||
#declare BM_Upperarm_L_Object=
|
||||
union {
|
||||
object {BM_Upperarm_L_Object}
|
||||
object {BM_Vector_Locator rotate z*90}
|
||||
}
|
||||
#declare BM_Forearm_R_Object=
|
||||
union {
|
||||
object {BM_Forearm_R_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Forearm_L_Object=
|
||||
union {
|
||||
object {BM_Forearm_L_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Hand_R_Object=
|
||||
union {
|
||||
object {BM_Hand_R_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Hand_L_Object=
|
||||
union {
|
||||
object {BM_Hand_L_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Thigh_R_Object=
|
||||
union {
|
||||
object {BM_Thigh_R_Object}
|
||||
object {BM_Vector_Locator rotate z*90 scale 1.25}
|
||||
}
|
||||
#declare BM_Thigh_L_Object=
|
||||
union {
|
||||
object {BM_Thigh_L_Object}
|
||||
object {BM_Vector_Locator rotate z*90 scale 1.25}
|
||||
}
|
||||
#declare BM_Calf_R_Object=
|
||||
union {
|
||||
object {BM_Calf_R_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Calf_L_Object=
|
||||
union {
|
||||
object {BM_Calf_L_Object}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Foot_R_Object=
|
||||
union {
|
||||
object {BM_Foot_R_Object}
|
||||
cylinder {<0,-3.25,0><0,-3.0,0>6.5 pigment {rgb <1,0,0>}}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#declare BM_Foot_L_Object=
|
||||
union {
|
||||
object {BM_Foot_L_Object}
|
||||
cylinder {<0,-3.25,0><0,-3.0,0>6.5 pigment {rgb <1,0,0>}}
|
||||
object {BM_Vector_Locator}
|
||||
}
|
||||
#end
|
||||
|
||||
// End of Defaults File
|
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 32 KiB |
|
@ -1,320 +0,0 @@
|
|||
/****************************************************************
|
||||
Feet Macro for use with "bmpeople.inc" v4.0
|
||||
refer to "bmmanual.txt" for usage information
|
||||
*******************************************************************/
|
||||
#ifndef (BM_Defaults)
|
||||
#include "bmdefs.inc"
|
||||
#end
|
||||
|
||||
#macro FootModel (LR,ToeAng)
|
||||
union {
|
||||
blob{
|
||||
threshold BM_Build
|
||||
cylinder { <0,0,0>,<0,.00001,0> 0.36, .75 // joint
|
||||
scale <1, 0.8, .5>
|
||||
translate <0.0, 0.08, -0.03>
|
||||
|
||||
}
|
||||
/*
|
||||
sphere { <0,0,0>, 0.36, -.75 // joint
|
||||
scale <1, 1, 1.5>
|
||||
translate <0.0, 0.1, 0.1>
|
||||
|
||||
} */
|
||||
/*
|
||||
sphere {0,.3,-.75
|
||||
scale <2,1,1>
|
||||
translate <0,-.1,0> pigment {rgb x}
|
||||
}
|
||||
*/
|
||||
cylinder { <-.1,.05,-.1>,<.1,.05,-.15>,.1,1 }
|
||||
cylinder { <0, 0, -0.1>, <0, .1, -0.25>, 0.4, 1 //
|
||||
scale <0.6,0.6, 1>
|
||||
translate <-0.01, 0, 0>
|
||||
}
|
||||
cylinder { <0, 0, -0.05>, <0, 0, -0.45>, 0.3, 1
|
||||
scale <0.9,0.7, 1>
|
||||
translate <0.05, -0.08, 0>
|
||||
}
|
||||
cylinder { <0, 0, -0.5>, <0, 0, -0.75>, 0.3, 1 // side
|
||||
scale <0.9, 0.5, 1>
|
||||
translate <0.15, -0.15, 0>
|
||||
}
|
||||
|
||||
cylinder { <0, 0, -0.15>, <0, 0, -0.65>, 0.4, 1 // bottom & heel
|
||||
scale <0.9,0.55, 1>
|
||||
translate <0, -0.17,0>
|
||||
}
|
||||
|
||||
|
||||
sphere { 0,.1, 1
|
||||
scale <1,1,1.5>
|
||||
translate <-0.12, -.21, -0.8>
|
||||
}
|
||||
sphere { 0,.1, 1
|
||||
scale <1,1,1.5>
|
||||
translate <0.01, -.22, -0.8>
|
||||
}
|
||||
sphere { 0,.1, 1
|
||||
scale <1,1,1.5>
|
||||
translate <0.12, -.22, -0.8>
|
||||
}
|
||||
sphere { <0,0,0>,.1, 1
|
||||
scale <1,1,1.5>
|
||||
translate <0.22, -.2, -0.8>
|
||||
}
|
||||
sphere { 0,.1, 1
|
||||
scale <1,1,1.5>
|
||||
translate <0.28, -.18, -0.8>
|
||||
}
|
||||
// Heel
|
||||
cylinder {<0,0,0>,<0,.4,0>,.3,.5
|
||||
scale <1,.5,1>
|
||||
rotate x*-15
|
||||
translate <0.00, -0.17,0>
|
||||
}
|
||||
sphere {0,.3,1
|
||||
scale <.75,.5,.8>
|
||||
translate <0.05, -0.15,-.7>
|
||||
}
|
||||
|
||||
sphere {0,.3,-.85
|
||||
scale <.75,2,.9>
|
||||
rotate z*55
|
||||
translate <-.3,-.27,-.45>
|
||||
}
|
||||
|
||||
}
|
||||
// Toes
|
||||
union {
|
||||
// 1st Toe (Big)
|
||||
blob {
|
||||
threshold BM_Build
|
||||
cylinder { <0, 0, .1>, <0, 0, -0.2>, 0.16, 1
|
||||
}
|
||||
sphere { <0,0,.2>,.25,-.7 }
|
||||
rotate <ToeAng, 0, 0>
|
||||
translate <-0.12, 0, -0.8>
|
||||
//sturm
|
||||
}
|
||||
// 2nd Toe
|
||||
blob {
|
||||
threshold BM_Build
|
||||
cylinder { <0, 0, 0>, <0, 0, -0.19>, 0.14, 1
|
||||
rotate ToeAng*x
|
||||
translate <0.01, 0.01, -0.8>}
|
||||
//sturm
|
||||
}
|
||||
// 3rd Toe
|
||||
blob {
|
||||
threshold BM_Build
|
||||
cylinder { <0, 0, 0>, <0, 0, -0.17>, 0.13, 1
|
||||
rotate ToeAng*x
|
||||
translate <0.12, 0.005, -0.8>}
|
||||
//sturm
|
||||
}
|
||||
// 4th Toe
|
||||
blob {
|
||||
threshold BM_Build
|
||||
cylinder { <0, 0, 0>, <0, 0, -0.15>, 0.12, 1
|
||||
rotate <ToeAng, 5, 0>
|
||||
translate <0.22, 0, -0.8>}
|
||||
sturm
|
||||
}
|
||||
// 5th Toe (Little)
|
||||
blob {
|
||||
threshold BM_Build
|
||||
cylinder { <0, 0, 0>, <0, 0, -0.13>, 0.11, 1
|
||||
rotate <ToeAng, 10, 0>
|
||||
translate <0.3, 0,-0.8>}
|
||||
//sturm
|
||||
}
|
||||
translate <0, -0.175, 0>
|
||||
}
|
||||
translate <0,.05,0>
|
||||
#if (BM_Gender=0)
|
||||
scale <8.5,8,8>
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
scale 7
|
||||
#end
|
||||
rotate -3*z
|
||||
scale <LR,1,1>
|
||||
}
|
||||
#end
|
||||
|
||||
|
||||
#macro bmfeet()
|
||||
|
||||
#if (BM_Gender=0)
|
||||
#local Hips =<1.5,1.5,1.5>;
|
||||
#local ThighLength =14;
|
||||
#local CalfLength =17;
|
||||
#local Ankle =<.15,-1.5,1.35>;
|
||||
#local R_Foot =< 0,-1,-1.4>;
|
||||
#local L_Foot =< 0,-1,-1.4>;
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
#local Hips =<.75,-2.5,1.5>;
|
||||
#local ThighLength =14.7;
|
||||
#local CalfLength =18.9;
|
||||
#local Ankle =<0,-1,.25>;
|
||||
#local R_Foot =<-.55,2,-1>;
|
||||
#local L_Foot =< .55,2,-1>;
|
||||
#end
|
||||
|
||||
#local RL_Knee =vrotate(<0,-ThighLength,0>,BM_RL_H2K);
|
||||
#local RL_Ankle=vrotate(<0,-CalfLength,0> ,BM_RL_K2A);
|
||||
#local LL_Knee =vrotate(<0,-ThighLength,0>,BM_LL_H2K);
|
||||
#local LL_Ankle=vrotate(<0,-CalfLength,0> ,BM_LL_K2A);
|
||||
|
||||
|
||||
#local R_HipReplace=<BM_RL_H2K.y/-50,0,BM_RL_H2K.y/-50>-<BM_RL_K2A.y/-50,0,BM_RL_K2A.y/-50>;
|
||||
#local L_HipReplace=<BM_LL_H2K.y/-50,0,BM_LL_H2K.y/ 50>-<BM_LL_K2A.y/-50,0,BM_LL_K2A.y/ 50>;
|
||||
|
||||
#local R_Foot_Trans=transform {rotate BM_RF_Rot rotate BM_RL_K2A translate RL_Knee+RL_Ankle+<-Hips.x+R_HipReplace.x,-29+Hips.y+BM_Gender,R_HipReplace.z+Hips.z> translate R_Foot}
|
||||
#local L_Foot_Trans=transform {rotate BM_LF_Rot rotate BM_LL_K2A translate LL_Knee+LL_Ankle+< Hips.x+L_HipReplace.x,-29+Hips.y+BM_Gender,L_HipReplace.z+Hips.z> translate L_Foot}
|
||||
|
||||
#declare BMOFL=transform {translate -(LL_Knee+LL_Ankle+<0,-ThighLength-CalfLength,0>)
|
||||
#if (BM_Gender=0)
|
||||
translate -L_Foot-<0,.5,0>
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
translate -L_Foot-<0,1,0>
|
||||
#end
|
||||
rotate -BM_LF_Rot
|
||||
rotate -BM_LL_K2A
|
||||
translate z*4
|
||||
}
|
||||
|
||||
#declare BMOFR=transform {translate -(RL_Knee+RL_Ankle+<0,-ThighLength-CalfLength,0>)
|
||||
#if (BM_Gender=0)
|
||||
translate -R_Foot-<0,.5,0>
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
translate -R_Foot-<0,1,0>
|
||||
#end
|
||||
rotate -BM_RF_Rot
|
||||
rotate -BM_RL_K2A
|
||||
translate z*4
|
||||
}
|
||||
|
||||
//#declare BM_RF_Location=<0,0,4>+R_Foot+<-Hips.x+R_HipReplace.x,-29+Hips.y+BM_Gender,R_HipReplace.z+Hips.z>+RL_Ankle+RL_Knee;
|
||||
#declare BM_RF_Location=vrotate (<0,0,4>,BM_RF_Rot);
|
||||
#declare BM_LF_Location=vrotate (<0,0,-4>,BM_LF_Rot);
|
||||
#if (BM_Gender=1)
|
||||
#declare BM_RF_Location=BM_RF_Location+<0,6,0>+< Hips.x,Hips.y,Hips.z>+RL_Ankle+RL_Knee;
|
||||
#declare BM_LF_Location=BM_LF_Location+<0,6,0>+<-Hips.x,Hips.y,Hips.z>+LL_Ankle+LL_Knee;
|
||||
#end
|
||||
#if (BM_Gender=0)
|
||||
#declare BM_RF_Location=BM_RF_Location+<0,.25,0>+< Hips.x,Hips.y,Hips.z>+RL_Ankle+RL_Knee;
|
||||
#declare BM_LF_Location=BM_LF_Location+<0,.25,0>+<-Hips.x,Hips.y,Hips.z>+LL_Ankle+LL_Knee;
|
||||
#end
|
||||
|
||||
|
||||
|
||||
union {
|
||||
// Right Foot
|
||||
union {
|
||||
object {
|
||||
#if (BM_R_Foot>0)
|
||||
FootModel (-1,BM_Toe_Angle.z)
|
||||
#else
|
||||
BM_nul
|
||||
#end
|
||||
translate Ankle
|
||||
}
|
||||
|
||||
object {BM_Foot_R_Object}
|
||||
material {
|
||||
texture {BM_Skin_Tex}
|
||||
#ifdef (Foot_R_IMap)
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Foot_R_IMap
|
||||
map_type 0
|
||||
interpolate 4
|
||||
once
|
||||
}
|
||||
scale 8
|
||||
translate <-4,-4,-4>
|
||||
}
|
||||
#ifdef (BM_Map_Finish)
|
||||
finish {BM_Map_Finish}
|
||||
#end
|
||||
#ifdef (BM_Map_Normal)
|
||||
normal {BM_Map_Normal}
|
||||
#end
|
||||
#ifdef (Foot_R_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Foot_R_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size BM_Bump_Map_Size
|
||||
}
|
||||
scale 8
|
||||
translate <-4,-4,-4>
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
transform R_Foot_Trans
|
||||
}
|
||||
// Left Foot
|
||||
union {
|
||||
object {
|
||||
#if (BM_L_Foot>0)
|
||||
FootModel (1,BM_Toe_Angle.x)
|
||||
#else
|
||||
BM_nul
|
||||
#end
|
||||
translate Ankle
|
||||
}
|
||||
|
||||
object {BM_Foot_L_Object}
|
||||
material {
|
||||
texture {BM_Skin_Tex}
|
||||
#ifdef (Foot_L_IMap)
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Foot_L_IMap
|
||||
map_type 0
|
||||
interpolate 4
|
||||
once
|
||||
}
|
||||
scale 8
|
||||
translate <-4,-4,-4>
|
||||
}
|
||||
#ifdef (BM_Map_Finish)
|
||||
finish {BM_Map_Finish}
|
||||
#end
|
||||
#ifdef (BM_Map_Normal)
|
||||
normal {BM_Map_Normal}
|
||||
#end
|
||||
#ifdef (Foot_L_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Foot_L_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size BM_Bump_Map_Size
|
||||
}
|
||||
scale 8
|
||||
translate <-4,-4,-4>
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
transform L_Foot_Trans
|
||||
}
|
||||
}
|
||||
#end
|
||||
|
||||
// End of Feet Macro
|
|
@ -1,91 +0,0 @@
|
|||
/****************************************************************
|
||||
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
|
|
@ -1,376 +0,0 @@
|
|||
/****************************************************************
|
||||
Hand Macro for use with "bmpeople.inc" v4.0
|
||||
refer to "bmmanual.txt" for usage information
|
||||
*******************************************************************/
|
||||
#ifndef (BM_Defaults)
|
||||
#include "bmdefs.inc"
|
||||
#end
|
||||
|
||||
#macro bmhand(Hand)
|
||||
#if (Hand>0)
|
||||
#local H_S2E=BM_LA_S2E;
|
||||
#local H_E2W=BM_LA_E2W;
|
||||
#local Hand_Rot=BM_LH_Rot;
|
||||
#local FP_Pos=BM_LFP_Pos;
|
||||
#local FR_Pos=BM_LFR_Pos;
|
||||
#local FM_Pos=BM_LFM_Pos;
|
||||
#local FI_Pos=BM_LFI_Pos;
|
||||
#local FT_Pos=BM_LFT_Pos;
|
||||
#else
|
||||
#local H_S2E=BM_RA_S2E;
|
||||
#local H_E2W=BM_RA_E2W;
|
||||
#local Hand_Rot=BM_RH_Rot;
|
||||
#local FP_Pos=BM_RFP_Pos;
|
||||
#local FR_Pos=BM_RFR_Pos;
|
||||
#local FM_Pos=BM_RFM_Pos;
|
||||
#local FI_Pos=BM_RFI_Pos;
|
||||
#local FT_Pos=BM_RFT_Pos;
|
||||
#end
|
||||
|
||||
#if (BM_Gender=0)
|
||||
#local UpperarmLength= 11;
|
||||
#local ForearmLength = 10.5;
|
||||
#local Shoulder = <8.25,1.5,0>;
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
#local UpperarmLength= 10.85;
|
||||
#local ForearmLength = 10.5;
|
||||
#local Shoulder = <6.25,1.5,.2>;
|
||||
#end
|
||||
|
||||
#local H_Elbow=vrotate(<0,-UpperarmLength,0>,H_S2E);
|
||||
#local H_Wrist=vrotate(<0,-ForearmLength-.75,0> ,H_E2W);
|
||||
#local Hand_Trans=transform {rotate y*(90*Hand) rotate Hand_Rot rotate H_E2W translate H_Elbow+H_Wrist+<Shoulder.x*Hand,-UpperarmLength+Shoulder.y,Shoulder.z+1>}
|
||||
#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 (Hand=-1)
|
||||
#local TempHand=BM_R_Hand;
|
||||
#else
|
||||
#local TempHand=BM_L_Hand;
|
||||
#end
|
||||
|
||||
#local Finger_Joint_angle =
|
||||
array[5][4]
|
||||
{
|
||||
{FT_Pos.x,FT_Pos.y,FT_Pos.z,FT_Pos.t}, // 1st finger
|
||||
{FI_Pos.x,FI_Pos.y,FI_Pos.z,FI_Pos.t}, // 2nd finger
|
||||
{FM_Pos.x,FM_Pos.y,FM_Pos.z,FM_Pos.t}, // 3rd finger
|
||||
{FR_Pos.x,FR_Pos.y,FR_Pos.z,FR_Pos.t}, // 4th finger
|
||||
{FP_Pos.x,FP_Pos.y,FP_Pos.z,FP_Pos.t} // 5th finger
|
||||
}
|
||||
|
||||
#declare Finger_N = 1;
|
||||
union {
|
||||
union {
|
||||
#if (TempHand>=1)
|
||||
blob {
|
||||
// part of palm
|
||||
// palm length = 1
|
||||
threshold BM_Build+.1
|
||||
cylinder{<-0.3, 0.2, 0.00>, <-0.3, 0.85, 0.00>, 0.3, 1 scale <1,1,0.8>}
|
||||
cylinder{<-0.2, 0.1, 0.05>, <-0.2, 0.90, 0.05>, 0.3, 1 scale <1,1,0.8>}
|
||||
cylinder{<-0.1, 0.0 ,0.10>, <-0.1, 0.95, 0.10>, 0.3, 1 scale <1,1,0.8>}
|
||||
cylinder{< 0.0, 0.0, 0.15>, < 0.1, 0.90, 0.15>, 0.3, 1 scale <1,1,0.8>} // palm center
|
||||
cylinder{< 0.10, 0.00, 0.15>, < 0.10, 0.90, 0.15>, 0.30, 1 scale <1,1,0.8>}
|
||||
cylinder{< 0.15, 0.10, 0.05>, < 0.20, 0.87, 0.0>, 0.30, 1 scale <1,1,0.8>}
|
||||
cylinder{< 0.25, 0.05, 0.00>, < 0.35, 0.85, -0.025>, 0.30, 1 scale <1,1,0.8>}
|
||||
cylinder{< 0.25, 0.15, 0.0>, < 0.40, 0.70, -0.05>, 0.28, 1 scale <1,1,0.8>}
|
||||
cylinder{< 0.60, 0.40, 0.0>, < 0.75, 0.70, -0.1>, 0.28, 1 scale <0.6,1,0.8> }
|
||||
//
|
||||
sphere{<0, 0, 0>, 0.5, 1 // rize of 5th finger side
|
||||
scale <0.6, 1.2, 0.5>
|
||||
rotate -15*z
|
||||
translate <0.15, 0.25, -0.10>
|
||||
|
||||
}
|
||||
//
|
||||
sphere{<0, 0, 0>, 0.4, 1 // rize of 1st finger side
|
||||
scale <0.70, 1.0, 0.7>
|
||||
rotate 30*z
|
||||
translate <-0.15, 0.15, -0.10>
|
||||
}
|
||||
sphere { <-0.15, 0.15, -0.05>, 0.4, 1 scale <1,1, 0.6>}
|
||||
|
||||
// finger 1 of first finger
|
||||
cylinder { <-0.3, 0.1, 0>, <-0.45, 0.3, -0.25>,0.33, 1
|
||||
rotate <Finger_Joint_angle[0][3], -Finger_Joint_angle[0][0], 0>
|
||||
}
|
||||
}
|
||||
//---------- finger 2 & 3 of 1st finger
|
||||
object {
|
||||
union{ // finger2
|
||||
blob {
|
||||
threshold BM_Build+.1
|
||||
cylinder { <0, 0, 0 >, <0, 0.20, 0>, 0.30, 1 scale <1, 1, 1> }
|
||||
sphere { <0,0,0>, 0.12, 1.5 scale < 1.2, 1.0, 0.8> translate <0, 0.26, 0.05> }
|
||||
}
|
||||
union { // finger3
|
||||
blob {
|
||||
threshold BM_Build+.1
|
||||
cylinder { <0, 0, 0>, <0, 0.20, 0>, 0.26, 1 scale <0.9, 1, 0.9> }
|
||||
sphere { <0,0,0>, 0.2, 1 scale <1.0, 1.3, 0.9> translate <0, 0.02, -0.02> }
|
||||
}
|
||||
// Nail
|
||||
#if (BM_Nails=1)
|
||||
difference {
|
||||
cylinder { <0,0,0> <0,0.23, 0> 0.11 }
|
||||
cylinder { <0,-0.1,0> <0,0.24, 0> 0.105 }
|
||||
plane { z, 0.06 }
|
||||
plane { -y, 0 rotate -50*x translate 0.08*y }
|
||||
#if (BM_Gender=0)
|
||||
scale <1,.5,0.8>
|
||||
#else
|
||||
scale <1,1,0.8>
|
||||
#end
|
||||
rotate -5*x
|
||||
translate <0,0.15,0.045>
|
||||
texture { BM_Nail_Tex }
|
||||
}
|
||||
#else
|
||||
object {BM_nul}
|
||||
#end
|
||||
rotate <-10-Finger_Joint_angle[0][2], 0, 0>
|
||||
translate <0, 0.35, 0.0> // 3rd finger joint point
|
||||
}
|
||||
rotate <-15-Finger_Joint_angle[0][1], 0, 15>
|
||||
translate < 0.0, 0.40, 0.0> // 2nd finger joint point
|
||||
}
|
||||
rotate -90*y
|
||||
rotate 30*z
|
||||
rotate -20*x
|
||||
translate <-0.3, 0.05, -0.2>
|
||||
rotate <Finger_Joint_angle[0][3], -Finger_Joint_angle[0][0], 0>
|
||||
#if (Hand=-1)
|
||||
#if (BM_Map_R_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#else
|
||||
#if (BM_Map_L_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
// Parts form 2nd to 5th finger
|
||||
#while ( Finger_N < 5 )
|
||||
// define finger
|
||||
union {
|
||||
blob { // finger 1
|
||||
threshold BM_Build+.1
|
||||
cylinder { <0,0,0>, <0,0.40,0>, 0.3, 1
|
||||
#if (Hand=-1)
|
||||
#if (BM_Map_R_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#else
|
||||
#if (BM_Map_L_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#end
|
||||
}
|
||||
sphere { < 0,0,0 >, 0.20, 1 scale < 0.7, 1, 1.0> translate 0.01*z}
|
||||
sphere { < 0,0,0 >, 0.10, 1 scale < 1.2, 1, 0.6> translate <0, 0.46, 0.08>}
|
||||
|
||||
}
|
||||
union { // finger 2
|
||||
blob {
|
||||
threshold BM_Build+.1
|
||||
cylinder { <0,0,0>, <0,0.25,0>, 0.28, 1 }
|
||||
sphere { < 0,0,0 >, 0.10, 1 scale < 1.2, 1, 0.6> translate <0, -0.01, 0.08>}
|
||||
sphere { < 0,0,0 >, 0.10, 1 scale < 1.2, 1, 0.6> translate <0, 0.26, 0.08>}
|
||||
}
|
||||
union{ // finger 3
|
||||
blob{
|
||||
threshold 0.6
|
||||
cylinder { <0,0,0>, <0,0.25,0>, 0.26, 1 }
|
||||
sphere { <0,0,0>, 0.12, 1 scale < 1, 1.2, 1> translate <0,0.30,0.01> }
|
||||
sphere { < 0,0,0 >, 0.10, 1 scale < 1.2, 1, 0.6> translate <0, -0.01, 0.08>}
|
||||
}
|
||||
// Nail
|
||||
#if (BM_Nails=1)
|
||||
difference {
|
||||
cylinder { <0,0,0> <0,0.30, 0> 0.11 }
|
||||
cylinder { <0,-0.1,0> <0,0.31, 0> 0.105 }
|
||||
plane { z, 0.06 }
|
||||
plane { -y, 0 rotate -50*x translate 0.14*y }
|
||||
#if (BM_Gender=0)
|
||||
scale <1,.5,0.8>
|
||||
#else
|
||||
scale <1,1,0.8>
|
||||
#end
|
||||
translate <0,0.15,0.04>
|
||||
texture { BM_Nail_Tex }
|
||||
}
|
||||
#else
|
||||
object {BM_nul}
|
||||
#end
|
||||
|
||||
rotate <-Finger_Joint_angle[Finger_N][2], 0, 0 >
|
||||
translate <0,0.3,0> // 3rd finger joitnt point
|
||||
}
|
||||
rotate <-Finger_Joint_angle[Finger_N][1], 0, 0 >
|
||||
translate <0,0.40,0> // 2nd finger joitnt point
|
||||
#if (Hand=-1)
|
||||
#if (BM_Map_R_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#else
|
||||
#if (BM_Map_L_Finger=0)
|
||||
texture {BM_Skin_Tex}
|
||||
#end
|
||||
#end
|
||||
}
|
||||
#switch ( Finger_N )
|
||||
#case(1) scale 0.9 #break
|
||||
#case(3) scale <0.85,0.90,0.85> #break
|
||||
#case(4) scale <0.80,0.75,0.80> #break
|
||||
#else
|
||||
#end
|
||||
rotate <-Finger_Joint_angle[Finger_N][0], 0, Finger_Joint_angle[Finger_N][3] >
|
||||
#switch ( Finger_N )
|
||||
#case(1) translate <-0.30, 0.95, 0.03> #break // 1st finger joitnt point of 2nd finger
|
||||
#case(2) translate < 0.00, 1.00, 0.10> #break
|
||||
#case(3) translate < 0.27, 0.95, 0.08> #break
|
||||
#case(4) translate < 0.47, 0.75, -0.05> #break
|
||||
#else
|
||||
#end
|
||||
#declare Finger_N = Finger_N + 1;
|
||||
}
|
||||
#end // while end
|
||||
#else
|
||||
object {BM_nul}
|
||||
#end
|
||||
scale <-Hand,-1,1>
|
||||
translate <0,0,.05*Hand>
|
||||
scale 3
|
||||
}
|
||||
#if (Hand=-1)
|
||||
// Right Hand Object
|
||||
object {BM_Hand_R_Object rotate y*(-90*Hand)}
|
||||
#else
|
||||
// Left Hand Object
|
||||
object {BM_Hand_L_Object rotate y*(-90*Hand)}
|
||||
#end
|
||||
#if (BM_Gender=0)
|
||||
scale <1,1,1.25>
|
||||
scale 1.1
|
||||
#end
|
||||
|
||||
#if (Hand=-1)
|
||||
material {
|
||||
texture {BM_Skin_Tex}
|
||||
#ifdef (Hand_R_IMap)
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Hand_R_IMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
}
|
||||
rotate y*90
|
||||
scale 9.5
|
||||
translate <0,-8.5,0>
|
||||
}
|
||||
#ifdef (BM_Map_Finish)
|
||||
finish {BM_Map_Finish}
|
||||
#end
|
||||
#ifdef (BM_Map_Normal)
|
||||
normal {BM_Map_Normal}
|
||||
#end
|
||||
#ifdef (Hand_R_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Hand_R_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size BM_Bump_Map_Size
|
||||
}
|
||||
rotate y*90
|
||||
scale 9.5
|
||||
translate <0,-8.5,0>
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
#else
|
||||
material {
|
||||
texture {BM_Skin_Tex}
|
||||
#ifdef (Hand_L_IMap)
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Hand_L_IMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
}
|
||||
rotate y*-90
|
||||
scale 9.5
|
||||
translate <0,-8.5,0>
|
||||
}
|
||||
#ifdef (BM_Map_Finish)
|
||||
finish {BM_Map_Finish}
|
||||
#end
|
||||
#ifdef (BM_Map_Normal)
|
||||
normal {BM_Map_Normal}
|
||||
#end
|
||||
#ifdef (Hand_L_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Hand_L_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size BM_Bump_Map_Size
|
||||
}
|
||||
rotate y*-90
|
||||
scale 9.5
|
||||
translate <0,-8.5,0>
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
transform Hand_Trans
|
||||
transform TorsoTrans
|
||||
|
||||
}
|
||||
// Origin Variables
|
||||
|
||||
#local ReverseTorso=transform {translate <0,20,0> rotate <0,-BM_Torso_Rot.y,0> translate <0,-20,0>
|
||||
translate <0,20,-3> rotate <-BM_Torso_Rot.x,0,-BM_Torso_Rot.z> translate <0,-20,3>
|
||||
}
|
||||
|
||||
#if (Hand=-1)
|
||||
#declare BMOPR=transform {transform ReverseTorso
|
||||
translate -H_Elbow+-H_Wrist+<-Shoulder.x*Hand,UpperarmLength-Shoulder.y,-Shoulder.z+1>
|
||||
rotate -H_E2W
|
||||
rotate -Hand_Rot
|
||||
rotate y*-(270*Hand)
|
||||
rotate x*-(90*Hand)
|
||||
rotate y*(25*Hand)
|
||||
translate y*.5
|
||||
translate x*-Hand
|
||||
}
|
||||
#else
|
||||
#declare BMOPL=transform {transform ReverseTorso
|
||||
translate -H_Elbow+-H_Wrist+<-Shoulder.x*Hand,UpperarmLength-Shoulder.y,-Shoulder.z+1>
|
||||
rotate -H_E2W
|
||||
rotate -Hand_Rot
|
||||
rotate y*-(270*Hand)
|
||||
rotate x*(90*Hand)
|
||||
rotate y*(25*Hand)
|
||||
translate y*.5
|
||||
translate x*-Hand
|
||||
}
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
// End of Hand Macro
|
|
@ -1,278 +0,0 @@
|
|||
/****************************************************************
|
||||
Head Macro for use with "bmpeople.inc" v4.0
|
||||
refer to "bmmanual.txt" for usage information
|
||||
*****************************************************************/
|
||||
#ifndef (BM_Defaults)
|
||||
#include "bmdefs.inc"
|
||||
#end
|
||||
|
||||
#macro bmhead()
|
||||
|
||||
#local Eyes=BM_EyeLids;
|
||||
#if (Eyes.x>1) #local Eyes=<1,Eyes.y,Eyes.z>; #end
|
||||
#if (Eyes.x<0) #local Eyes=<0,Eyes.y,Eyes.z>; #end
|
||||
#if (Eyes.z>1) #local Eyes=<Eyes.x,Eyes.y,1>; #end
|
||||
#if (Eyes.z<0) #local Eyes=<Eyes.x,Eyes.y,0>; #end
|
||||
#ifndef (BM_Eye_Shadow)
|
||||
#local BM_Eye_Shadow=texture {BM_Skin_Tex}
|
||||
#end
|
||||
#local MouthWidth=BM_Mouth;//+1.5;
|
||||
#local MouthHeight=BM_Jaw;
|
||||
#local MouthPos=<0,-4,-2.75>;
|
||||
#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>
|
||||
}
|
||||
#local MouthRot=<0,0,BM_MouthShape*15>;
|
||||
#local HalfHead=difference {
|
||||
blob {
|
||||
threshold BM_Build
|
||||
#if (BM_Head_Mass>= 1)
|
||||
sphere{0,5.6,2 scale <1,1,.95> translate z*-1 } // Top Front of Skull
|
||||
sphere{0,5.6,2 scale <1,1,.9> translate z*1 } // Top of Back Skull
|
||||
cylinder{<0,2.5,0><0,4,0>,1,1 scale <2.5,1,3> translate <0,-5,-1.3> }
|
||||
cylinder{<0,1.5,0><0,2,0>,1,1 scale <1.5,1,3>translate <0,-5,-1.3> }
|
||||
sphere{0,4,1 scale <.75,.5,.75> rotate x*10 translate <0,-3.5,.75>} // Base of Skull
|
||||
sphere {0,2.85,2 translate <0,-2.75,-1.3> rotate y*-35}
|
||||
cylinder{<0,0,0><0,1,0>,1,1 scale <3-(BM_Gender/2),1,3> translate <0,-5,-1.75> rotate x*(BM_Jaw*-12)}
|
||||
sphere {0,4,1.5 scale <1,1,.75> translate <0,-3.5,0>}
|
||||
|
||||
#if (BM_Face>0)
|
||||
cylinder {<1,0,0><2.5,0,0>,1,-.75 rotate y*-35 translate <0,-.8,-4.25> }
|
||||
sphere {0,1,-.25 scale <3,1,1> translate <.5,-1,-4.25> }
|
||||
// Nose
|
||||
|
||||
#if (BM_Gender=0)
|
||||
cylinder{<-.5-(BM_Gender/6),1.5,1><-.15-(BM_Gender/6),-1,-BM_Nose>,1,2 translate <0,-.7-.75,-4.>} // Nose
|
||||
cylinder{<-.7-(BM_Gender/4),0,0><.7-(BM_Gender/4),0,0>,.5,2 translate<0,-1.75-.75,-4.3>} // Nostrils
|
||||
#end
|
||||
#if (BM_Gender=1)
|
||||
sphere {0,1,1 scale <.75,1,1> translate <-.15,-1.5,-3.8>}
|
||||
sphere {0,1,1 scale <.75,1,1> translate <-.15,-2,-3.9>}
|
||||
sphere {0,1,1 scale <.75,1,1> translate <-.10,-2.5,-4>}
|
||||
sphere {0,.75,1 scale <.75,1,1> translate <-.05,-2.75,-4.25>}
|
||||
#end
|
||||
#end
|
||||
// Eye Ridge Socket
|
||||
#if (BM_Face>0)
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1.5 scale <1,1.75,1> rotate y*-20 rotate z*0 translate <1.5,-1.8,-4.5> texture {BM_Eye_Shadow}}
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1 scale <1,1.75,1> rotate y*-20 rotate z*0 translate <1.5,-1.8,-4.5> rotate y*-20 texture {BM_Eye_Shadow}}
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1 scale <1,1.75,1> rotate y*-20 rotate z*0 translate <1.5,-1.9,-4.5> rotate y*-40 }
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1.5 scale <1,1,1> rotate y*-20 rotate z*7.5 translate <1.5,-1.8,-4.5> }
|
||||
#else
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1.5 scale <1,1.75,1> rotate y*-20 rotate z*0 translate <1.5,-1.8,-4.5> }
|
||||
cylinder{<0,0,0>,<10,0,0>,1,-1 scale <1,1.75,1> rotate y*-20 rotate z*-30 translate <1.5,-1.8,-4.5> rotate y*-20}
|
||||
|
||||
#end
|
||||
// Cheeks
|
||||
sphere{0,1.5,BM_Jowls+.0000001 scale <1.25,1.5,.75> rotate x*-20 translate <0,-3,-3> rotate y*-55 }
|
||||
// Ears
|
||||
#if (BM_Ears>= 2)
|
||||
sphere{0,1,2 scale<1,1.75,.7> rotate y*-45 rotate z*-10 translate<4.2,-.85-.5,0> } // Outer Ear Left
|
||||
sphere{0,1,-2 scale<1,1.75,.7>*.7 rotate y*-45 rotate z*-10 translate<4.2,-.7-.5,-.35>} // Inner Ear Left
|
||||
sphere{0,1,2 scale<1,1.75,.7>/3.5 rotate y*-45 rotate z*-10 translate<4.025,-.7-.5,-.35>} // Inner Ear Canal Left
|
||||
#end
|
||||
#if (BM_Ears = 1)
|
||||
sphere{0,1,2 scale<1,1.0,.9> scale <1,1.75,1.5> rotate z*-5 translate<3.8,-.85-.75,0> } // Outer Ear Left
|
||||
#end
|
||||
// Mouth
|
||||
#if (BM_Face>0)
|
||||
#if (BM_Jaw>1)
|
||||
#local MouthHeight=1;
|
||||
#end
|
||||
#if (MouthHeight<=.25)
|
||||
#local MouthHeight=.5;
|
||||
#end
|
||||
#local MouthHeight=BM_Jaw+(BM_Jaw/10)+.0001;
|
||||
// Inside of Mouth
|
||||
|
||||
sphere {0,1,-4 scale <.1+BM_Mouth*1.5,.1+BM_Jaw,1> rotate MouthRot translate MouthPos-<0,BM_Jaw/2-(BM_Jaw/3),0> pigment {rgb -1.5}}
|
||||
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
#if (BM_Head_Mass= 0)
|
||||
sphere {<0,0,0>.00001,0.0000001 pigment {rgbft 1}}
|
||||
#end
|
||||
#if (BM_Head_Mass< 0)
|
||||
// Object Guides
|
||||
sphere{0,5.6,2 scale <1,1,.95> translate z*-1 } // Top Front of Skull
|
||||
sphere{0,5.6,2 scale <1,1,.9> translate z*1 } // Top of Back Skull
|
||||
sphere{0,4,1 scale <.75,.5,.75> rotate x*10 translate <0,-3.5,.75>} // Base of Skull
|
||||
cylinder{<0,2.5,0><0,4,0>,1,1 scale <2.5,1,3> translate <0,-5,-1.3> }
|
||||
cylinder{<0,1.5,0><0,2,0>,1,1 scale <1.5,1,3>translate <0,-5,-1.3> }
|
||||
sphere {0,2.85,2 translate <0,-2.75,-1.3> rotate y*-35}
|
||||
cylinder{<0,0,0><0,1,0>,1,1 scale <3-(BM_Gender/2),1,3> translate <0,-5,-1.75> rotate x*(BM_Jaw*-12)}
|
||||
sphere {0,4,1.5 scale <1,1,.75> translate <0,-3.5,0>}
|
||||
|
||||
|
||||
#end
|
||||
}
|
||||
plane {x,-0.0000001}
|
||||
}
|
||||
union {
|
||||
object {HalfHead}
|
||||
object {HalfHead scale <-1,1,1>}
|
||||
// Teeth
|
||||
#local Loop=90;
|
||||
#local Denture=union {
|
||||
#while (Loop>-90)
|
||||
superellipsoid {<.25,.25> scale <.2,.5,.1> translate z*-2.2 rotate y*Loop}
|
||||
#local Loop=Loop-11;
|
||||
#end
|
||||
texture {BM_Tooth_Tex}
|
||||
scale <.8,.75,1>
|
||||
translate z*-.5
|
||||
}
|
||||
#if (BM_Teeth)
|
||||
union {
|
||||
object {Denture translate <0,MouthPos.y+1.2,-1.25>}
|
||||
object {Denture scale <1,-1,1> translate y*-.5 rotate x*-MouthHeight*6 translate <0,MouthPos.y+.5,-.75>}
|
||||
rotate x*-15
|
||||
translate y*.15
|
||||
}
|
||||
#end
|
||||
// Eyes
|
||||
#if (BM_Eyes>0)
|
||||
union {
|
||||
sphere{0,1 pigment{rgb 1}}
|
||||
sphere{0,.7 translate z*-.35 rotate y*18 pigment{rgb BM_EyeCol}}
|
||||
sphere{0,.2 translate z*-.9 rotate y*18 pigment{rgb 0}}
|
||||
difference {
|
||||
sphere{0,1.1 }
|
||||
box {<5,5,0><-5,-5,-10> }
|
||||
rotate z*-9
|
||||
rotate x*-(Eyes.x*65+65)
|
||||
texture {BM_Eye_Shadow}
|
||||
}
|
||||
rotate x*-7
|
||||
rotate y*-11
|
||||
rotate <0,Eyes.y+10,0>
|
||||
#if (BM_Face>0)
|
||||
translate<0,-.75,-3.>
|
||||
#else
|
||||
translate<0,-.75,-3.>
|
||||
#end
|
||||
rotate y*-27
|
||||
}
|
||||
union {
|
||||
sphere{0,1 pigment{rgb 1}}
|
||||
sphere{0,.7 translate z*-.35 rotate y*-18 pigment{rgb BM_EyeCol}}
|
||||
sphere{0,.2 translate z*-.9 rotate y*-18 pigment{rgb 0}}
|
||||
difference {
|
||||
sphere{0,1.1 }
|
||||
box {<2,2,0><-2,-2,-4> }
|
||||
rotate z*9
|
||||
rotate x*-(Eyes.z*65+65)
|
||||
texture {BM_Eye_Shadow}
|
||||
}
|
||||
rotate x*-7
|
||||
rotate y*11
|
||||
rotate <0,Eyes.y-10,0>
|
||||
#if (BM_Face>0)
|
||||
translate<0,-.75,-3.>
|
||||
#else
|
||||
translate<0,-.75,-3.>
|
||||
#end
|
||||
rotate y*27
|
||||
}
|
||||
#else
|
||||
object {BM_nul}
|
||||
#end
|
||||
object {BM_Head_Object}
|
||||
material {
|
||||
texture {BM_Skin_Tex}
|
||||
#ifdef (Face_IMap)
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Face_IMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
}
|
||||
rotate y*-90
|
||||
translate <0,-.55,0>
|
||||
scale 12
|
||||
}
|
||||
#ifdef (BM_Map_Finish)
|
||||
finish {BM_Map_Finish}
|
||||
#end
|
||||
#ifdef (BM_Map_Normal)
|
||||
normal {BM_Map_Normal}
|
||||
#end
|
||||
#ifdef (Face_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Face_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size BM_Bump_Map_Size
|
||||
}
|
||||
rotate y*-90
|
||||
translate <0,-.55,0>
|
||||
scale 12
|
||||
}
|
||||
#end
|
||||
}
|
||||
#end
|
||||
}
|
||||
#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
|
||||
}
|
||||
// Origin Variables
|
||||
#local ReverseAll=transform {
|
||||
translate <0,20,0> rotate <0,-BM_Torso_Rot.y,0> translate <0,-20,0>
|
||||
translate <0,20,-3> rotate <-BM_Torso_Rot.x,0,-BM_Torso_Rot.z> translate <0,-20,3>
|
||||
translate <0,5,-1>
|
||||
rotate -<BM_Neck_Rot.x,0,BM_Neck_Rot.z>
|
||||
rotate -y*BM_Head_Rot.y
|
||||
rotate -x*BM_Head_Rot.x
|
||||
rotate -z*BM_Head_Rot.z
|
||||
translate <0,-5.5,1>
|
||||
}
|
||||
|
||||
#declare BMOHF=transform {transform ReverseAll
|
||||
translate z*4.5
|
||||
}
|
||||
#declare BMOHB=transform {transform ReverseAll
|
||||
translate z*-4
|
||||
}
|
||||
#declare BMOHT=transform {transform ReverseAll
|
||||
translate y*-3.5
|
||||
}
|
||||
#declare BMOeR=transform {transform ReverseAll
|
||||
translate y*3
|
||||
translate x*-3.5
|
||||
}
|
||||
#declare BMOeL=transform {transform ReverseAll
|
||||
translate y*3
|
||||
translate x*3.5
|
||||
}
|
||||
|
||||
#declare BMONs=transform {transform ReverseAll
|
||||
translate y*3
|
||||
translate z*4.75
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#end
|
||||
|
||||
|
||||
|
||||
// End of Head Macro
|
|
@ -1,908 +0,0 @@
|
|||
******************************************************************************************
|
||||
___ _ _ __ __
|
||||
| _ ) |___| |__| \/ |__ _ _ _
|
||||
| _ \ / _ \ '_ \ |\/| / _` | ' \ v4.0
|
||||
|___/_\___/_.__/_| |_\__,_|_||_|
|
||||
| _ \___ ___ _ __| |___
|
||||
| _/ -_) _ \ '_ \ / -_)
|
||||
|_| \___\___/ .__/_\___|
|
||||
|_|
|
||||
|
||||
Humanoid figures for POV-Ray v3.1
|
||||
|
||||
by Peter Houston 1999, 2000
|
||||
|
||||
******************************************************************************************
|
||||
IMPORTANT NOTE : This version is not compatitble with older Pose or CDF files, also
|
||||
all of the macro's have been renamed and reformatted.
|
||||
I apologise if this causes some confusion but the changes were necessary
|
||||
to allow the improvements in this latest release.
|
||||
|
||||
The latest version of the package is avilable from my website (see section 9.0)
|
||||
******************************************************************************************
|
||||
|
||||
0.0 INTRODUCTION
|
||||
1.0 INSTALLATION
|
||||
2.0 QUICK START
|
||||
3.0 BASIC FEATURES
|
||||
3.1 Blob_Man Macro
|
||||
3.2 Textures
|
||||
3.3 Origin Transformations
|
||||
3.4 Positioning the Limbs
|
||||
3.4.1 Using Decalrations
|
||||
3.4.2 Using Arrays
|
||||
3.4.3 Blob_Man_Studio.pov and Hand_Studio.pov
|
||||
4.0 ADVANCED FEATURES
|
||||
4.1 Head Macro
|
||||
4.2 Torso Macro
|
||||
4.3 Hand Macro
|
||||
4.4 Feet Macro
|
||||
4.5 Hair Macro
|
||||
4.6 Optional Parameters
|
||||
4.7 Image Maps
|
||||
5.0 COSTUME OBJECTS
|
||||
5.1 Limb Objects
|
||||
5.2 Costume Definition File
|
||||
6.0 HINTS & TIPS
|
||||
7.0 MISC INFO
|
||||
7.1 Creating Face Image Maps
|
||||
7.2 Creating Limb Image Maps
|
||||
7.3 Bump Maps
|
||||
7.4 Blob Man's Future
|
||||
7.5 Known Problems
|
||||
8.0 HISTORY
|
||||
9.0 CONTACTING THE AUTHOR
|
||||
10.0 CREDITS
|
||||
|
||||
******************************************************************************************
|
||||
0.0 INTRODUCTION
|
||||
******************************************************************************************
|
||||
Blob Man People is a set of macros to create humanoid figures, these figure can be Male or
|
||||
Female and almost every moving body part can be positioned, right down to individual finger
|
||||
joints.
|
||||
|
||||
The figures can be clothed by the use of externally created Costume Files.
|
||||
|
||||
******************************************************************************************
|
||||
1.0 INSTALLATION
|
||||
******************************************************************************************
|
||||
Copy all *.INC, *.PNG, and *.CDF files to one of the directories (folders) in your
|
||||
POV-Ray library path (as for example, the default include directory). If you don´t know
|
||||
what they are, open your POVRAY.INI. If you have a PC running Windows95/98 or WindowsNT,
|
||||
they probably look something like this:
|
||||
|
||||
Library_Path=C:\POV-Ray for Windows\include
|
||||
|
||||
******************************************************************************************
|
||||
2.0 QUICK START
|
||||
******************************************************************************************
|
||||
Create a basic scene file similar to this :
|
||||
|
||||
// Cut Here
|
||||
|
||||
global_settings { assumed_gamma 2.2 }
|
||||
|
||||
camera {
|
||||
location <0, 1, -3.5>
|
||||
direction 1.5*z
|
||||
right 4/3*x
|
||||
look_at <0, 1, 0.0>
|
||||
}
|
||||
|
||||
sky_sphere
|
||||
{
|
||||
pigment
|
||||
{
|
||||
gradient y
|
||||
color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }
|
||||
}
|
||||
}
|
||||
|
||||
light_source
|
||||
{
|
||||
0*x
|
||||
color rgb <1,.9,.95>*1.5
|
||||
translate <-80, 40, -80>
|
||||
}
|
||||
|
||||
|
||||
cylinder {<0,0,0><0,-2,0> 20
|
||||
pigment {checker pigment {rgb 0}, pigment {rgb 1} rotate y*16}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************
|
||||
The following code loads the Blob Man Include and Pose files
|
||||
and creates the one Male and one Female Figure
|
||||
************************************************************/
|
||||
#include "bmpeople.inc"
|
||||
|
||||
Blob_Man(Male,2)
|
||||
object {BlobMan
|
||||
transform BMO_Foot_R
|
||||
translate x*-.5
|
||||
}
|
||||
|
||||
Blob_Man(Female,2)
|
||||
object {BlobMan
|
||||
transform BMO_Foot_R
|
||||
translate x*.5
|
||||
}
|
||||
|
||||
// Cut here
|
||||
|
||||
******************************************************************************************
|
||||
3.0 BASIC FEATURES
|
||||
******************************************************************************************
|
||||
|
||||
3.1 Blob_Man Macro
|
||||
===================
|
||||
Before the Blob_Man Macro can be called the "bmpeople.inc" file needs to be included.
|
||||
|
||||
The syntax for calling the macro is as follows :-
|
||||
|
||||
Blob_Man( Gender, Height )
|
||||
|
||||
Gender : [ FLOAT ] 0=Male, 1=Female (Note you can also use the identifiers Male or Female)
|
||||
Height : [ FLOAT ] This is the overall height of the figure in POV Units.
|
||||
|
||||
Once called an object BlobMan is declared, this can now be positioned as required using the
|
||||
Origin Transformations (refer to 3.3).
|
||||
|
||||
3.2 Textures
|
||||
=============
|
||||
In its basic form Blob_Man declares two default textures, but these can be user defined,
|
||||
along with an optional texture.
|
||||
|
||||
BM_Skin_Tex : This is the overall texture for the figure, if it is undeclared the default
|
||||
texture will be used.
|
||||
|
||||
Default: BM_Skin_Tex= texture {pigment{rgb <.9,.7,.6>}
|
||||
finish{phong .3 phong_size 40}
|
||||
}
|
||||
|
||||
BM_Lip_Tex : This is the texture for the figures lips, if it is undeclared the default
|
||||
texture will be used.
|
||||
|
||||
Default: BM_Lip_Tex = texture {pigment{rgb <.7,.3,.2>}
|
||||
finish{phong .3 phong_size 40}
|
||||
normal{crackle .2 turbulence .7 scale .7}
|
||||
}
|
||||
|
||||
BM_Nail_Tex : This is the texture for the Finger Nails, if it is undeclared the default
|
||||
texture will be used.
|
||||
|
||||
Default : BM_Nail_Tex = texture{ BM_Skin_Tex
|
||||
finish { ambient -.25}
|
||||
}
|
||||
|
||||
BM_Tooth_Tex: This is the texture used for the teeth, if it is undeclared the default texture
|
||||
will be used.
|
||||
|
||||
Default: BM_Tooth_Tex= texture { pigment {rgb 1}
|
||||
finish {phong .9 phong_size 90}
|
||||
}
|
||||
|
||||
BM_Hair_Tex : This is the texture for the figures hair, if it is undecalred then the Hair_Col
|
||||
<r,g,b> variable passed by the Blob_Man macro will be used to generate a
|
||||
randomised hair colour. There is no default hair texture.
|
||||
|
||||
BM_Eye_Shadow: This is the texture for putting colour on the Eye Lids, if it is undeclared then
|
||||
the Eye Lids will use BM_Skin_Tex. There is no default for Eye Shadow.
|
||||
|
||||
In addition to these textures, there are also defineable Image Maps that is used for each part of
|
||||
the body. Refer to section 4.7
|
||||
For tips on creating your own image maps refer to section 7.1
|
||||
|
||||
3.3 Origin Transformations
|
||||
===========================
|
||||
The Blob_Man Macro declares the following Origin Transformations for you to locate the figure,
|
||||
when used they locate the given point to <0,0,0>.
|
||||
|
||||
BMO_Foot_R = Locates to the Right Foot
|
||||
BMO_Foot_L = Locates to the Left Foot
|
||||
BMO_Toe_R = Locates to the Right Toes
|
||||
BMO_Toe_L = Locates to the Left Toes
|
||||
BMO_Knee_R = Locates to the Right Knee
|
||||
BMO_Knee_L = Locates to the Left Knee
|
||||
BMO_Hip_R = Locates to the Right Hip
|
||||
BMO_Hip_L = Locates to the Left Hip
|
||||
BMO_Abdomen_F = Locates to the Front of the Abdomen
|
||||
BMO_Abdomen_B = Locates to the Back of the Abdomen
|
||||
BMO_Abdomen_U = Locates to the Underside of the Abdomen
|
||||
BMO_Abdomen_R = Locates to the Right of the Abdomen
|
||||
BMO_Abdomen_L = Locates to the Left of the Abdomen
|
||||
BMO_Torso_F = Locates to the Front of the Torso (Chest)
|
||||
BMO_Torso_B = Locates to the Back of the Torso
|
||||
BMO_Torso_R = Locates to the Right of the torso
|
||||
BMO_Torso_L = Locates to the Left of the Torso
|
||||
BMO_Torso_T = Locates to the Top of the Torso (Mid-Shoulders)
|
||||
BMO_Shoulder_R = Locates to the Right Shoulder
|
||||
BMO_Shoulder_L = Locates to the Left Shoulder
|
||||
BMO_Elbow_R = Locates to the Right Elbow
|
||||
BMO_Elbow_L = Locates to the Left Elbow
|
||||
BMO_Hand_R = Locates to the Right Palm (Flat on y plane)
|
||||
BMO_Hand_L = Locates to the Left Palm (Flat of y plane)
|
||||
BMO_Head_F = Locates to the Front of the Head (Forehead)
|
||||
BMO_Head_B = Locates to the Back of the Head
|
||||
BMO_Head_T = Locates to the Top of the Head
|
||||
BMO_Ear_R = Locates to the Right Ear
|
||||
BMO_Ear_L = Locates to the Left Ear
|
||||
BMO_Nose = Locates to the Nose
|
||||
|
||||
eg. transform BMO_Foot_R
|
||||
This would relocate the BlobMan object to <0,0,0>
|
||||
|
||||
If you do not use any of the above transformations then you will need to include the
|
||||
following.
|
||||
|
||||
scale BM_Scale
|
||||
|
||||
This is necessary to resize the figure to the correct size that you specified in the
|
||||
Blob_Man macro, it is already included in the above transformations so isn't required if you
|
||||
stick with those.
|
||||
|
||||
3.4 Positioning the Limbs
|
||||
==========================
|
||||
Blob Man is made up of 27 individually positionable parts. Each one needs to be declared
|
||||
before Blob_Man macro is called.
|
||||
|
||||
There are two ways of defining the poses.
|
||||
|
||||
3.4.1 Using Decalrations
|
||||
=========================
|
||||
The following variables need to be declared to alter the position of the relevant body part
|
||||
if undeclared the default value will be used.
|
||||
Note: If you are using multiple figures, you will need to re-declare these variables or
|
||||
else all the figures will be in the same pose.
|
||||
|
||||
|
||||
BM_Head_Rot Default: <0,0,0> Head
|
||||
BM_Neck_Rot Default: <0,0,0> Neck (Note y is not used)
|
||||
BM_Torso_Rot Default: <0,0,0> Upper Torso (Chest)
|
||||
BM_RA_S2E Default: <-8,0,-8> Right Upper Arm
|
||||
BM_RA_E2W Default: <8,0,-3> Right Forearm
|
||||
BM_LA_S2E Default: <-8,0,8> Left Upper Arm
|
||||
BM_LA_E2W Default: <8,0,3> Left Forearm
|
||||
BM_RL_H2K Default: <8,0,-5> Right Thigh
|
||||
BM_RL_K2A Default: <-8,0,3> Right Lower Leg
|
||||
BM_LL_H2K Default: <8,0,5> Left Thigh
|
||||
BM_LL_K2A Default: <-8,0,-3> Left Lower Leg
|
||||
BM_RF_Rot Default: <8,0,-3> Right Foot
|
||||
BM_LF_Rot Default: <8,0,3> Left Foot
|
||||
BM_RH_Rot Default: <0,0,0> Right Hand
|
||||
BM_LH_Rot Default: <0,0,0> Left Hand
|
||||
|
||||
BM_Toe_Angle Default: <0,0,0> Toe Angle x=left Foot z=Right Foot (Note y is not used)
|
||||
|
||||
The Fingers are handled in a slightly different way, they are declared as 4 component vectors
|
||||
<x,y,z,t>
|
||||
x=Angle of 1st joint of the finger nearest the palm
|
||||
y=Angle of 2nd joint of the finger
|
||||
z=Angle of 3rd joint of the finger
|
||||
t=Side to side movement angle (Range: -10 to 10)
|
||||
|
||||
Right Hand Fingers
|
||||
BM_RFP_Pos Default: <5,45,5,0> Pinky
|
||||
BM_RFR_Pos Default: <10,30,5,0> Ring
|
||||
BM_RFM_Pos Default: <5,15,5,0> Middle
|
||||
BM_RFI_Pos Default: <0,10,0,0> Index
|
||||
BM_RFT_Pos Default: <0,-10,5,10> Thumb
|
||||
|
||||
Left Hand Fingers
|
||||
BM_LFP_Pos Default: <5,45,5,0> Pinky
|
||||
BM_LFR_Pos Default: <10,30,5,0> Ring
|
||||
BM_LFM_Pos Default: <5,15,5,0> Middle
|
||||
BM_LFI_Pos Default: <0,10,0,0> Index
|
||||
BM_LFT_Pos Default: <0,-10,5,10> Thumb
|
||||
|
||||
If you intend to use multiple figures in a scene each with differing poses, or if you want
|
||||
to use the same pose in different scenes, then you should declare these variables in a
|
||||
seperate file, then include it just before you call the Blob_Man macro.
|
||||
|
||||
3.4.2 Using Arrays
|
||||
===================
|
||||
The second method of defining the positions of the body parts is to use an array.
|
||||
For more information about arrays refer to the POV-Ray Documentation.
|
||||
|
||||
The following Arrays will need to be defined before the Blob_Man Macro is called.
|
||||
|
||||
BM_Pose = array[n][17] (Where n is the number of entries in the array)
|
||||
All entries are 3 component vectors <x,y,z>
|
||||
|
||||
{BM_Head_Rot, Head
|
||||
BM_Neck_Rot, Neck (Note y is not used)
|
||||
BM_Torso_Rot, Upper Torso (Chest)
|
||||
BM_RA_S2E, Right Upper Arm
|
||||
BM_RA_E2W, Right Forearm
|
||||
BM_LA_S2E, Left Upper Arm
|
||||
BM_LA_E2W, Left Forearm
|
||||
BM_RL_H2K, Right Thigh
|
||||
BM_RL_K2A, Right Lower Leg
|
||||
BM_LL_H2K, Left Thigh
|
||||
BM_LL_K2A, Left Lower Leg
|
||||
BM_RF_Rot, Right Foot
|
||||
BM_LF_Rot, Left Foot
|
||||
BM_Toe_Angle, Toe Angle x=left Foot z=Right Foot (Note y is not used)
|
||||
BM_RH_Rot, Right Hand
|
||||
BM_LH_Rot, Left Hand
|
||||
<0,0,1> x=Left Hand Array Entry z=Right Hand Array Entry (See Below)
|
||||
} (Note y is not used)
|
||||
|
||||
|
||||
BM_Hands = array[n][5] (Where n is the number of entries in the array)
|
||||
All entries are 4 component vectors <x,y,z,t>
|
||||
x=Angle of 1st joint of the finger nearest the palm
|
||||
y=Angle of 2nd joint of the finger
|
||||
z=Angle of 3rd joint of the finger
|
||||
t=Side to side movement angle (Range: -10 to 10)
|
||||
{
|
||||
BM_ FP_Pos, Pinky
|
||||
BM_ FR_Pos, Ring
|
||||
BM_ FM_Pos, Middle
|
||||
BM_ FI_Pos, Index
|
||||
BM_ FT_Pos Thumb
|
||||
}
|
||||
|
||||
|
||||
As you can have many entries in the arrays, before the Blob_Man macro is called you will
|
||||
need to specify the Array Entry Number
|
||||
|
||||
#declare BM_PoseNo= Arry Entry Number (Remember that the first entry in an array is 0)
|
||||
|
||||
If you have used a figure that has been positioned using Arrays, and then you want to
|
||||
position the body parts of a new figure using the declaration method (Section 3.4.1)
|
||||
you will need to re-declare BM_PoseNo to a value of -1.
|
||||
|
||||
i.e.
|
||||
#declare BM_PoseNo=-1;
|
||||
|
||||
Included in the distribution pack, you will find three includes "bm_pose.inc" and "bm_hands.inc"
|
||||
are sample arrays containing 12 (0-11) pre-defined poses, and 13 (0-12) pre-defined hand
|
||||
positions, and "bm_hair.inc" contains arrays for 5 (0-4) pre-defined Hair styles.
|
||||
|
||||
3.4.3 Blob_Man_Studio.pov and Hand_Studio.pov
|
||||
==============================================
|
||||
To aid you in the creation of the Pose files needed for Blob Man, there are two Scene Files
|
||||
that you can use, "Blob_Man_Studio.pov" and "Hand_Studio.pov"
|
||||
|
||||
Blob_Man_Studio.pov allows you to view the pre-defined poses included in "bm_pose.inc" as
|
||||
well as create your own, it shows six views of the figure (Left, Front, Right, Back, Top
|
||||
and Underneath), you can change each of the variables and view the results (it doesn't take
|
||||
long to render at 320 x 240 No AA and you can easily see if the pose is correct).
|
||||
Part of this scene creates two external files "bmarray.txt" and "bmdaclar.txt", when you
|
||||
are happy with the pose rename the file you wish to use
|
||||
"bmarray.txt" defines the BM_Pose array with one entry (0) and BM_Hands array with
|
||||
two entrie (0-1) and the Arrays for defining the Hair Style.
|
||||
"bmdeclar.txt" contains all the declarations needed to define the pose including Hair.
|
||||
|
||||
Hand_Studio.pov allows you to view the pre-defined hand positions included in "bm_hands.inc"
|
||||
as well as create your own, it shows six views of a hand, you can alter each finger
|
||||
and once you are happy with the results, rename the file "bmhand.txt" which contains
|
||||
a BM_Hand Array of one entry (0).
|
||||
|
||||
******************************************************************************************
|
||||
4.0 ADVANCED FEATURES
|
||||
******************************************************************************************
|
||||
Each of the macros that make up Blob Man can each be called individually if required. This
|
||||
could be useful if you only wanted to use body parts individually.
|
||||
|
||||
Note: if you use these macros in this way, you will need to scale them yourself BM_Scale will
|
||||
not work, nor will the Origin Transformations.
|
||||
|
||||
Call all of these macros from within an object{} definition. Skin_Tex and Lip_Tex need to be
|
||||
decalred before the macros are called or the default textures will be used (see section 3.2)
|
||||
|
||||
4.1 Head Macro
|
||||
===============
|
||||
The syntax for using this macro is as follows :
|
||||
|
||||
bmhead()
|
||||
|
||||
The following variables effect the head
|
||||
|
||||
BM_Head_Rot Head
|
||||
BM_Neck_Rot Neck (Note y is not used)
|
||||
BM_Torso_Rot Upper Torso (Chest)
|
||||
|
||||
4.2 Torso Macro
|
||||
================
|
||||
The syntax for using this macro is as follows :
|
||||
|
||||
bmtorso()
|
||||
|
||||
The following variables effect the torso (including the abdomen)
|
||||
|
||||
BM_Torso_Rot Upper Torso (Chest)
|
||||
BM_RA_S2E Right Upper Arm
|
||||
BM_RA_E2W Right Forearm
|
||||
BM_LA_S2E Left Upper Arm
|
||||
BM_LA_E2W Left Forearm
|
||||
BM_RL_H2K Right Thigh
|
||||
BM_RL_K2A Right Lower Leg
|
||||
BM_LL_H2K Left Thigh
|
||||
BM_LL_K2A Left Lower Leg
|
||||
|
||||
4.3 Hand Macro
|
||||
===============
|
||||
The syntax for using this macro is as follows :
|
||||
Call this macro twice, once for each hand.
|
||||
|
||||
bmhand( Hand )
|
||||
|
||||
Hand = [ FLOAT ] Right Hand = -1 / Left Hand = 1
|
||||
|
||||
The following variables effect the hands
|
||||
|
||||
BM_Torso_Rot, Upper Torso (Chest)
|
||||
BM_RA_S2E, Right Upper Arm
|
||||
BM_RA_E2W, Right Forearm
|
||||
BM_LA_S2E, Left Upper Arm
|
||||
BM_LA_E2W, Left Forearm
|
||||
BM_RH_Rot, Right Hand
|
||||
BM_LH_Rot, Left Hand
|
||||
BM_RFP_Pos Right Pinky Finger
|
||||
BM_RFR_Pos Right Ring Finger
|
||||
BM_RFM_Pos Right Middle Finger
|
||||
BM_RFI_Pos Right Index Finger
|
||||
BM_RFT_Pos Right Thumb
|
||||
BM_LFP_Pos Left Pinky Finger
|
||||
BM_LFR_Pos Left Ring Finger
|
||||
BM_LFM_Pos Left Middle Finger
|
||||
BM_LFI_Pos Left Index Finger
|
||||
BM_LFT_Pos Left Thumb
|
||||
|
||||
4.4 Feet Macro
|
||||
===============
|
||||
The syntax for using this macro is as follows :
|
||||
|
||||
bmfeet()
|
||||
|
||||
The following variables effect the feet
|
||||
|
||||
BM_Torso_Rot Upper Torso (Chest)
|
||||
BM_RL_H2K Right Thigh
|
||||
BM_RL_K2A Right Lower Leg
|
||||
BM_LL_H2K Left Thigh
|
||||
BM_LL_K2A Left Lower Leg
|
||||
BM_RF_Rot Right Foot
|
||||
BM_LF_Rot Left Foot
|
||||
BM_Toe_Angle Toe Angle x=left Foot z=Right Foot (Note y is not used)
|
||||
|
||||
|
||||
4.5 Hair Macro
|
||||
===============
|
||||
The syntax for using this macro is as follows :
|
||||
|
||||
bmhair()
|
||||
|
||||
The following variables effect the hair
|
||||
|
||||
BM_Head_Rot Head
|
||||
BM_Neck_Rot Neck (Note y is not used)
|
||||
BM_Torso_Rot Upper Torso (Chest)
|
||||
BM_Hair_On Hair (1) or No Hair (0)
|
||||
BM_Hair_Rot Rotation Vector for Hair
|
||||
BM_Hair_Arch Arch hairline over head inline with ears (1) or Not (0)
|
||||
BM_Hair_Thck Thickness of Hair (Best settings 0.15 to 0.5)
|
||||
BM_Hair_Line Height of Hairline (Best settings 3 to 6)
|
||||
BM_Hair_LDpth Hairline profile Depth (Range : 0 to 1)
|
||||
BM_Hair_Wght Hair Weight (Range: 0.005 to 0.05)
|
||||
BM_Hair_Hght Hair Height (Range: 1 to 2)
|
||||
BM_Hair_Length Hair Length (Range: 1 to 20)
|
||||
BM_Hair_Curl Curliness (Range 0-Straight to 0.1-Curly)
|
||||
|
||||
|
||||
4.6 Optional Parameters
|
||||
========================
|
||||
There are a few optional parameters available that will change the way Blob Man appears,
|
||||
these variables must be declared before the Macro's are called. (# = Default Setting)
|
||||
|
||||
BM_Ears = [ FLOAT ] 2 = Normal Ears (#)
|
||||
1 = Replace ears with small lumps as if under a swimming cap
|
||||
0 = No ears
|
||||
|
||||
BM_Eyes = [ FLOAT ] 1 = Normal Eyes (#)
|
||||
0 = No Eyes
|
||||
|
||||
BM_Face = [ FLOAT ] 1 = Normal Face Structure (#)
|
||||
0 = Removes Nose and Lips
|
||||
|
||||
BM_R_Foot = [ FLOAT ] 1 = Normal Right Foot (#)
|
||||
0 = Missing Right Foot
|
||||
|
||||
BM_L_Foot = [ FLOAT ] 1 = Normal Left Foot (#)
|
||||
0 = Missing Left Foot
|
||||
|
||||
BM_R_Hand = [ FLOAT ] 1 = Normal Right Hand (#)
|
||||
0 = Missing Right Hand
|
||||
|
||||
BM_L_Hand = [ FLOAT ] 1 = Normal Left Hand (#)
|
||||
0 = Missing Left Hand
|
||||
|
||||
BM_Torso_Mass = [ FLOAT ] 1 = Normal Torso (#)
|
||||
0 = No Torso
|
||||
-1 = Guides
|
||||
|
||||
BM_Head_Mass = [ FLOAT ] 1 = Normal Head (#)
|
||||
0 = No Head
|
||||
-1 = Guides
|
||||
|
||||
BM_Jaw = [ FLOAT ] Range: 0 - 1 0= Closed, 1=Open. Default = 0.5
|
||||
|
||||
BM_Mouth = [ FLOAT ] Mouth Size Range: 0(Small) to 1(Large) Default = 1;
|
||||
|
||||
BM_MouthShape = [ FLOAT ] Range: -1 - 1 Turns the corners of the mouth
|
||||
+Up / -Down Default= 0.5
|
||||
|
||||
BM_Teeth = [ FLOAT ] 0 = No Teeth
|
||||
1 = Teeth (#)
|
||||
|
||||
BM_Jowls = [ FLOAT ] Range 0 - 2 : Amount of mass added to sides of jaw,
|
||||
Jowls. Default=0
|
||||
|
||||
BM_Nose = [ FLOAT ] Range 0 - 1.25 : Size of Nose. Default = 0.5
|
||||
|
||||
BM_Flex = [ FLOAT ] (Male Figure Only) When the Torso is rotated some of the
|
||||
muscles flex in the abdomen, this makes Costume Definition difficult
|
||||
if there are objects located near these muscles.
|
||||
1 = Flex On (#)
|
||||
0 = Flex Off
|
||||
BM_TShirt = [ FLOAT ] (Female Figures Only) This adds extra mass between the breasts to
|
||||
give the impression that the figure is wearing a T-Shirt.
|
||||
Useful for Costume Definition
|
||||
1 = On
|
||||
0 = Off (#)
|
||||
|
||||
BM_EyeCol = [ R,G,B ] This is the Eye Colour vector Default= <.22,.69,.87>
|
||||
|
||||
BM_EyeLids = [ X,Y,Z ] X=Left EyeLid Range 0 (Open) - 1 (Closed)
|
||||
Y=Eye Rotation Angle (Left to Right)
|
||||
Z=Right EyeLid Range 0 (Open) - 1 (Closed)
|
||||
Default = <0,0,0>
|
||||
|
||||
BM_Nails = [ FLOAT ] 1 = Finger Nails (#)
|
||||
0 = No Finger Nails
|
||||
|
||||
BM_Map_R_Finger = [ FLOAT ] 1 = Apply Right Hand Image Map to Fingers (#)
|
||||
0 = Do Not Apply Right Hand Image Map to Fingers
|
||||
|
||||
BM_Map_L_Finger = [ FLOAT ] 1 = Apply Left Hand Image Map to Fingers (#)
|
||||
0 = Do Not Apply Left Hand Image Map to Fingers
|
||||
|
||||
The following parameters all have the same options
|
||||
|
||||
BM_R_Upperarm_Mass : Right Upper Arm =
|
||||
BM_L_Upperarm_Mass : Left Upper Arm =
|
||||
BM_R_Forearm_Mass : Right Forearm = [ FLOAT ] 1 = Normal (#)
|
||||
BM_L_Forearm_Mass : Left Forearm = 0 = Amputated
|
||||
BM_R_Thigh_Mass : Right Thigh = -1 = Guides
|
||||
BM_L_Thigh_Mass : Left Thigh =
|
||||
BM_R_Calf_Mass : Right Calf =
|
||||
BM_L_Calf_Mass : Left Calf =
|
||||
|
||||
BM_Guide_Rad = [ FLOAT ] When using Guide Settings (-1) above this is the radius of
|
||||
cylindrical sections. Default = 2
|
||||
|
||||
BM_Hair_Seed = [ FLOAT ] Random seed for the hair macro. Default = 77
|
||||
|
||||
BM_PoseNo = [ FLOAT ] This is used in conjunction with BM_Pose Array it specifies
|
||||
which Array entry to use for the pose.
|
||||
-1 = Do not Use Arrays (#) This must be reset if you are switching
|
||||
between array and declarations in one scene
|
||||
refer to section 3.4.2
|
||||
0-... = Array Entry Number
|
||||
|
||||
BM_Pose_RHand = [ FLOAT ] If you are using the BM_Pose Array when this is set to -1 the
|
||||
Right hand specified by the Pose Array Entry will be used, however
|
||||
if it is set to >=0 then the Hand Positions specified in that
|
||||
entry of the BM_Hands Array will be used.
|
||||
If you are not using the BM_Pose Array then when set to -1 the
|
||||
figure will use the finger positions that have been declared
|
||||
but if it is set >=0 then the Hand Positions specified in that
|
||||
entry of the BM_Hands Array will be used.
|
||||
Default = -1 (Arrays Not Used)
|
||||
|
||||
BM_Pose_LHand = [ FLOAT ] If you are using the BM_Pose Array when this is set to -1 the
|
||||
Left hand specified by the Pose Array Entry will be used, however
|
||||
if it is set to >=0 then the Hand Positions specified in that
|
||||
entry of the BM_Hands Array will be used.
|
||||
If you are not using the BM_Pose Array then when set to -1 the
|
||||
figure will use the finger positions that have been declared
|
||||
but if it is set >=0 then the Hand Positions specified in that
|
||||
entry of the BM_Hands Array will be used.
|
||||
Default = -1 (Arrays Not Used)
|
||||
|
||||
BM_HairStyle = [ FLOAT ] If you are using Arrays for Hair Settings then this represents the
|
||||
Array Entry Number for the Hairstyle.
|
||||
Default = -1 (Arrays Not Used)
|
||||
|
||||
|
||||
4.7 Image Maps
|
||||
===============
|
||||
In addition to the basic Skin, Lip and Nail textures (section 3.2), image maps can also be applied
|
||||
to each of the Body parts.
|
||||
|
||||
The image maps need to be in PNG format, with the alpha channel being used for transparent
|
||||
areas.
|
||||
|
||||
The following variables need to be set prior to the macros being called, the image map files
|
||||
need to be in the POV-Ray library path, or the same folder as the scene file.
|
||||
|
||||
Face_IMap = [ "FILENAME.PNG" ] Image map to be used for the Head.
|
||||
Neck_IMap = [ "FILENAME.PNG" ] Image map to be used for the Neck.
|
||||
Torso_IMap = [ "FILENAME.PNG" ] Image map to be used for the Torso.
|
||||
Abdomen_IMap = [ "FILENAME.PNG" ] Image map to be used for the Abdomen.
|
||||
Upperarm_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Upperarm.
|
||||
Upperarm_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Upperarm.
|
||||
Forearm_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Forearm.
|
||||
Forearm_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Forearm.
|
||||
Hand_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Hand.
|
||||
Hand_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Hand.
|
||||
Thigh_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Thigh.
|
||||
Thigh_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Thigh.
|
||||
Calf_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Calf (Lower Leg).
|
||||
Calf_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Calf (Lower Leg).
|
||||
Foot_R_IMap = [ "FILENAME.PNG" ] Image map to be used for the Right Foot.
|
||||
Foot_L_IMap = [ "FILENAME.PNG" ] Image map to be used for the Left Foot.
|
||||
|
||||
Bump Maps can also be difined in the same way, however these will only be used if the above
|
||||
image maps are defined.
|
||||
|
||||
The bump maps need to be in PNG format.
|
||||
|
||||
The following variables need to be set prior to the macros being called, the bump map files
|
||||
need to be in the POV-Ray library path, or the same folder as the scene file.
|
||||
|
||||
Face_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Head.
|
||||
Neck_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Neck.
|
||||
Torso_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Torso.
|
||||
Abdomen_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Abdomen.
|
||||
Upperarm_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Upperarm.
|
||||
Upperarm_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Upperarm.
|
||||
Forearm_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Forearm.
|
||||
Forearm_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Forearm.
|
||||
Hand_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Hand.
|
||||
Hand_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Hand.
|
||||
Thigh_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Thigh.
|
||||
Thigh_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Thigh.
|
||||
Calf_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Calf (Lower Leg).
|
||||
Calf_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Calf (Lower Leg).
|
||||
Foot_R_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Right Foot.
|
||||
Foot_L_BMap = [ "FILENAME.PNG" ] Bump map to be used for the Left Foot.
|
||||
|
||||
The following options can also be set, these only effect the above image maps.
|
||||
|
||||
BM_Map_Finish = finish {} : Set the finish you wish to apply to the image maps.
|
||||
There is no default finish.
|
||||
|
||||
BM_Map_Normal = normal {} : Set the normal you wish to apply to the image maps.
|
||||
There is no default normal.
|
||||
|
||||
BM_Bump_Map_Size = [ FLOAT ] Bump Map Size, Default = 0.25
|
||||
|
||||
Refer to POV-Ray Documentation for more information on image and bump maps.
|
||||
|
||||
******************************************************************************************
|
||||
5.0 COSTUME OBJECTS
|
||||
******************************************************************************************
|
||||
|
||||
5.1 Limb Objects
|
||||
=================
|
||||
The following parameters are used to create clothing and props for Blob Man, they need to
|
||||
be declared prior to the macros being called, and they must all be valid objects located
|
||||
around <0,0,0>.
|
||||
|
||||
BM_Head_Object = Objects located about the Head.
|
||||
BM_Neck_Object = Objects located about the Head.
|
||||
BM_Torso_Object = Objects located about the Torso.
|
||||
BM_Abdomen_Object = Objects located about the Abdomen.
|
||||
BM_Upperarm_R_Object = Objects located about the Right Upperarm.
|
||||
BM_Upperarm_L_Object = Objects located about the Left Upperarm.
|
||||
BM_Forearm_R_Object = Objects located about the Right Forearm.
|
||||
BM_Forearm_L_Object = Objects located about the Left Forearm.
|
||||
BM_Hand_R_Object = Objects located about the Right Hand.
|
||||
BM_Hand_L_Object = Objects located about the Left Hand.
|
||||
BM_Thigh_R_Object = Objects located about the Right Thigh.
|
||||
BM_Thigh_L_Object = Objects located about the Left Thigh.
|
||||
BM_Calf_R_Object = Objects located about the Right Calf.
|
||||
BM_Calf_L_Object = Objects located about the Left Calf.
|
||||
BM_Foot_R_Object = Objects located about the Right Foot.
|
||||
BM_Foot_L_Object = Objects located about the Left Foot.
|
||||
|
||||
Note : If no texture is given to these objects they will adopt the Skin_Tex texture plus
|
||||
any image maps assigned to that limb.
|
||||
|
||||
The Objects defined above will be included even if the Mass parameters (i.e. BM_Torso_Mass etc)
|
||||
are set in such a way as to be missing, this is useful, if for example you wished to give
|
||||
Blob_man a "Peg Leg". It could also be possible to create a Skeleton, by defining all the
|
||||
bones as objects, and then removing the original body parts by setting their Mass=0
|
||||
|
||||
5.2 Costume Definition File
|
||||
============================
|
||||
The best way to define how blob man will look is to create a Costume Definition File (.cdf)
|
||||
this is basically an include file with all the optional settings declared. The advantage
|
||||
of using this method, is that the same CDF can be used in multiple scenes and likewise
|
||||
multiple CDF's can be used in the same scene. All that needs to be done is include the
|
||||
correct CDF before the macros are called.
|
||||
|
||||
eg.
|
||||
#include "bmpeople.inc"
|
||||
#include "bm_pose.inc"
|
||||
|
||||
#include "example1.cdf"
|
||||
Blob_Man(0,2)
|
||||
|
||||
#include "example2.cdf"
|
||||
Blob_Man(1,1.8)
|
||||
|
||||
etc.
|
||||
|
||||
Included in the Blob Man package are sample .cdf files; "layout.cdf" lists all the optional
|
||||
parameters and their settings, "sample.cdf" and "croft.cdf" are basic Costume Definition File
|
||||
|
||||
More Costume Definition Files are available on from CDF Library (see section 9.0)
|
||||
|
||||
******************************************************************************************
|
||||
6.0 HINTS & TIPS
|
||||
******************************************************************************************
|
||||
To help in the positioning of Blob_Man, there is a DeBug variable that can be set, this
|
||||
generates visible locators to the ends of Blob Mans limbs, note that this will only work
|
||||
if any limb objects created contain the current object as part of the definition i.e.
|
||||
#declare BM_Head_Object= union { object{BM_Head_Object}
|
||||
Costume Objects ...
|
||||
.....
|
||||
}
|
||||
See "sample.cdf" for further examples.
|
||||
|
||||
When testing scenes avoid using hair, as the parse time increases considerably, if you
|
||||
declare a variable eg. HairTest=0, then multiply Hair setting by this number you only need
|
||||
to set HairTest=1 to turn the hair back on for all figures.
|
||||
|
||||
eg.
|
||||
#decalre HairTest=0 // 1= Hair On 0=Hair Off
|
||||
#include "bm_hair.inc" // Hair Arrays Already Defined
|
||||
#declare BM_HairStyle=2*HairTest
|
||||
|
||||
Blob_Man (0,2)
|
||||
|
||||
#declare BM_HairStyle=3*HairTest
|
||||
Blob_Man (1,1.8)
|
||||
|
||||
|
||||
Use Body_Part_Viewer.pov in conjunction with a CDF file to model clothing/props for
|
||||
Blob Man. (see "HOW2CDF.txt" for more information)
|
||||
|
||||
******************************************************************************************
|
||||
7.0 MISC INFO
|
||||
******************************************************************************************
|
||||
|
||||
7.1 Creating Face Image Maps
|
||||
=============================
|
||||
The image maps used for Blob Mans face are PNG format which uses the Alpha Channel.
|
||||
Use an Image Editor that allows you to edit the Alpha channel (eg. Paint Shop Pro, PhotoShop)
|
||||
then create the areas that you wish to be mapped, in the alpha channel. In the main image
|
||||
roughly colour the same areas the colours you want, it doesn't matter how accurate you are
|
||||
as the aplha channel will make unwanted areas transparant.
|
||||
|
||||
7.2 Creating Limb Image Maps
|
||||
=============================
|
||||
As with the face image maps, these need to be in PNG format with the Alpha channel being
|
||||
used for transpancy. There are no sample limb image maps, but below are the dimensions for
|
||||
the different limbs:
|
||||
|
||||
Head, Neck, Torso, Abdomen, Hands, Feet = 1:1 (eg. 600 Wide x 600 High)
|
||||
Upper Arms, Forearms, Thighs, Calves = 1:2 (eg. 300 Wide x 600 High)
|
||||
|
||||
Note about hands :
|
||||
Because the Image maps are applied after the fingers have been positioned, if the
|
||||
image map has a pattern, it will not look the same if the finger positions are changed.
|
||||
|
||||
BM_Map_R_Finger and BM_Map_L_Finger can be set to 0 and this will not map the image map
|
||||
onto the Fingers (1 is the default)
|
||||
|
||||
7.3 Bump Maps
|
||||
==============
|
||||
Bump maps should be Grayscale and in PNG format. Alpha Channel is not used for Bump Maps.
|
||||
They should be the same scale as the Image Maps
|
||||
|
||||
7.4 Blob Man's Future
|
||||
======================
|
||||
Here are just a few ideas I have for improving Blob Man.
|
||||
|
||||
* Different ages ( 2 Years, 6 Years, 12 Years)
|
||||
* A More configurable face model.
|
||||
* An optional Hair Macro
|
||||
* An animation system ( I will probably need help with this, any offers...)
|
||||
|
||||
7.5 Known Problems
|
||||
===================
|
||||
At this time I am unaware of any major problems, except that old CDF Files need to be
|
||||
rewritten to be useable by this version, as will any Pose Files created for earlier versions.
|
||||
|
||||
******************************************************************************************
|
||||
8.0 HISTORY
|
||||
******************************************************************************************
|
||||
v4.0 09 Apr 2000 Major Release.
|
||||
Redesigned and renamed Macros, added Gender, changed the hands and
|
||||
feet, redesigned the torso, torso and abdomen now seperate to allow
|
||||
torso movement, improved the Origin transformations, added scale
|
||||
option to main macro, remodelled the head, plus many other changes.
|
||||
This version is no longer compatible with older versions.
|
||||
|
||||
v3.6 01 Mar 2000 Remodelled the Chest, there is now an optional parameter to switch
|
||||
between the old and new style, for compatability the original style
|
||||
is the default. Added nose size and eyebrow ridge options. Added
|
||||
a section to this doc about Array formats. Included a very basic
|
||||
"How to.." document on CDF creation ("HOW2CDF.TXT")
|
||||
|
||||
v3.5 25 Jul 1999 Added extra modelling detail to head. New optional variables
|
||||
available for Teeth, Jaw and Jowls.
|
||||
|
||||
v3.0 06 Jul 1999 Added Limb Objects to allow creation of clothing and props.
|
||||
Added image and bump maps to all limbs.
|
||||
Maintained Macro Settings for backwards compatibilty with older
|
||||
pose files.
|
||||
Remodeled Nose and lips slightly.
|
||||
Included "sample.cdf" and "layout.cdf"
|
||||
|
||||
v2.0 23 Apr 1999 Remodeled the head, and added variable image_map textures for the
|
||||
face, eye lid variables in head macro now have a range of 0-1 and
|
||||
are can be set for each eye, so winking is possible.
|
||||
Remodeled the feet.
|
||||
Added mass to the arms and legs.
|
||||
Remodeled the hands and articulated the fingers, hand macro now
|
||||
needs to be called twice, once for each hand.
|
||||
Externally defined skin texture.
|
||||
Added a Blob_Man Macro to create a complete figure from a given
|
||||
pose number as defined in a Pose File
|
||||
Rewrote the motion mechanics to make the code more readable.
|
||||
Generally cleaned up the code.
|
||||
Generated more Pre-Defined poses
|
||||
|
||||
v1.0 09 Apr 1999 Initial release.
|
||||
|
||||
v0.0 March 1999 Govert Zoethout published his source files.
|
||||
Original Macros had static arms and no hands or legs, and was in
|
||||
his native language (which I can't speak)
|
||||
|
||||
******************************************************************************************
|
||||
9.0 CONTACTING THE AUTHOR
|
||||
******************************************************************************************
|
||||
If you wish to contact me with bug reports, bug fixes, criticisms, comments, suggested
|
||||
improvements, questions, etc. you can reach me by email at:
|
||||
|
||||
E-mail : houston.graphics@iname.com
|
||||
|
||||
ICQ# : 8770407
|
||||
|
||||
Homepage: http://welcome.to/HoustonGraphics
|
||||
-or-
|
||||
http://members.xoom.com/HoustonGraph
|
||||
|
||||
If you do make any improvements to these macros please let me know, so that I can include
|
||||
them in future releases.
|
||||
|
||||
Also if you design any Costume Definition Files that you would like to share, please send
|
||||
them and I will include them in the CDF Library.
|
||||
|
||||
******************************************************************************************
|
||||
10.0 CREDITS
|
||||
******************************************************************************************
|
||||
Thanks go to the following :-
|
||||
|
||||
POV-Ray Team for producing such fantastic software, and FREE too !!!!
|
||||
|
||||
Govert Zoethout who without his original model, this work would never have come about.
|
||||
|
||||
Yasunari Iwanaga who created his own lady include file which I drew heavily on for
|
||||
the version 4.0 release.
|
||||
|
||||
Chris Colefax for the template of this readme file, producing excellent include files,
|
||||
and inspiring me to contribute to the POV-Ray community.
|
||||
|
||||
All the helpful POV-Ray users around the world, who frequent the POV-Ray Newsgroups.
|
||||
( news.povray.org )
|
||||
|
||||
******************************************************************************************
|
||||
POV-Ray(tm) and Persistence of Vision(tm) are registered trademarks of the POV-Ray Team(tm)
|
|
@ -1,186 +0,0 @@
|
|||
/***************************************************************
|
||||
|
||||
___ _ _ __ __
|
||||
| _ ) |___| |__| \/ |__ _ _ _
|
||||
| _ \ / _ \ '_ \ |\/| / _` | ' \ v4.0
|
||||
|___/_\___/_.__/_| |_\__,_|_||_|
|
||||
| _ \___ ___ _ __| |___
|
||||
| _/ -_) _ \ '_ \ / -_)
|
||||
|_| \___\___/ .__/_\___|
|
||||
|_| 09 April 2000
|
||||
|
||||
by Peter Houston <houston.graphics@iname.com>
|
||||
< http://welcome.to/HoustonGraphics >
|
||||
< http://members.xoom.com/HoustonGraph >
|
||||
based on Blob Man model by Govert Zoethout < zoethout@gmx.net >
|
||||
< http://victorian.fortunecity.com/dada/507/ >
|
||||
and lady.inc by Yasunari Iwanaga < iwaentcl@po.saganet.ne.jp >
|
||||
< http://yasucg.site.ne.jp/ >
|
||||
|
||||
Refer to "bmmanual.txt" for full usage details.
|
||||
|
||||
****************************************************************/
|
||||
|
||||
#local BlobMan_People_Version = version;
|
||||
#version 3.1;
|
||||
|
||||
#ifndef (BM_Defaults)
|
||||
#include "bmdefs.inc"
|
||||
#end
|
||||
|
||||
#include "bmhead.inc"
|
||||
#include "bmtorso.inc"
|
||||
#include "bmhand.inc"
|
||||
#include "bmfeet.inc"
|
||||
#include "bmhair.inc"
|
||||
|
||||
/***************************************************************
|
||||
Blob_Man Macro
|
||||
Syntax
|
||||
Blob_Man(Gender, Height)
|
||||
|
||||
Gender : 0=Male ; 1=Female
|
||||
Height : In POV Units
|
||||
****************************************************************/
|
||||
#macro Blob_Man(Gender,Height)
|
||||
#declare BM_Gender=Gender;
|
||||
#if (BM_PoseNo>=0)
|
||||
#declare BM_Head_Rot = BM_Pose[BM_PoseNo][0];
|
||||
#declare BM_Neck_Rot = BM_Pose[BM_PoseNo][1];
|
||||
#declare BM_Torso_Rot = BM_Pose[BM_PoseNo][2];
|
||||
#declare BM_RA_S2E = BM_Pose[BM_PoseNo][3];
|
||||
#declare BM_RA_E2W = BM_Pose[BM_PoseNo][4];
|
||||
#declare BM_LA_S2E = BM_Pose[BM_PoseNo][5];
|
||||
#declare BM_LA_E2W = BM_Pose[BM_PoseNo][6];
|
||||
#declare BM_RL_H2K = BM_Pose[BM_PoseNo][7];
|
||||
#declare BM_RL_K2A = BM_Pose[BM_PoseNo][8];
|
||||
#declare BM_LL_H2K = BM_Pose[BM_PoseNo][9];
|
||||
#declare BM_LL_K2A = BM_Pose[BM_PoseNo][10];
|
||||
#declare BM_RF_Rot = BM_Pose[BM_PoseNo][11];
|
||||
#declare BM_LF_Rot = BM_Pose[BM_PoseNo][12];
|
||||
#declare BM_Toe_Angle = BM_Pose[BM_PoseNo][13];
|
||||
#declare BM_RH_Rot = BM_Pose[BM_PoseNo][14];
|
||||
#declare BM_LH_Rot = BM_Pose[BM_PoseNo][15];
|
||||
#if (BM_Pose_RHand<0)
|
||||
#declare BM_Pose_RHand = BM_Pose[BM_PoseNo][16].z;
|
||||
#end
|
||||
#if (BM_Pose_LHand<0)
|
||||
#declare BM_Pose_LHand = BM_Pose[BM_PoseNo][16].x;
|
||||
#end
|
||||
#declare BM_RFP_Pos = BM_Hands[BM_Pose_RHand][0];
|
||||
#declare BM_RFR_Pos = BM_Hands[BM_Pose_RHand][1];
|
||||
#declare BM_RFM_Pos = BM_Hands[BM_Pose_RHand][2];
|
||||
#declare BM_RFI_Pos = BM_Hands[BM_Pose_RHand][3];
|
||||
#declare BM_RFT_Pos = BM_Hands[BM_Pose_RHand][4];
|
||||
#declare BM_LFP_Pos = BM_Hands[BM_Pose_LHand][0];
|
||||
#declare BM_LFR_Pos = BM_Hands[BM_Pose_LHand][1];
|
||||
#declare BM_LFM_Pos = BM_Hands[BM_Pose_LHand][2];
|
||||
#declare BM_LFI_Pos = BM_Hands[BM_Pose_LHand][3];
|
||||
#declare BM_LFT_Pos = BM_Hands[BM_Pose_LHand][4];
|
||||
#else
|
||||
#if (BM_Pose_RHand>=0)
|
||||
#declare BM_RFP_Pos = BM_Hands[BM_Pose_RHand][0];
|
||||
#declare BM_RFR_Pos = BM_Hands[BM_Pose_RHand][1];
|
||||
#declare BM_RFM_Pos = BM_Hands[BM_Pose_RHand][2];
|
||||
#declare BM_RFI_Pos = BM_Hands[BM_Pose_RHand][3];
|
||||
#declare BM_RFT_Pos = BM_Hands[BM_Pose_RHand][4];
|
||||
#end
|
||||
#if (BM_Pose_LHand>=0)
|
||||
#declare BM_LFP_Pos = BM_Hands[BM_Pose_LHand][0];
|
||||
#declare BM_LFR_Pos = BM_Hands[BM_Pose_LHand][1];
|
||||
#declare BM_LFM_Pos = BM_Hands[BM_Pose_LHand][2];
|
||||
#declare BM_LFI_Pos = BM_Hands[BM_Pose_LHand][3];
|
||||
#declare BM_LFT_Pos = BM_Hands[BM_Pose_LHand][4];
|
||||
#end
|
||||
#end
|
||||
|
||||
#if (BM_HairStyle>=0)
|
||||
#declare BM_Hair_Rot = BM_Pose_Hair_1[BM_HairStyle][0];
|
||||
|
||||
#declare BM_Hair_On = BM_Pose_Hair_2[BM_HairStyle][0];
|
||||
#declare BM_Hair_Arch = BM_Pose_Hair_2[BM_HairStyle][1];
|
||||
#declare BM_Hair_Thck = BM_Pose_Hair_2[BM_HairStyle][2];
|
||||
#declare BM_Hair_Line = BM_Pose_Hair_2[BM_HairStyle][3];
|
||||
#declare BM_Hair_LDpth = BM_Pose_Hair_2[BM_HairStyle][4];
|
||||
#declare BM_Hair_Wght = BM_Pose_Hair_2[BM_HairStyle][5];
|
||||
#declare BM_Hair_Hght = BM_Pose_Hair_2[BM_HairStyle][6];
|
||||
#declare BM_Hair_Length= BM_Pose_Hair_2[BM_HairStyle][7];
|
||||
#declare BM_Hair_Curl = BM_Pose_Hair_2[BM_HairStyle][8];
|
||||
#end
|
||||
#declare BM_Pose_RHand=-1;
|
||||
#declare BM_Pose_LHand=-1;
|
||||
#declare BlobMan= union {
|
||||
object { bmhead ( )}
|
||||
object { bmtorso( )}
|
||||
object { bmhand ( 1)}
|
||||
object { bmhand (-1)}
|
||||
object { bmfeet ( )}
|
||||
object { bmhair ( )}
|
||||
}
|
||||
#declare BM_Scale=(((Height*1000)/66)/30)*1.2/40;
|
||||
|
||||
#if (BM_Gender=1)
|
||||
#declare BM_Scale=BM_Scale*.977;
|
||||
#end
|
||||
|
||||
// Origin Variables including Scale
|
||||
#declare BMO_Foot_R =transform {transform BMOFR scale BM_Scale}
|
||||
#declare BMO_Foot_L =transform {transform BMOFL scale BM_Scale}
|
||||
#declare BMO_Toe_R =transform {transform BMOFR rotate <-BM_Toe_Angle.z,0,0> scale BM_Scale}
|
||||
#declare BMO_Toe_L =transform {transform BMOFL rotate <-BM_Toe_Angle.x,0,0> scale BM_Scale}
|
||||
#declare BMO_Knee_R =transform {transform BMOKR scale BM_Scale}
|
||||
#declare BMO_Knee_L =transform {transform BMOKL scale BM_Scale}
|
||||
#declare BMO_Hip_R =transform {transform BMOHR scale BM_Scale}
|
||||
#declare BMO_Hip_L =transform {transform BMOHL scale BM_Scale}
|
||||
#declare BMO_Abdomen_F =transform {transform BMOAF scale BM_Scale}
|
||||
#declare BMO_Abdomen_B =transform {transform BMOAB scale BM_Scale}
|
||||
#declare BMO_Abdomen_U =transform {transform BMOAU scale BM_Scale}
|
||||
#declare BMO_Abdomen_R =transform {transform BMOAR scale BM_Scale}
|
||||
#declare BMO_Abdomen_L =transform {transform BMOAL scale BM_Scale}
|
||||
#declare BMO_Torso_F =transform {transform BMOTF scale BM_Scale}
|
||||
#declare BMO_Torso_B =transform {transform BMOTB scale BM_Scale}
|
||||
#declare BMO_Torso_R =transform {transform BMOTR scale BM_Scale}
|
||||
#declare BMO_Torso_L =transform {transform BMOTL scale BM_Scale}
|
||||
#declare BMO_Torso_T =transform {transform BMOTT scale BM_Scale}
|
||||
#declare BMO_Shoulder_R =transform {transform BMOSR scale BM_Scale}
|
||||
#declare BMO_Shoulder_L =transform {transform BMOSL scale BM_Scale}
|
||||
#declare BMO_Elbow_R =transform {transform BMOER scale BM_Scale}
|
||||
#declare BMO_Elbow_L =transform {transform BMOEL scale BM_Scale}
|
||||
#declare BMO_Hand_R =transform {transform BMOPR scale BM_Scale}
|
||||
#declare BMO_Hand_L =transform {transform BMOPL scale BM_Scale}
|
||||
#declare BMO_Head_F =transform {transform BMOHF scale BM_Scale}
|
||||
#declare BMO_Head_B =transform {transform BMOHB scale BM_Scale}
|
||||
#declare BMO_Head_T =transform {transform BMOHT scale BM_Scale}
|
||||
#declare BMO_Ear_R =transform {transform BMOeR scale BM_Scale}
|
||||
#declare BMO_Ear_L =transform {transform BMOeL scale BM_Scale}
|
||||
#declare BMO_Nose =transform {transform BMONs scale BM_Scale}
|
||||
#declare BM_RF_Location =BM_RF_Location*BM_Scale;
|
||||
#declare BM_LF_Location =BM_LF_Location*BM_Scale;
|
||||
#if (vlength(<0,0,0>-<0,BM_RF_Location.y,0>)>vlength(<0,0,0>-<0,BM_LF_Location.y,0>))
|
||||
#if (BM_RF_Location.x<0)
|
||||
#declare BM_StrideRL=<-(vlength(<0,0,0>-<BM_RF_Location.x,0,0>)),vlength(<0,0,0>-<0,BM_RF_Location.y,0>),0>;
|
||||
#else
|
||||
#declare BM_StrideRL=<vlength(<0,0,0>-<BM_RF_Location.x,0,0>),vlength(<0,0,0>-<0,BM_RF_Location.y,0>),0>;
|
||||
#end
|
||||
#if (BM_LF_Location.x<0)
|
||||
#declare BM_StrideLL=<-(vlength(<0,0,0>-<BM_LF_Location.x,0,0>)),vlength(<0,0,0>-<0,BM_RF_Location.y,0>),0>;
|
||||
#else
|
||||
#declare BM_StrideLL=<vlength(<0,0,0>-<BM_LF_Location.x,0,0>),vlength(<0,0,0>-<0,BM_RF_Location.y,0>),0>;
|
||||
#end
|
||||
#else
|
||||
#if (BM_RF_Location.x<0)
|
||||
#declare BM_StrideRL=<-(vlength(<0,0,0>-<BM_RF_Location.x,0,0>)),vlength(<0,0,0>-<0,BM_LF_Location.y,0>),0>;
|
||||
#else
|
||||
#declare BM_StrideRL=<vlength(<0,0,0>-<BM_RF_Location.x,0,0>),vlength(<0,0,0>-<0,BM_LF_Location.y,0>),0>;
|
||||
#end
|
||||
#if (BM_LF_Location.x<0)
|
||||
#declare BM_StrideLL=<-(vlength(<0,0,0>-<BM_LF_Location.x,0,0>)),vlength(<0,0,0>-<0,BM_LF_Location.y,0>),0>;
|
||||
#else
|
||||
#declare BM_StrideLL=<vlength(<0,0,0>-<BM_LF_Location.x,0,0>),vlength(<0,0,0>-<0,BM_LF_Location.y,0>),0>;
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
|
||||
#version BlobMan_People_Version;
|
||||
|
||||
//End of Blob Man People Include File
|
1139
blbman40/bmtorso.inc
|
@ -1,469 +0,0 @@
|
|||
/*******************************************************
|
||||
POV-Ray - BlobMan People Costume Definition File
|
||||
File Name : croft.cdf
|
||||
BM_Version: 4.0
|
||||
Desciption: Costume Definition File - Lara ?
|
||||
Date : April 2000
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://welcome.to/HoustoGraphics
|
||||
|
||||
Notes :
|
||||
This CDF only works for Female Figures.
|
||||
|
||||
This CDF includes a hair setting. To test render
|
||||
scenes without hair enter the following code
|
||||
after the CDF is included
|
||||
|
||||
#decalre BM_HairStyle=0;
|
||||
|
||||
Then just remove it when you want the hair.
|
||||
|
||||
The Boots do not sit on y0 so if you transform
|
||||
the figure using the Foot or Toe Origins you will need
|
||||
to add the following translation after the
|
||||
transformation
|
||||
|
||||
translate <0,1.0>*BM_Scale
|
||||
|
||||
The Toes of the Boot will bend to match the Toe Angle
|
||||
however you need to specify the Toe Angle before the
|
||||
CDF is called, even if you are using arrays.
|
||||
|
||||
#declare BM_Toe_Angle=<0,0,0>;
|
||||
|
||||
********************************************************/
|
||||
#include "bm_hair.inc"
|
||||
|
||||
/********************************************************
|
||||
Image Maps & Textures
|
||||
********************************************************/
|
||||
#declare BM_Skin_Tex=
|
||||
texture {
|
||||
pigment{rgb <0.96,0.80,0.69>}
|
||||
}
|
||||
#declare BM_Lip_Tex = texture {pigment {rgb x*.75}}
|
||||
#declare BM_Nail_Tex = texture {pigment {rgb <.2,.5,.5>} finish {phong 1}}
|
||||
#declare BM_Eye_Shadow= texture {pigment {rgb <.2,.5,.5>}}
|
||||
#declare BM_Map_Normal = normal {wrinkles 0.15 scale <.5,10,.5>}
|
||||
|
||||
#include "glass.inc"
|
||||
|
||||
#declare BuckleTex = texture {
|
||||
pigment {
|
||||
rgb <0.70, 0.56, 0.37>
|
||||
}
|
||||
finish {
|
||||
metallic
|
||||
ambient 0.1
|
||||
diffuse 0.65
|
||||
specular 0.85
|
||||
roughness 0.01
|
||||
reflection 0.45
|
||||
brilliance 1.5
|
||||
}
|
||||
}
|
||||
|
||||
#declare SockTex=
|
||||
texture {
|
||||
pigment {rgb 1}
|
||||
normal {quilted .5 scale .1}
|
||||
}
|
||||
|
||||
#declare BootTex= texture {
|
||||
pigment {rgb .05}
|
||||
finish {phong .5 reflection .1}
|
||||
}
|
||||
|
||||
#declare SoleTex= texture {
|
||||
pigment {rgb .15 }
|
||||
normal {ripples 1 scale .5}
|
||||
|
||||
}
|
||||
|
||||
#declare LaceTex=texture {pigment {rgb <0.556863, 0.137255, 0.137255>}
|
||||
normal {quilted 1 scale .1 rotate z*45}
|
||||
}
|
||||
|
||||
#declare SpecFrames = texture {
|
||||
pigment {
|
||||
rgb <0.2, 0.2, 0.2>
|
||||
}
|
||||
finish {
|
||||
ambient 0.1
|
||||
diffuse 0.7
|
||||
brilliance 6.0
|
||||
reflection 0.2
|
||||
phong 0.8
|
||||
phong_size 120
|
||||
}
|
||||
}
|
||||
|
||||
#declare BagTex=texture {pigment {rgb <0.35, 0.20, 0.1>}
|
||||
normal {quilted .5 scale .05 rotate z*45}
|
||||
}
|
||||
|
||||
#declare Torso_IMap = "croft1.png"
|
||||
#declare Abdomen_IMap = "croft2.png"
|
||||
#declare Hand_R_IMap = "croft5.png"
|
||||
#declare Hand_L_IMap = "croft5.png"
|
||||
#declare Thigh_R_IMap = "croft3.png"
|
||||
#declare Thigh_L_IMap = "croft3.png"
|
||||
#declare Calf_R_IMap = "croft4.png"
|
||||
#declare Calf_L_IMap = "croft4.png"
|
||||
#declare Foot_R_IMap = "croft5.png"
|
||||
#declare Foot_L_IMap = "croft5.png"
|
||||
|
||||
/********************************************************
|
||||
Body Part Options
|
||||
********************************************************/
|
||||
|
||||
#declare BM_EyeCol=<.25,.25,0>
|
||||
#declare BM_Hair_Col=<0.35, 0.20, 0.1>;
|
||||
#declare BM_HairStyle=2;
|
||||
#declare BM_Map_R_Finger=0;
|
||||
#declare BM_Map_L_Finger=0;
|
||||
#declare BM_TShirt=1;
|
||||
|
||||
#declare Specs=
|
||||
union {
|
||||
sphere {0,1 scale <1,.75,.25> translate <-1.75,0,0> texture {T_Ruby_Glass}}
|
||||
torus {1.15,.15 rotate x*90 scale <1,.75,.1> translate <-1.75,0,0> }
|
||||
cylinder {<0,0,0><-1.9,0,4>.15 translate <-2.75,0,0>}
|
||||
torus {1,.15 rotate z*90 scale <1,1,1> clipped_by {plane {z,0 inverse}}translate y*-1 rotate z*15 translate <-4.75,0,4>}
|
||||
sphere {0,1 scale <1,.75,.25> translate <1.75,0,0> texture {T_Ruby_Glass}}
|
||||
torus {1.15,.15 rotate x*90 scale <1,.75,.1> translate <1.75,0,0>}
|
||||
cylinder {<0,0,0><1.9,0,4>.15 translate <2.75,0,0>}
|
||||
torus {1,.15 rotate z*90 scale <1,1,1> clipped_by {plane {z,0 inverse}}translate y*-1 rotate z*-15 translate <4.75,0,4>}
|
||||
torus {1,.15 rotate x*90 translate y*-.5 clipped_by {plane {y,0 inverse}} }
|
||||
texture {SpecFrames}
|
||||
}
|
||||
|
||||
#declare Bag=
|
||||
union {
|
||||
blob {threshold .5
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <2,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <1,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <0,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <-1,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <-2,0,0>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <2,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <1,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <0,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <-1,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <-2,0,2>}
|
||||
scale <1.1,.5,.75>
|
||||
}
|
||||
blob {threshold .5
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <2,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <1,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <0,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <-1,0,0>}
|
||||
cylinder {<0,0,0><0,-12,0> 3,1 translate <-2,0,0>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <2,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <1,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <0,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <-1,0,2>}
|
||||
cylinder {<0,-1,-1><0,-12,0> 3,1 translate <-2,0,2>}
|
||||
scale <1.1,.5,.75>
|
||||
clipped_by {plane {y,0 inverse rotate x*30 rotate z*15 translate y*-1 }}
|
||||
clipped_by {plane {y,0 inverse rotate x*30 rotate z*-15 translate y*-1 }}
|
||||
scale <1.1,1.05,1.1>
|
||||
rotate x*-5
|
||||
}
|
||||
torus {.5,.25 translate <0,-1.2,2.75> texture {SpecFrames}}
|
||||
}
|
||||
/********************************************************
|
||||
Body Part Objects
|
||||
********************************************************/
|
||||
|
||||
#declare BM_Head_Object= union {object{BM_Head_Object}
|
||||
object {Specs
|
||||
rotate x*-30
|
||||
translate <0,-2,-4.5>
|
||||
}
|
||||
}
|
||||
//#declare BM_Neck_Object=object {BM_Neck_Object}
|
||||
|
||||
#declare BM_Torso_Object=union {
|
||||
object{BM_Torso_Object}
|
||||
union {
|
||||
object {Bag}
|
||||
object {Bag scale <.2,.5,.5> rotate y*90 translate <3.5,-3,1> }
|
||||
object {Bag scale <.6,.5,.5> translate <0,-3,2.5> }
|
||||
object {Bag scale <.2,.5,.5> rotate y*-90 translate <-3.5,-3,1> }
|
||||
|
||||
torus {3,.5 scale <1.2,2,1> rotate y*-15 rotate z*80 rotate y*30 translate <-4.5,-2.5,-2>}
|
||||
torus {3,.5 scale <1.2,2,1> rotate y*-15 rotate z*80 rotate y*30 translate <-4.5,-2.5,-2> scale <-1,1,1>}
|
||||
translate <0,-8,4>
|
||||
texture {BagTex}
|
||||
}
|
||||
}
|
||||
#declare BM_Abdomen_Object=union {
|
||||
object{BM_Abdomen_Object}
|
||||
cone {<0,0,0>,5.3,<0,-2,0>5.5
|
||||
scale <1.1,1,.8>
|
||||
translate <0,-23.25,-.5>
|
||||
pigment { rgb <0.25, 0.10, 0.0> }
|
||||
}
|
||||
|
||||
difference {
|
||||
box {<-1.5,-1.5,0><1.5,1.5,.5>
|
||||
translate <0,-24.25,-5>
|
||||
texture {BuckleTex}
|
||||
}
|
||||
box {<-1,-1,0><1,1,.25>
|
||||
translate <0,-24.25,-5>
|
||||
texture {BuckleTex
|
||||
finish {ambient -.15}}
|
||||
}
|
||||
}
|
||||
box {<-.5,0,0><.5,-4,1>
|
||||
rotate x*-5
|
||||
translate <0,-24.25,-4.6>
|
||||
}
|
||||
}
|
||||
//#declare BM_Upperarm_R_Object=object {BM_Upperarm_R_Object}
|
||||
//#declare BM_Upperarm_L_Object=object {BM_Upperarm_L_Object}
|
||||
//#declare BM_Forearm_R_Object=object {BM_Forearm_R_Object}
|
||||
//#declare BM_Forearm_L_Object=object {BM_Forearm_L_Object}
|
||||
//#declare BM_Hand_R_Object=object {BM_Hand_R_Object}
|
||||
//#declare BM_Hand_L_Object=object {BM_Hand_L_Object}
|
||||
|
||||
#declare BM_Thigh_R_Object=union {
|
||||
object {BM_Thigh_R_Object}
|
||||
torus {3.5,.5 scale <1,2,1>
|
||||
translate <-2,-4,-.5>
|
||||
}
|
||||
}
|
||||
#declare BM_Thigh_L_Object=union {
|
||||
object {BM_Thigh_L_Object}
|
||||
torus {3.5,.5 scale <1,2,1>
|
||||
translate < 2,-4,-.5>
|
||||
}
|
||||
}
|
||||
|
||||
#declare BM_Calf_R_Object=union {
|
||||
object {BM_Calf_R_Object}
|
||||
blob {threshold .5
|
||||
cylinder {<0,1.5,0><0,-1.5,0>,4.2,1.1
|
||||
scale <1,.5,1.1>
|
||||
translate <-.05,-10,.4>
|
||||
}
|
||||
texture {SockTex}
|
||||
}
|
||||
cone {<0,0,.5>2.1,<0,-8,0>1.75
|
||||
scale <1,1,1>
|
||||
translate <0,-11,0>
|
||||
texture {BootTex}
|
||||
//pigment {rgb x}
|
||||
}
|
||||
#local Laces=0
|
||||
#while (Laces<7)
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*30
|
||||
translate <0,-12-Laces,-1>
|
||||
rotate x*-1
|
||||
}
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-30
|
||||
translate <0,-12-Laces,-1.1>
|
||||
rotate x*-1
|
||||
}
|
||||
#declare Laces=Laces+1
|
||||
#end
|
||||
torus {2.2,.2
|
||||
texture {LaceTex}
|
||||
rotate z*10
|
||||
translate <0,-12,.25>
|
||||
}
|
||||
torus {2.2,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-13
|
||||
translate <0,-12,.25>
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#declare BM_Calf_L_Object=union {
|
||||
object {BM_Calf_L_Object}
|
||||
blob {threshold .5
|
||||
cylinder {<0,1.5,0><0,-1.5,0>,4.2,1.1
|
||||
scale <1,.5,1.1>
|
||||
translate <-.05,-10,.4>
|
||||
}
|
||||
texture {SockTex}
|
||||
}
|
||||
cone {<0,0,.5>2.1,<0,-8,0>1.75
|
||||
scale <1,1,1>
|
||||
translate <0,-11,0>
|
||||
texture {BootTex}
|
||||
//pigment {rgb x}
|
||||
}
|
||||
#local Laces=0
|
||||
#while (Laces<7)
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*30
|
||||
translate <0,-12-Laces,-1>
|
||||
rotate x*-1
|
||||
}
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-30
|
||||
translate <0,-12-Laces,-1.1>
|
||||
rotate x*-1
|
||||
}
|
||||
#declare Laces=Laces+1
|
||||
#end
|
||||
torus {2.2,.2
|
||||
texture {LaceTex}
|
||||
rotate z*10
|
||||
translate <0,-12,.25>
|
||||
}
|
||||
torus {2.2,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-13
|
||||
translate <0,-12,.25>
|
||||
}
|
||||
scale <-1,1,1>
|
||||
}
|
||||
|
||||
#declare BM_Foot_R_Object=union {
|
||||
object {BM_Foot_R_Object}
|
||||
difference {
|
||||
union { // Sole
|
||||
cylinder {<0,0,0><0,-.75,0> 2.2
|
||||
translate <0,-2.5,0>
|
||||
}
|
||||
cylinder {<0,0,0><0,-.75,0> 2.9
|
||||
rotate x*BM_Toe_Angle.z
|
||||
translate <-.3,-2.5,-5.7>
|
||||
|
||||
clipped_by {plane {z,-5.7}}
|
||||
}
|
||||
prism { linear_sweep linear_spline
|
||||
0,-0.75,5,
|
||||
<-2,0>,<2,0>,<2.5,-5.7>,<-3.4,-5.7>,<-2,0>
|
||||
translate <0,-2.5,0>
|
||||
}
|
||||
}
|
||||
box {<-4,-8,0><4,0,-8>
|
||||
rotate x*-14
|
||||
rotate y*8
|
||||
translate <0,-2.6,-2>
|
||||
}
|
||||
texture {SoleTex}
|
||||
}
|
||||
union { //Uppers
|
||||
union {sphere {<0,.5,0>,2.6}
|
||||
cylinder {<0,.5,0><0,0,0>2.6}
|
||||
|
||||
clipped_by {plane{y,0 inverse}}
|
||||
clipped_by {plane {z,0 rotate x*45}}
|
||||
rotate x*BM_Toe_Angle.z
|
||||
translate <-.3,-2.5,-5.7>
|
||||
|
||||
}
|
||||
|
||||
cone {<0,0,0>1.75,<0,-2.5,0>1.9}
|
||||
sphere {0,1.75}
|
||||
cone {<0,-.5,0>1.75,<-.3,-2.5,-5.7>2.6
|
||||
clipped_by {plane {y,-2.5 inverse}}
|
||||
}
|
||||
cone {<0,-2,0>1.75,<-.3,-2.5,-5.7>2.6
|
||||
clipped_by {plane {y,-2.5 inverse}}
|
||||
}
|
||||
texture {BootTex}
|
||||
}
|
||||
|
||||
#local Laces=0
|
||||
#while (Laces<4)
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*30
|
||||
translate <0,-1-Laces,-.2>
|
||||
rotate x*80
|
||||
}
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-30
|
||||
translate <0,-1-Laces,-.3>
|
||||
rotate x*80
|
||||
}
|
||||
#declare Laces=Laces+1
|
||||
#end
|
||||
|
||||
|
||||
|
||||
}
|
||||
#declare BM_Foot_L_Object=union {
|
||||
object {BM_Foot_R_Object}
|
||||
difference {
|
||||
union { // Sole
|
||||
cylinder {<0,0,0><0,-.75,0> 2.2
|
||||
translate <0,-2.5,0>
|
||||
}
|
||||
cylinder {<0,0,0><0,-.75,0> 2.9
|
||||
rotate x*BM_Toe_Angle.z
|
||||
translate <-.3,-2.5,-5.7>
|
||||
|
||||
clipped_by {plane {z,-5.7}}
|
||||
}
|
||||
prism { linear_sweep linear_spline
|
||||
0,-0.75,5,
|
||||
<-2,0>,<2,0>,<2.5,-5.7>,<-3.4,-5.7>,<-2,0>
|
||||
translate <0,-2.5,0>
|
||||
}
|
||||
}
|
||||
box {<-4,-8,0><4,0,-8>
|
||||
rotate x*-14
|
||||
rotate y*8
|
||||
translate <0,-2.6,-2>
|
||||
}
|
||||
texture {SoleTex}
|
||||
}
|
||||
union { //Uppers
|
||||
union {sphere {<0,.5,0>,2.6}
|
||||
cylinder {<0,.5,0><0,0,0>2.6}
|
||||
|
||||
clipped_by {plane{y,0 inverse}}
|
||||
clipped_by {plane {z,0 rotate x*45}}
|
||||
rotate x*BM_Toe_Angle.z
|
||||
translate <-.3,-2.5,-5.7>
|
||||
|
||||
}
|
||||
|
||||
cone {<0,0,0>1.75,<0,-2.5,0>1.9}
|
||||
sphere {0,1.75}
|
||||
cone {<0,-.5,0>1.75,<-.3,-2.5,-5.7>2.6
|
||||
clipped_by {plane {y,-2.5 inverse}}
|
||||
}
|
||||
cone {<0,-2,0>1.75,<-.3,-2.5,-5.7>2.6
|
||||
clipped_by {plane {y,-2.5 inverse}}
|
||||
}
|
||||
texture {BootTex}
|
||||
}
|
||||
|
||||
#local Laces=0
|
||||
#while (Laces<4)
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*30
|
||||
translate <0,-1-Laces,-.2>
|
||||
rotate x*80
|
||||
}
|
||||
torus {1,.2
|
||||
texture {LaceTex}
|
||||
rotate z*-30
|
||||
translate <0,-1-Laces,-.3>
|
||||
rotate x*80
|
||||
}
|
||||
#declare Laces=Laces+1
|
||||
#end
|
||||
scale <-1,1,1>
|
||||
}
|
||||
|
||||
// End of Costume Definition File
|
Before Width: | Height: | Size: 119 KiB |
|
@ -1,62 +0,0 @@
|
|||
/********************************************************
|
||||
Persistence of Vision Ray Tracer Scene Description File
|
||||
File : croft.pov
|
||||
Version : 3.1
|
||||
Description: Sample Scene using Blob Man
|
||||
Date : April 2000
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://welcome.to/HoustonGraphics
|
||||
*********************************************************/
|
||||
|
||||
global_settings { assumed_gamma 2.2 }
|
||||
|
||||
camera {
|
||||
location <0, 1.5, -3>
|
||||
direction 1.5*z
|
||||
right 4/3*x
|
||||
look_at <-.25, 0, 0>
|
||||
}
|
||||
|
||||
|
||||
sky_sphere {
|
||||
pigment {
|
||||
gradient y
|
||||
color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }
|
||||
}
|
||||
}
|
||||
|
||||
light_source {
|
||||
<-80, 80, -80>
|
||||
color rgb <1,.9,.95>*1.5
|
||||
spotlight
|
||||
point_at <0, 0, 0>
|
||||
radius .1
|
||||
tightness 75
|
||||
falloff 3
|
||||
}
|
||||
|
||||
plane {y,0
|
||||
pigment {checker pigment {rgb 0}, pigment {rgb 1} rotate y*16}
|
||||
}
|
||||
|
||||
#include "bmpeople.inc"
|
||||
#include "bm_pose.inc"
|
||||
#include "croft.cdf"
|
||||
|
||||
//#declare BM_HairStyle=0; // Uncomment to Test without Hiar
|
||||
|
||||
#declare BM_PoseNo=11;
|
||||
#declare BM_EyeLids=<.35,0,.35>
|
||||
#declare BM_Jaw=.25;
|
||||
#declare BM_Mouth=1;
|
||||
#declare BM_MouthShape=1;
|
||||
|
||||
Blob_Man(Female,2)
|
||||
object {BlobMan
|
||||
transform BMO_Abdomen_L
|
||||
rotate z*-85
|
||||
}
|
||||
|
||||
|
||||
// EOF
|
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.3 KiB |
|
@ -1,169 +0,0 @@
|
|||
/*******************************************************
|
||||
POV-Ray - BlobMan People Costume Definition File
|
||||
File Name : filename.cdf
|
||||
BM_Version: 4.0
|
||||
Desciption: Costume Definition File Layout
|
||||
Date :
|
||||
Author :
|
||||
Email :
|
||||
WWW :
|
||||
Note :
|
||||
|
||||
********************************************************/
|
||||
#declare CDF=true; //Used by Body_Part_Viewer.pov Can be removed.
|
||||
/********************************************************
|
||||
Image Maps & Textures
|
||||
********************************************************/
|
||||
|
||||
//#declare BM_Skin_Tex = texture {}
|
||||
//#declare BM_Lip_Tex = texture {}
|
||||
//#declare BM_Hair_Tex = texture {}
|
||||
//#declare BM_Tooth_Tex = texture {}
|
||||
//#declare BM_Nail_Tex = texture {}
|
||||
//#declare BM_EyeShadow = texture {}
|
||||
|
||||
//#declare BM_Map_Finish = finish {}
|
||||
//#declare BM_Map_Normal = normal {}
|
||||
|
||||
//#declare BM_Bump_Map_Size = 0.25;
|
||||
|
||||
// PNG Image Maps for Body Parts these must be in your Library Path
|
||||
|
||||
//#declare Face_IMap = "filename.png"
|
||||
//#declare Neck_IMap = "filename.png"
|
||||
//#declare Torso_IMap = "filename.png"
|
||||
//#declare Abdomen_IMap = "filename.png"
|
||||
//#declare Upperarm_R_IMap = "filename.png"
|
||||
//#declare Upperarm_L_IMap = "filename.png"
|
||||
//#declare Forearm_R_IMap = "filename.png"
|
||||
//#declare Forearm_L_IMap = "filename.png"
|
||||
//#declare Hand_R_IMap = "filename.png"
|
||||
//#declare Hand_L_IMap = "filename.png"
|
||||
//#declare Thigh_R_IMap = "filename.png"
|
||||
//#declare Thigh_L_IMap = "filename.png"
|
||||
//#declare Calf_R_IMap = "filename.png"
|
||||
//#declare Calf_L_IMap = "filename.png"
|
||||
//#declare Foot_R_IMap = "filename.png"
|
||||
//#declare Foot_L_IMap = "filename.png"
|
||||
|
||||
// PNG Bump Maps for Body Parts these must be in your Library Path
|
||||
|
||||
//#declare Face_BMap = "filename.png"
|
||||
//#declare Neck_BMap = "filename.png"
|
||||
//#declare Torso_BMap = "filename.png"
|
||||
//#declare Abdomen_BMap = "filename.png"
|
||||
//#declare Upperarm_R_BMap = "filename.png"
|
||||
//#declare Upperarm_L_BMap = "filename.png"
|
||||
//#declare Forearm_R_BMap = "filename.png"
|
||||
//#declare Forearm_L_BMap = "filename.png"
|
||||
//#declare Hand_R_BMap = "filename.png"
|
||||
//#declare Hand_L_BMap = "filename.png"
|
||||
//#declare Thigh_R_BMap = "filename.png"
|
||||
//#declare Thigh_L_BMap = "filename.png"
|
||||
//#declare Calf_R_BMap = "filename.png"
|
||||
//#declare Calf_L_BMap = "filename.png"
|
||||
//#declare Foot_R_BMap = "filename.png"
|
||||
//#declare Foot_L_BMap = "filename.png"
|
||||
|
||||
|
||||
/********************************************************
|
||||
Body Part Options
|
||||
********************************************************/
|
||||
|
||||
// Ears - 2 = Normal Ears, 1=Replace ears with small lumps as if under a swimming cap, 0 = No ears
|
||||
//#declare BM_Ears=2;
|
||||
|
||||
// Eyes - 1=Normal 0=No Eyes
|
||||
//#declare BM_Eyes=1;
|
||||
|
||||
// Nose - Range : 0 - 1.25 Size of Nose
|
||||
//#declare BM_Nose=.5;
|
||||
|
||||
// Face - 1 = Normal Face Structure, 0 = Removes Nose and Lips
|
||||
//#declare BM_Face=2;
|
||||
|
||||
// Teeth - 0 = No Teeth, 1 = Teeth
|
||||
//#declare BM_Teeth=1;
|
||||
|
||||
// Jowls - Range : 0 - 3 Mass added to side of jaw.
|
||||
//#declare BM_Jowls=0;
|
||||
|
||||
// Head - 1 = Normal Head, 0 = No Head, -1 = Guides
|
||||
//#declare BM_Head_Mass=1;
|
||||
|
||||
// Torso - 1 = Normal Torso, 0 = No Torso, -1 = Guides
|
||||
//#declare BM_Torso_Mass=1;
|
||||
|
||||
// Right Upperarm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Upperarm_Mass=2;
|
||||
|
||||
// Right Forearm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Forearm_Mass=2;
|
||||
|
||||
// Right Hand - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_R_Hand=1;
|
||||
|
||||
// Left Upperarm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Upperarm_Mass=2;
|
||||
|
||||
// Left Forearm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Forearm_Mass=2;
|
||||
|
||||
// Left Hand - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_L_Hand=1;
|
||||
|
||||
// Right Thigh - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Thigh_Mass=2;
|
||||
|
||||
// Right Calf - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Calf_Mass=2;
|
||||
|
||||
// Right Foot - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_R_Foot=1;
|
||||
|
||||
// Left Thigh - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Thigh_Mass=2;
|
||||
|
||||
// Left Calf - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Calf_Mass=2;
|
||||
|
||||
// Left Foot - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_L_Foot=1;
|
||||
|
||||
// Male Abdomen Muscle Flexing - 1 = On, 0 = off
|
||||
//#declare BM_Flex=1;
|
||||
|
||||
// Female T-Shirt - 1 = On, 0 = Off
|
||||
//#declare BM_TShirt=0;
|
||||
|
||||
// Finger Nails - 1 = On, 0 = Off
|
||||
// #declare BM_Nails=1;
|
||||
|
||||
// Apply Iamge Maps to Right Hand Fingers - 1=On, 0=Off
|
||||
//#declare BM_Map_R_Finger=1;
|
||||
|
||||
// Apply Iamge Maps to Left Hand Fingers - 1=On, 0=Off
|
||||
//#declare BM_Map_L_Finger=1;
|
||||
|
||||
/********************************************************
|
||||
Body Part Objects
|
||||
********************************************************/
|
||||
|
||||
//#declare BM_Head_Object=object{BM_Head_Object}
|
||||
//#declare BM_Neck_Object=object{BM_Neck_Object}
|
||||
//#declare BM_Torso_Object=object{BM_Torso_Object}
|
||||
//#declare BM_Abdomen_Object=object{BM_Abdomen_Object}
|
||||
//#declare BM_Upperarm_R_Object=object {BM_Upperarm_R_Object}
|
||||
//#declare BM_Upperarm_L_Object=object {BM_Upperarm_L_Object}
|
||||
//#declare BM_Forearm_R_Object=object {BM_Forearm_R_Object}
|
||||
//#declare BM_Forearm_L_Object=object {BM_Forearm_L_Object}
|
||||
//#declare BM_Hand_R_Object=object {BM_Hand_R_Object}
|
||||
//#declare BM_Hand_L_Object=object {BM_Hand_L_Object}
|
||||
//#declare BM_Thigh_R_Object=object {BM_Thigh_R_Object}
|
||||
//#declare BM_Thigh_L_Object=object {BM_Thigh_L_Object}
|
||||
//#declare BM_Calf_R_Object=object {BM_Calf_R_Object}
|
||||
//#declare BM_Calf_L_Object=object {BM_Calf_L_Object}
|
||||
//#declare BM_Foot_R_Object=object {BM_Foot_R_Object}
|
||||
//#declare BM_Foot_L_Object=object {BM_Foot_R_Object}
|
||||
|
||||
// End of Costume Definition File
|
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 3.1 KiB |
169
blbman40/lft.cdf
|
@ -1,169 +0,0 @@
|
|||
/*******************************************************
|
||||
POV-Ray - BlobMan People Costume Definition File
|
||||
File Name : filename.cdf
|
||||
BM_Version: 4.0
|
||||
Desciption: Costume Definition File Layout
|
||||
Date :
|
||||
Author :
|
||||
Email :
|
||||
WWW :
|
||||
Note :
|
||||
|
||||
********************************************************/
|
||||
#declare CDF=true; //Used by Body_Part_Viewer.pov Can be removed.
|
||||
/********************************************************
|
||||
Image Maps & Textures
|
||||
********************************************************/
|
||||
|
||||
//#declare BM_Skin_Tex = texture {}
|
||||
//#declare BM_Lip_Tex = texture {}
|
||||
//#declare BM_Hair_Tex = texture {}
|
||||
//#declare BM_Tooth_Tex = texture {}
|
||||
//#declare BM_Nail_Tex = texture {}
|
||||
//#declare BM_EyeShadow = texture {}
|
||||
|
||||
//#declare BM_Map_Finish = finish {}
|
||||
//#declare BM_Map_Normal = normal {}
|
||||
|
||||
//#declare BM_Bump_Map_Size = 0.25;
|
||||
|
||||
// PNG Image Maps for Body Parts these must be in your Library Path
|
||||
|
||||
//#declare Face_IMap = "filename.png"
|
||||
//#declare Neck_IMap = "filename.png"
|
||||
#declare Torso_IMap = "lft-torso.png"
|
||||
#declare Abdomen_IMap = "lft-abdomen.png"
|
||||
#declare Upperarm_R_IMap = "lft-upper_arm.png"
|
||||
#declare Upperarm_L_IMap = "lft-upper_arm.png"
|
||||
#declare Forearm_R_IMap = "lft-forearm.png"
|
||||
#declare Forearm_L_IMap = "lft-forearm.png"
|
||||
//#declare Hand_R_IMap = "filename.png"
|
||||
//#declare Hand_L_IMap = "filename.png"
|
||||
#declare Thigh_R_IMap = "lft-thigh.png"
|
||||
#declare Thigh_L_IMap = "lft-thigh.png"
|
||||
#declare Calf_R_IMap = "lft-calf.png"
|
||||
#declare Calf_L_IMap = "lft-calf.png"
|
||||
#declare Foot_R_IMap = "lft-foot.png"
|
||||
#declare Foot_L_IMap = "lft-foot.png"
|
||||
|
||||
// PNG Bump Maps for Body Parts these must be in your Library Path
|
||||
|
||||
//#declare Face_BMap = "filename.png"
|
||||
//#declare Neck_BMap = "filename.png"
|
||||
//#declare Torso_BMap = "filename.png"
|
||||
//#declare Abdomen_BMap = "filename.png"
|
||||
//#declare Upperarm_R_BMap = "filename.png"
|
||||
//#declare Upperarm_L_BMap = "filename.png"
|
||||
//#declare Forearm_R_BMap = "filename.png"
|
||||
//#declare Forearm_L_BMap = "filename.png"
|
||||
//#declare Hand_R_BMap = "filename.png"
|
||||
//#declare Hand_L_BMap = "filename.png"
|
||||
//#declare Thigh_R_BMap = "filename.png"
|
||||
//#declare Thigh_L_BMap = "filename.png"
|
||||
//#declare Calf_R_BMap = "filename.png"
|
||||
//#declare Calf_L_BMap = "filename.png"
|
||||
//#declare Foot_R_BMap = "filename.png"
|
||||
//#declare Foot_L_BMap = "filename.png"
|
||||
|
||||
|
||||
/********************************************************
|
||||
Body Part Options
|
||||
********************************************************/
|
||||
|
||||
// Ears - 2 = Normal Ears, 1=Replace ears with small lumps as if under a swimming cap, 0 = No ears
|
||||
//#declare BM_Ears=2;
|
||||
|
||||
// Eyes - 1=Normal 0=No Eyes
|
||||
//#declare BM_Eyes=1;
|
||||
|
||||
// Nose - Range : 0 - 1.25 Size of Nose
|
||||
//#declare BM_Nose=.5;
|
||||
|
||||
// Face - 1 = Normal Face Structure, 0 = Removes Nose and Lips
|
||||
//#declare BM_Face=2;
|
||||
|
||||
// Teeth - 0 = No Teeth, 1 = Teeth
|
||||
//#declare BM_Teeth=1;
|
||||
|
||||
// Jowls - Range : 0 - 3 Mass added to side of jaw.
|
||||
//#declare BM_Jowls=0;
|
||||
|
||||
// Head - 1 = Normal Head, 0 = No Head, -1 = Guides
|
||||
//#declare BM_Head_Mass=1;
|
||||
|
||||
// Torso - 1 = Normal Torso, 0 = No Torso, -1 = Guides
|
||||
//#declare BM_Torso_Mass=1;
|
||||
|
||||
// Right Upperarm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Upperarm_Mass=2;
|
||||
|
||||
// Right Forearm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Forearm_Mass=2;
|
||||
|
||||
// Right Hand - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_R_Hand=1;
|
||||
|
||||
// Left Upperarm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Upperarm_Mass=2;
|
||||
|
||||
// Left Forearm - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Forearm_Mass=2;
|
||||
|
||||
// Left Hand - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_L_Hand=1;
|
||||
|
||||
// Right Thigh - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Thigh_Mass=2;
|
||||
|
||||
// Right Calf - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_R_Calf_Mass=2;
|
||||
|
||||
// Right Foot - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_R_Foot=1;
|
||||
|
||||
// Left Thigh - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Thigh_Mass=2;
|
||||
|
||||
// Left Calf - 1 = Normal, 0 = Amputated, -1=Guide
|
||||
//#declare BM_L_Calf_Mass=2;
|
||||
|
||||
// Left Foot - 1 = Normal, 0 = Amputated
|
||||
//#declare BM_L_Foot=1;
|
||||
|
||||
// Male Abdomen Muscle Flexing - 1 = On, 0 = off
|
||||
//#declare BM_Flex=1;
|
||||
|
||||
// Female T-Shirt - 1 = On, 0 = Off
|
||||
//#declare BM_TShirt=0;
|
||||
|
||||
// Finger Nails - 1 = On, 0 = Off
|
||||
// #declare BM_Nails=1;
|
||||
|
||||
// Apply Iamge Maps to Right Hand Fingers - 1=On, 0=Off
|
||||
//#declare BM_Map_R_Finger=1;
|
||||
|
||||
// Apply Iamge Maps to Left Hand Fingers - 1=On, 0=Off
|
||||
//#declare BM_Map_L_Finger=1;
|
||||
|
||||
/********************************************************
|
||||
Body Part Objects
|
||||
********************************************************/
|
||||
|
||||
//#declare BM_Head_Object=object{BM_Head_Object}
|
||||
//#declare BM_Neck_Object=object{BM_Neck_Object}
|
||||
//#declare BM_Torso_Object=object{BM_Torso_Object}
|
||||
//#declare BM_Abdomen_Object=object{BM_Abdomen_Object}
|
||||
//#declare BM_Upperarm_R_Object=object {BM_Upperarm_R_Object}
|
||||
//#declare BM_Upperarm_L_Object=object {BM_Upperarm_L_Object}
|
||||
//#declare BM_Forearm_R_Object=object {BM_Forearm_R_Object}
|
||||
//#declare BM_Forearm_L_Object=object {BM_Forearm_L_Object}
|
||||
//#declare BM_Hand_R_Object=object {BM_Hand_R_Object}
|
||||
//#declare BM_Hand_L_Object=object {BM_Hand_L_Object}
|
||||
//#declare BM_Thigh_R_Object=object {BM_Thigh_R_Object}
|
||||
//#declare BM_Thigh_L_Object=object {BM_Thigh_L_Object}
|
||||
//#declare BM_Calf_R_Object=object {BM_Calf_R_Object}
|
||||
//#declare BM_Calf_L_Object=object {BM_Calf_L_Object}
|
||||
//#declare BM_Foot_R_Object=object {BM_Foot_R_Object}
|
||||
//#declare BM_Foot_L_Object=object {BM_Foot_R_Object}
|
||||
|
||||
// End of Costume Definition File
|
|
@ -1,62 +0,0 @@
|
|||
**************************************************************************
|
||||
___ _ _ __ __
|
||||
| _ ) |___| |__| \/ |__ _ _ _
|
||||
| _ \ / _ \ '_ \ |\/| / _` | ' \ v4.0
|
||||
|___/_\___/_.__/_| |_\__,_|_||_|
|
||||
| _ \___ ___ _ __| |___
|
||||
| _/ -_) _ \ '_ \ / -_)
|
||||
|_| \___\___/ .__/_\___|
|
||||
|_|
|
||||
|
||||
Humanoid figures for POV-Ray v3.1
|
||||
|
||||
by Peter Houston 1999, 2000
|
||||
|
||||
**************************************************************************
|
||||
|
||||
Files included in the distribution pack:
|
||||
|
||||
"BMPEOPLE.INC" : Main include file which compiles the Macros
|
||||
"BMHEAD.INC" : Head Macro
|
||||
"BMTORSO.INC" : Torso Macro
|
||||
"BMHAND.INC" : Hand Macro
|
||||
"BMFEET.INC" : Foot Macro
|
||||
"BMHAIR.INC" : Hair Macro
|
||||
"BMDEFS.INC" : Default Settings for Macros
|
||||
|
||||
"BM_POSE.INC" : Sample Pose Library.
|
||||
"BM_HANDS.INC" : Sample Hand Pose Library.
|
||||
"BM_HAIR.INC" : Sample Hair Style Library.
|
||||
|
||||
"SAMPLE.CDF" : Sample Costume Definition File - Astronaut
|
||||
"CROFT.CDF" : Sample Costume Definition File - Lara ?
|
||||
"LAYOUT.CDF" : Template for Costume Definition File
|
||||
|
||||
"BMMANUAL.TXT" : Instruction Manual.
|
||||
"HOW2CDF.TXT" : Basic "How to.." document for CDF Creation
|
||||
"README.TXT" : This File.
|
||||
|
||||
"BMFACE1.PNG" : Face Image Map.
|
||||
"BMFACE2.PNG" : Face Image Map.
|
||||
"BMFACE3.PNG" : Face Image Map.
|
||||
"BMFACE4.PNG" : Face Image Map.
|
||||
"BMFACE5.PNG" : Face Image Map.
|
||||
"BMFACE6.PNG" : Face Iamge Map.
|
||||
"TEMPLATE.PNG" : Template for Face Image Maps.
|
||||
"SAMP1.PNG" : Image Map used in "Sample.cdf"
|
||||
"CROFT1.PNG" : \
|
||||
"CROFT2.PNG" : \
|
||||
"CROFT3.PNG" : Image Maps used in "Croft.cdf"
|
||||
"CROFT4.PNG" : /
|
||||
"CROFT5.PNG" : /
|
||||
|
||||
"BLOB_MAN_STUDIO.POV" : POV Scene file used for creating Blob Man Poses.
|
||||
"BODY_PART_VIEWER.POV" : POV Scene file used for testing Limb Objects.
|
||||
"HAND_STUDIO.POV" : POV Scene File used for creating Hand Poses
|
||||
|
||||
"SAMPLE.POV" : Example scene file using sample poses, but not CDF's.
|
||||
"SURFUR.POV" : Example scene file of the Silver Surfer.
|
||||
"CROFT.POV" : Example scene file using croft.cdf
|
||||
|
||||
See "BMMANUAL.TXT" for full instructions regarding installation, usage,
|
||||
contact information, etc.
|
Before Width: | Height: | Size: 148 B |
|
@ -1,702 +0,0 @@
|
|||
/*******************************************************
|
||||
POV-Ray - Blob_Man Costume Definition File
|
||||
File Name : sample.cdf
|
||||
BM_Version: 4.0
|
||||
Desciption: Sample Costume Definition File - Astronaut
|
||||
Date : 06 July 1999
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://welcome.to/HoustonGraphics
|
||||
********************************************************/
|
||||
#declare CDF=true; //Used by Body_Part_Viewer.pov Can be removed.
|
||||
#include "glass.inc"
|
||||
|
||||
/********************************************************
|
||||
Image Maps & Textures
|
||||
********************************************************/
|
||||
|
||||
//#declare Skin_Tex = texture {}
|
||||
//#declare Lip_Tex = texture {}
|
||||
//#declare Hair_Tex = texture {}
|
||||
//#declare Tooth_Pig= pigment {}
|
||||
|
||||
#declare Map_Finish = finish {phong .15 phong_size 20 }
|
||||
|
||||
//#declare Map_Normal = normal {}
|
||||
|
||||
//#declare Bump_Map_Size = 0.25;
|
||||
|
||||
// PNG Image Maps for Body Parts these must be in your Library Path
|
||||
|
||||
//#declare Face_IMap = "filename.png"
|
||||
#declare Torso_IMap = "samp1.png"
|
||||
#declare Abdomen_IMap = "samp1.png"
|
||||
#declare Upperarm_R_IMap = "samp1.png"
|
||||
#declare Upperarm_L_IMap = "samp1.png"
|
||||
#declare Forearm_R_IMap = "samp1.png"
|
||||
#declare Forearm_L_IMap = "samp1.png"
|
||||
#declare Hand_R_IMap = "samp1.png"
|
||||
#declare Hand_L_IMap = "samp1.png"
|
||||
#declare Thigh_R_IMap = "samp1.png"
|
||||
#declare Thigh_L_IMap = "samp1.png"
|
||||
#declare Calf_R_IMap = "samp1.png"
|
||||
#declare Calf_L_IMap = "samp1.png"
|
||||
#declare Foot_R_IMap = "samp1.png"
|
||||
#declare Foot_L_IMap = "samp1.png"
|
||||
|
||||
|
||||
/********************************************************
|
||||
Body Part Options
|
||||
********************************************************/
|
||||
|
||||
#declare BM_Nails=0;
|
||||
|
||||
// Ears - 2 = Normal Ears, 1=Replace ears with small lumps as if under a swimming cap, 0 = No ears
|
||||
#declare BM_Ears=0;
|
||||
|
||||
// Eyes - 1=Normal 0=No Eyes
|
||||
#declare BM_Eyes=1;
|
||||
|
||||
// Nose - Range : 0 - 1.25 Size of Nose
|
||||
//#declare BM_Nose=.5;
|
||||
|
||||
// Face - 1 = Normal Face Structure, 0 = Removes Nose and Lips
|
||||
#declare BM_Face=2;
|
||||
|
||||
// Jaw - Range: 0 - 1 0 = Closed, 1 = Open
|
||||
//#declare BM_Jaw=.5;
|
||||
|
||||
// Teeth - 0 = No Teeth, 1 = Teeth
|
||||
//#declare BM_Teeth=1;
|
||||
|
||||
// Jowls - Range : 0 - 3 Mass added to side of jaw.
|
||||
//#declare BM_Jowls=0;
|
||||
|
||||
// Toes - 1 = Bare Foot with toes, 0 = Replaces toes so that foot looks like it has a sock on
|
||||
#declare BM_Toes=0;
|
||||
|
||||
// Body Style - 0=Original Chest Modelling 1=New Chest Modelling
|
||||
//#declare BM_BodyStyle=1;
|
||||
|
||||
// Hand Scale <X,Y,Z>
|
||||
//#declare BM_Hand_Scale=<1,1,1>;
|
||||
|
||||
// Head - 1 = Normal Head, 0 = No Head, -1 = Guides
|
||||
//#declare BM_Head_Mass=1;
|
||||
|
||||
// Torso - 1 = Normal Torso, 0 = No Torso, -1 = Guides
|
||||
//#declare BM_Torso_Mass=1;
|
||||
|
||||
// Right Upperarm - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_R_Upperarm_Mass=1;
|
||||
|
||||
// Right Forearm - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_R_Forearm_Mass=1;
|
||||
|
||||
// Right Hand - 1 = Normal, 0 = Amputated
|
||||
#declare BM_R_Hand=1;
|
||||
|
||||
// Left Upperarm - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_L_Upperarm_Mass=1;
|
||||
|
||||
// Left Forearm - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_L_Forearm_Mass=1;
|
||||
|
||||
// Left Hand - 1 = Normal, 0 = Amputated
|
||||
#declare BM_L_Hand=1;
|
||||
|
||||
// Right Thigh - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_R_Thigh_Mass=1;
|
||||
|
||||
// Right Calf - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_R_Calf_Mass=1;
|
||||
|
||||
// Right Foot - 1 = Normal, 0 = Amputated
|
||||
#declare BM_R_Foot=1;
|
||||
|
||||
// Left Thigh - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_L_Thigh_Mass=1;
|
||||
|
||||
// Left Calf - 2 = Muscles, 1 = Cylinders, 0 = Amputated, -1=Guide
|
||||
#declare BM_L_Calf_Mass=1;
|
||||
|
||||
// Left Foot - 1 = Normal, 0 = Amputated
|
||||
#declare BM_L_Foot=1;
|
||||
|
||||
|
||||
/********************************************************
|
||||
Body Part Objects
|
||||
********************************************************/
|
||||
#declare Pouch=union { box {<1,0,0><-1,3,.5>}
|
||||
cylinder {<1,0,.25><1,3,.25> .25}
|
||||
cylinder {<-1,0,.25><-1,3,.25> .25}
|
||||
cylinder {<-1,0,.25><1,0,.25> .25}
|
||||
cylinder {<-1,3,.25><1,3,.25> .25}
|
||||
sphere {<-1,0,.25>.25}
|
||||
sphere {<-1,3,.25>.25}
|
||||
sphere {< 1,0,.25>.25}
|
||||
sphere {< 1,3,.25>.25}
|
||||
difference {
|
||||
cylinder {<0,0,0><0,0,-.25>1.25 rotate x*5}
|
||||
plane{y,0 inverse}
|
||||
translate <0,3.25,.2>
|
||||
}
|
||||
sphere {<0,2.5,-.25>.35 scale <1,1,.25> pigment {rgb 0}}
|
||||
scale <1,1,2.5>
|
||||
}
|
||||
|
||||
#declare ShoeGrip=texture {pigment {rgb .15}
|
||||
finish {Map_Finish}
|
||||
normal {crackle 3 scale <3,1,1>}
|
||||
}
|
||||
|
||||
#declare BM_Head_Object=union {
|
||||
object{BM_Head_Object}
|
||||
union { // Headset
|
||||
torus {4.35,.25
|
||||
rotate x*90
|
||||
clipped_by {plane {y,0 inverse}}
|
||||
}
|
||||
sphere{0,1 scale<1,1,1> scale <1,1.75,1.5> rotate z*5 translate<-3.5,-.85,0>}
|
||||
sphere{0,1 scale<1,1,1> scale <1,1.75,1.5> rotate z*-5 translate<3.5,-.85,0>}
|
||||
torus {4.25,.25
|
||||
clipped_by {plane {x,0}}
|
||||
clipped_by {plane {z,0}}
|
||||
rotate x*-40
|
||||
translate <0,-1,-1>
|
||||
}
|
||||
pigment {rgb 0}
|
||||
}
|
||||
}
|
||||
|
||||
#declare BM_Torso_Object=union {
|
||||
object{BM_Torso_Object}
|
||||
union {
|
||||
cone{<-7,-10,1>3.5<-1.99,-10,1>,5}
|
||||
cone{< 7,-10,1>3.5< 1.99,-10,1>,5}
|
||||
cylinder {<-2,-10,1>< 2,-10,1> 5 }
|
||||
}
|
||||
torus {3,1 rotate z*90 translate <-7,-10,1>}
|
||||
torus {3,1 rotate z*90 translate < 7,-10,1>}
|
||||
superellipsoid {
|
||||
<.5,.6>
|
||||
scale <6,10,4>
|
||||
translate <0,-17, 3>
|
||||
}
|
||||
cylinder {<0,-9,5><0,-29,4>3}
|
||||
union {
|
||||
cylinder {<-4,-9,5>< 4,-9,5> 3 }
|
||||
sphere {<-4,-9,5> 3}
|
||||
sphere {< 4,-9,5> 3}
|
||||
}
|
||||
union {
|
||||
cylinder {<-4,-9,5>< 4,-9,5> 3 }
|
||||
sphere {<-4,-9,5> 3}
|
||||
sphere {< 4,-9,5> 3}
|
||||
translate y*-19
|
||||
}
|
||||
union {
|
||||
torus {1,.5 rotate x*90 translate <-3, 0,0>}
|
||||
torus {1,.5 rotate x*90 translate <-3,-3,0>}
|
||||
torus {1,.5 rotate x*90 translate <-3,-6,0>}
|
||||
torus {1,.5 rotate x*90 translate <-3,-9,0>}
|
||||
torus {1,.5 rotate x*90 translate <3, 0,0>}
|
||||
torus {1,.5 rotate x*90 translate <3,-3,0>}
|
||||
torus {1,.5 rotate x*90 translate <3,-6,0>}
|
||||
torus {1,.5 rotate x*90 translate <3,-9,0>}
|
||||
translate <0,-14,7>
|
||||
}
|
||||
cone {<0,0,0>6.15<0,3,0>6.3
|
||||
scale <1.05,1,.65>
|
||||
translate <0,-25,-.3>
|
||||
}
|
||||
union {
|
||||
#declare Loop=30;
|
||||
#while (Loop<360)
|
||||
object {Pouch
|
||||
translate <0,0,-7>
|
||||
rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
translate y*-25
|
||||
scale <1.05,1,.65>
|
||||
translate z*-.3
|
||||
}
|
||||
cylinder {<0,0,0><0,0,-1.8>5 translate <0,-15,-3> }
|
||||
torus {4.5,.5 rotate x*90 translate <0,-15,-4.8>}
|
||||
torus {2.5,.5 rotate x*90 translate <0,-15,-4.8>}
|
||||
cylinder {< 4.5,0,1><0,-10,0>2 translate < 1,-15,-3> }
|
||||
cylinder {<-4.5,0,1><0,-10,0>2 translate <-1,-15,-3> }
|
||||
cylinder {<0,0,1><0,-10,0>2 translate < 1,-15,-3> }
|
||||
cylinder {<0,0,1><0,-10,0>2 translate <-1,-15,-3> }
|
||||
sphere {< 4.5,0,1>2 translate < 1,-15,-3>}
|
||||
sphere {<-4.5,0,1>2 translate <-1,-15,-3>}
|
||||
union {
|
||||
#declare Length=20;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {6,1
|
||||
scale <1,1,.5>
|
||||
translate <0,-Loop-10,0>
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
torus {5,3 rotate z*90 translate <0,-28,1> scale <1,1,.75>}
|
||||
|
||||
merge {
|
||||
sphere {0,8 clipped_by {plane {y,-0.0000001 inverse}}}
|
||||
cone {<0,0,0>8<0,-10,0>5.5}
|
||||
hollow
|
||||
translate z*1
|
||||
clipped_by {plane {y,-2 rotate x*-45 inverse}}
|
||||
texture {T_Old_Glass}
|
||||
}
|
||||
|
||||
merge {
|
||||
sphere {0,8 clipped_by {plane {y,-0.0000001 inverse}}}
|
||||
cone {<0,0,0>8<0,-10,0>5.5}
|
||||
hollow
|
||||
translate z*1
|
||||
clipped_by {plane {y,-2 rotate x*-45}}
|
||||
texture {
|
||||
pigment {
|
||||
image_map {
|
||||
png Torso_IMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
//once
|
||||
}
|
||||
rotate y*-90
|
||||
scale 40
|
||||
translate <0,-40,0>
|
||||
}
|
||||
#ifdef (Map_Finish)
|
||||
finish {Map_Finish}
|
||||
#end
|
||||
#ifdef (Map_Normal)
|
||||
normal {Map_Normal}
|
||||
#end
|
||||
#ifdef (Torso_BMap)
|
||||
normal {
|
||||
bump_map {
|
||||
png Torso_BMap
|
||||
map_type 2
|
||||
interpolate 4
|
||||
once
|
||||
bump_size Bump_Map_Size
|
||||
}
|
||||
rotate y*-90
|
||||
scale 40
|
||||
translate <0,-40,0>
|
||||
}
|
||||
#end
|
||||
}
|
||||
}
|
||||
difference {
|
||||
union {
|
||||
torus {3,.5 rotate z*90 translate <0,-5,7> rotate y*45}
|
||||
torus {3,.5 rotate z*90 translate <0,-5,7> rotate y*-45}
|
||||
}
|
||||
cone {<0,0,0>8<0,-10,1>5.5}
|
||||
}
|
||||
}
|
||||
|
||||
#declare BM_Upperarm_R_Object=union {
|
||||
object {BM_Upperarm_R_Object}
|
||||
union {
|
||||
#declare Length=11;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {2.05,.65
|
||||
translate y*-Loop
|
||||
#if (Loop=4)
|
||||
pigment {rgb <1,0,0>}
|
||||
#end
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {2.6,.8
|
||||
rotate z*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,2.6}
|
||||
translate y*1
|
||||
}
|
||||
//pigment {rgb 1}
|
||||
}
|
||||
|
||||
#declare BM_Upperarm_L_Object=union {
|
||||
object {BM_Upperarm_L_Object}
|
||||
union {
|
||||
#declare Length=11;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {2.05,.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {2.6,.8
|
||||
rotate z*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,2.6}
|
||||
translate y*1
|
||||
}
|
||||
//pigment {rgb 1}
|
||||
}
|
||||
|
||||
#declare BM_Forearm_R_Object=union {
|
||||
object {BM_Forearm_R_Object}
|
||||
union {
|
||||
#declare Length=11;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {2.05-(Loop/9),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {2.4,.8
|
||||
rotate x*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,2.4}
|
||||
}
|
||||
//pigment {rgb 1}
|
||||
|
||||
}
|
||||
|
||||
#declare BM_Forearm_L_Object=union {
|
||||
object {BM_Forearm_L_Object}
|
||||
union {
|
||||
#declare Length=11;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {2.05-(Loop/9),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {2.4,.8
|
||||
rotate x*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,2.4}
|
||||
}
|
||||
//pigment {rgb 1}
|
||||
}
|
||||
#declare BM_Hand_R_Object=union {
|
||||
object {BM_Hand_R_Object}
|
||||
union {
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*-15
|
||||
translate <-.5,-2.5,0>
|
||||
rotate x*17
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*-10
|
||||
translate <-.5,-2.5,0 >
|
||||
rotate x*0
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*10
|
||||
translate <-.5,-2.5, 0>
|
||||
rotate x*-17
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*45
|
||||
translate <-.1,-2.5,0>
|
||||
rotate x*-34
|
||||
|
||||
}
|
||||
|
||||
union {
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*17}
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*0}
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*-17}
|
||||
cylinder {<-.25,0,0><-.1,-2.5,0>,.3 rotate x*-34}
|
||||
translate <0,0,0>
|
||||
}
|
||||
|
||||
translate z*0
|
||||
}
|
||||
torus {1.1,.6 scale <.65,1.5,1> translate x*.2}
|
||||
//pigment {rgb 1}
|
||||
}
|
||||
|
||||
#declare BM_Hand_L_Object=union {
|
||||
object {BM_Hand_L_Object}
|
||||
union {
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*-15
|
||||
translate <-.5,-2.5,0>
|
||||
rotate x*17
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*-10
|
||||
translate <-.5,-2.5,0 >
|
||||
rotate x*0
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*10
|
||||
translate <-.5,-2.5, 0>
|
||||
rotate x*-17
|
||||
}
|
||||
union {
|
||||
sphere {0,.3 pigment {rgb .5}}
|
||||
torus {.3,.2 rotate z*90 scale <.75,1,1>}
|
||||
rotate y*45
|
||||
translate <-.1,-2.5,0>
|
||||
rotate x*-34
|
||||
|
||||
}
|
||||
|
||||
union {
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*17}
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*0}
|
||||
cylinder {<-.45,0,0><-.45,-2.5,0>,.3 rotate x*-17}
|
||||
cylinder {<-.25,0,0><-.1,-2.5,0>,.3 rotate x*-34}
|
||||
translate <0,0,0>
|
||||
}
|
||||
|
||||
translate z*0
|
||||
}
|
||||
torus {1.1,.6 scale <.65,1.5,1> translate x*.2}
|
||||
scale <-1,1,1>
|
||||
//pigment {rgb 1}
|
||||
}
|
||||
#declare BM_Thigh_R_Object=union {
|
||||
object {BM_Thigh_R_Object}
|
||||
union {
|
||||
#declare Length=16;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {4.5-(Loop/14),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {5,.65
|
||||
rotate z*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+15;
|
||||
#end
|
||||
sphere {0,3.35}
|
||||
//translate y*1
|
||||
}
|
||||
translate y*16
|
||||
rotate z*5
|
||||
translate y*-16
|
||||
}
|
||||
|
||||
#declare BM_Thigh_L_Object=union {
|
||||
object {BM_Thigh_L_Object}
|
||||
union {
|
||||
#declare Length=16;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {4.5-(Loop/14),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {5,.65
|
||||
rotate z*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+15;
|
||||
#end
|
||||
sphere {0,3.35}
|
||||
//translate y*1
|
||||
}
|
||||
translate y*16
|
||||
rotate z*-5
|
||||
translate y*-16
|
||||
}
|
||||
#declare BM_Calf_R_Object=union {
|
||||
object {BM_Calf_R_Object}
|
||||
union {
|
||||
#declare Length=19;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {3.4-(Loop*0.05),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {3.75,.8
|
||||
rotate x*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,3.75}
|
||||
}
|
||||
union {
|
||||
sphere { 0,1.5}
|
||||
cylinder {<0,0,0><0,-8,0> 1.5 }
|
||||
sphere {<0,-8,0>,1.5}
|
||||
scale <1.6,1,1> rotate x*5 translate <0,-4,3.5>
|
||||
}
|
||||
torus {1,.5 scale <1,1,1.5> translate <2,-6,3.5>}
|
||||
torus {1,.5 scale <1,1,1.5> translate <-2,-8,3.5>}
|
||||
}
|
||||
#declare BM_Calf_L_Object=union {
|
||||
object {BM_Calf_L_Object}
|
||||
union {
|
||||
#declare Length=19;
|
||||
#declare Loop=0;
|
||||
#while (Loop<Length)
|
||||
torus {3.4-(Loop*0.05),.65
|
||||
translate y*-Loop
|
||||
}
|
||||
#declare Loop=Loop+1;
|
||||
#end
|
||||
}
|
||||
union {
|
||||
#declare Loop=0;
|
||||
#while (Loop<360)
|
||||
torus {3.75,.8
|
||||
rotate x*Loop
|
||||
//rotate y*Loop
|
||||
}
|
||||
#declare Loop=Loop+30;
|
||||
#end
|
||||
sphere {0,3.75}
|
||||
}
|
||||
union {
|
||||
sphere { 0,1.5}
|
||||
cylinder {<0,0,0><0,-8,0> 1.5 }
|
||||
sphere {<0,-8,0>,1.5}
|
||||
scale <1.6,1,1> rotate x*5 translate <0,-4,3.5>
|
||||
}
|
||||
torus {1,.5 scale <1,1,1.5> translate <2,-6,3.5>}
|
||||
torus {1,.5 scale <1,1,1.5> translate <-2,-8,3.5>}
|
||||
scale <-1,1,1>
|
||||
}
|
||||
#declare BM_Foot_R_Object=union{difference {
|
||||
union {
|
||||
cylinder {<0,-1,0><0,1,0>2 translate <0,0,7> texture {ShoeGrip}}
|
||||
sphere{<0,0,.5>,3.25}
|
||||
torus {2.25,.5 translate <0,0,7> texture {ShoeGrip}}
|
||||
torus {2.0,.5 translate <0,1,7>}
|
||||
torus {1.9,.5 translate <0,1.75,7>}
|
||||
torus {1.8,.5 translate <0,2.5,7>}
|
||||
torus {3,.5 translate <0,0,.5> texture {ShoeGrip}}
|
||||
cone {<0,1.25,7>2.25,<0,-1,.5>3.25 scale <1,1.1,1>}
|
||||
cone {<0,1.25,7>2.25,<0,-1,.5>3.25 scale <1.1,1.1,1> clipped_by {plane{y,.5}}texture {ShoeGrip}}
|
||||
cone {<0,3.6,7>2,<0,-0.00001,7>2.5}
|
||||
blob { threshold .5
|
||||
#declare SideLoop=-60;
|
||||
#while (SideLoop<61)
|
||||
#declare Loop=5;
|
||||
#while (Loop<60)
|
||||
#declare Width=(61-Loop)/30;
|
||||
sphere {0,Width,1 scale <1,1,1> translate <0,0,-3> rotate x*50 rotate x*Loop rotate y*SideLoop translate <0,-.5,1>}
|
||||
sphere {0,Width,1 scale <1,1,1> translate <0,0,-3> rotate x*50 rotate x*-Loop rotate y*SideLoop translate <0,-.5,1>}
|
||||
#declare Loop=Loop+10;
|
||||
#end
|
||||
#declare SideLoop=SideLoop+60;
|
||||
#end
|
||||
}
|
||||
torus {.75,.35 rotate z*90 rotate y*5 translate <-2.1,2.5,7>}
|
||||
}
|
||||
plane {y,-.5 texture {ShoeGrip}}
|
||||
translate <0,-3.6,-7>
|
||||
}
|
||||
torus {1.5,.5 scale <1,2,1>}
|
||||
scale .85
|
||||
translate <0,.5,-.35>
|
||||
}
|
||||
|
||||
#declare BM_Foot_L_Object=union{difference {
|
||||
union {
|
||||
cylinder {<0,-1,0><0,1,0>2 translate <0,0,7> texture {ShoeGrip}}
|
||||
sphere{<0,0,.5>,3.25}
|
||||
torus {2.25,.5 translate <0,0,7> texture {ShoeGrip}}
|
||||
torus {2.0,.5 translate <0,1,7>}
|
||||
torus {1.9,.5 translate <0,1.75,7>}
|
||||
torus {1.8,.5 translate <0,2.5,7>}
|
||||
torus {3,.5 translate <0,0,.5> texture {ShoeGrip}}
|
||||
cone {<0,1.25,7>2.25,<0,-1,.5>3.25 scale <1,1.1,1>}
|
||||
cone {<0,1.25,7>2.25,<0,-1,.5>3.25 scale <1.1,1.1,1> clipped_by {plane{y,.5}}texture {ShoeGrip}}
|
||||
cone {<0,3.6,7>2,<0,-0.00001,7>2.5}
|
||||
blob { threshold .5
|
||||
#declare SideLoop=-60;
|
||||
#while (SideLoop<61)
|
||||
#declare Loop=5;
|
||||
#while (Loop<60)
|
||||
#declare Width=(61-Loop)/30;
|
||||
sphere {0,Width,1 scale <1,1,1> translate <0,0,-3> rotate x*50 rotate x*Loop rotate y*SideLoop translate <0,-.5,1>}
|
||||
sphere {0,Width,1 scale <1,1,1> translate <0,0,-3> rotate x*50 rotate x*-Loop rotate y*SideLoop translate <0,-.5,1>}
|
||||
#declare Loop=Loop+10;
|
||||
#end
|
||||
#declare SideLoop=SideLoop+60;
|
||||
#end
|
||||
}
|
||||
torus {.75,.35 rotate z*90 rotate y*5 translate <-2.1,2.5,7>}
|
||||
}
|
||||
plane {y,-.5 texture {ShoeGrip}}
|
||||
translate <0,-3.6,-7>
|
||||
}
|
||||
torus {1.5,.5 scale <1,2,1>}
|
||||
scale .85
|
||||
translate <0,.5,-.35>
|
||||
scale <-1,1,1>
|
||||
}
|
||||
// EOF
|
Before Width: | Height: | Size: 40 KiB |
|
@ -1,107 +0,0 @@
|
|||
/********************************************************
|
||||
Persistence of Vision Ray Tracer Scene Description File
|
||||
File : sample.pov
|
||||
BM_Version : 4.0
|
||||
Description: Sample Scene using Blob Man Figures
|
||||
Date : April 2000
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://welcome.to/HoustonGraphics
|
||||
*********************************************************/
|
||||
|
||||
global_settings { assumed_gamma 2.2 }
|
||||
|
||||
camera {
|
||||
location <0, 2, -5>
|
||||
direction 1.5*z
|
||||
right 4/3*x
|
||||
look_at <-.25, 1, 0>
|
||||
}
|
||||
|
||||
|
||||
sky_sphere {
|
||||
pigment {
|
||||
gradient y
|
||||
color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }
|
||||
}
|
||||
}
|
||||
|
||||
light_source {
|
||||
<-80, 80, -80>
|
||||
color rgb <1,.9,.95>*1.5
|
||||
spotlight
|
||||
point_at <0, 0, 0>
|
||||
radius .1
|
||||
tightness 75
|
||||
falloff 3
|
||||
}
|
||||
|
||||
plane {y,0
|
||||
pigment {checker pigment {rgb 0}, pigment {rgb 1} rotate y*16}
|
||||
}
|
||||
|
||||
#declare Hair=off; // Warning : Turning hair on increase parsing time !
|
||||
|
||||
#include "bmpeople.inc"
|
||||
#include "bm_pose.inc"
|
||||
|
||||
#declare BM_EyeLids=<.35,0,.35>
|
||||
#declare BM_Jaw=.25;
|
||||
#declare BM_Mouth=1;
|
||||
#declare BM_MouthShape=1;
|
||||
|
||||
|
||||
#declare BM_HairStyle=2*Hair;
|
||||
#declare BM_PoseNo=11;
|
||||
Blob_Man(Female,1.8)
|
||||
object {BlobMan
|
||||
transform BMO_Abdomen_L
|
||||
rotate z*-85
|
||||
}
|
||||
|
||||
#declare BM_HairStyle=1*Hair;
|
||||
#declare BM_PoseNo=0;
|
||||
Blob_Man(Female,1.8)
|
||||
object {BlobMan
|
||||
transform BMO_Foot_L
|
||||
translate <-.5,0,1>
|
||||
}
|
||||
|
||||
#declare BM_HairStyle=2*Hair;
|
||||
#declare BM_PoseNo=2;
|
||||
Blob_Man(Male,2)
|
||||
object {BlobMan
|
||||
transform BMO_Abdomen_U
|
||||
rotate y*45
|
||||
translate <1,0,-.5>
|
||||
}
|
||||
|
||||
#declare BM_HairStyle=1*Hair;
|
||||
#declare BM_PoseNo=7;
|
||||
Blob_Man(Male,1.85)
|
||||
object {BlobMan
|
||||
transform BMO_Hand_R
|
||||
translate <-1,0,0>
|
||||
}
|
||||
|
||||
#declare BM_HairStyle=3*Hair;
|
||||
#declare BM_PoseNo=6;
|
||||
Blob_Man(Female,1.85)
|
||||
object {BlobMan
|
||||
transform BMO_Knee_R
|
||||
rotate y*-45
|
||||
translate <0,1,0>*BM_Scale
|
||||
translate <-1.5,0,-1>
|
||||
}
|
||||
|
||||
#declare BM_HairStyle=1*Hair;
|
||||
#declare BM_PoseNo=8;
|
||||
Blob_Man(Female,2)
|
||||
object {BlobMan
|
||||
transform BMO_Torso_B
|
||||
rotate x*99
|
||||
rotate y*30
|
||||
translate <1,0,2.5>
|
||||
}
|
||||
|
||||
// EOF
|
Before Width: | Height: | Size: 23 KiB |
|
@ -1,92 +0,0 @@
|
|||
/*******************************************************
|
||||
Persistence of Vision Ray Tracer Scene Description File
|
||||
File Name : silversurfer.pov
|
||||
Version : 3.1
|
||||
Desciption: Tribute to the comics I read as a youth.
|
||||
Date : 23 April 1999
|
||||
Author : Peter Houston
|
||||
Email : houston.graphics@iname.com
|
||||
WWW : http://members.xoom.com/HoustonGraph/
|
||||
********************************************************/
|
||||
|
||||
#version 3.1;
|
||||
|
||||
#include "metals.inc"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 2.2
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
|
||||
camera {
|
||||
location <-.5, -1, -5>
|
||||
direction 1.5*z
|
||||
right 4/3*x
|
||||
look_at <0, .5, 0.0>
|
||||
//rotate z*-15
|
||||
}
|
||||
|
||||
|
||||
sky_sphere {
|
||||
pigment {
|
||||
gradient z
|
||||
color_map {
|
||||
[0.0 color rgb <0.7,0.7,1.0>]
|
||||
[1.0 color blue 0.5]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
background {rgb .5}
|
||||
light_source {
|
||||
<-30, 100, -200>
|
||||
rgb <.95,.98,.99>
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
|
||||
#declare BM_Skin_Tex=texture {T_Chrome_1E}
|
||||
#declare BM_Lip_Tex=BM_Skin_Tex
|
||||
#declare BM_Tooth_Tex=BM_Skin_Tex
|
||||
#declare BM_EyeShadow=BM_Skin_Tex
|
||||
#include "bmpeople.inc"
|
||||
#include "bm_pose.inc"
|
||||
|
||||
#declare BM_PoseNo=9
|
||||
#declare BM_EyeSet=<1,0,1>;
|
||||
#declare BM_Eyes=0;
|
||||
#declare BM_Jaw=0;
|
||||
#declare BM_Mouth=1;
|
||||
#declare BM_MouthShape=1;
|
||||
#declare BM_Jowls=-.25;
|
||||
#declare BM_Ears=1;
|
||||
#declare BM_Teeth=0;
|
||||
|
||||
#declare DeBug=off;
|
||||
|
||||
Blob_Man(1,2)
|
||||
union {
|
||||
|
||||
object{ BlobMan
|
||||
transform BMO_Foot_L
|
||||
rotate z*-4.5
|
||||
rotate y*-20
|
||||
translate <.9,.06,0>
|
||||
}
|
||||
|
||||
sphere { <0,0,0>.6
|
||||
scale <3.5,.1,.5>
|
||||
texture {T_Chrome_1E}
|
||||
}
|
||||
rotate y*30
|
||||
rotate z*15
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//EOF
|
Before Width: | Height: | Size: 22 KiB |
|
@ -1,61 +0,0 @@
|
|||
// GALAXY INCLUDE FILE: SAMPLE GALAXY OBJECTS
|
||||
// ******************************************
|
||||
// This scene shows all of the twenty galaxy objects created by
|
||||
// Galaxy.obj. They are grouped by row (Stars, Nebulae, Galaxies,
|
||||
// Comets, and Meteors at the bottom), numbered from left to right
|
||||
// (starting at 1). For more information on using these objects,
|
||||
// see Galaxy.txt
|
||||
//
|
||||
// Recommended resolution: 800 x 600 or larger, no anti-aliasing
|
||||
|
||||
// NARROW ANGLE CAMERA (TO PREVENT DISTORTION)
|
||||
camera {location <0, 0, 0> look_at <0, 0, 1> angle 24}
|
||||
|
||||
// COMMON GALAXY OPTIONS
|
||||
#declare galaxy_colour1 = <1.3, 1.2, .9>;
|
||||
#declare galaxy_colour2 = <.4, .8, 1>;
|
||||
#declare galaxy_cluster_name = ""
|
||||
|
||||
// STARFIELD BACKGROUND
|
||||
#declare galaxy_bgstars = 2;
|
||||
#declare galaxy_bgnebula = false;
|
||||
#declare galaxy_nebula_sphere = false;
|
||||
#include "GALAXY.BG"
|
||||
|
||||
// STAR OBJECTS
|
||||
#declare galaxy_object_scale = .2;
|
||||
#declare C = 0; #while (C < 4)
|
||||
#declare galaxy_object_name = concat("Star", str(C + 1, 0, 0))
|
||||
#declare galaxy_object_position = <7, -10 + C * 4, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
#declare C = C + 1; #end
|
||||
|
||||
// NEBULAE OBJECTS
|
||||
#declare galaxy_object_scale = .15;
|
||||
#declare C = 0; #while (C < 6)
|
||||
#declare galaxy_object_name = concat("Nebula", str(C + 1, 0, 0))
|
||||
#declare galaxy_object_position = <3, -10 + C * 4, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
#declare C = C + 1; #end
|
||||
|
||||
// GALAXY OBJECTS
|
||||
#declare galaxy_object_rotate = 30;
|
||||
#declare C = 0; #while (C < 5)
|
||||
#declare galaxy_object_name = concat("Galaxy", str(C + 1, 0, 0))
|
||||
#declare galaxy_object_position = <-1, -10 + C * 4, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
#declare C = C + 1; #end
|
||||
|
||||
// COMET OBJECTS
|
||||
#declare C = 0; #while (C < 3)
|
||||
#declare galaxy_object_name = concat("Comet", str(C + 1, 0, 0))
|
||||
#declare galaxy_object_position = <-4.5, -11 + C * 4, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
#declare C = C + 1; #end
|
||||
|
||||
// METEOR OBJECTS
|
||||
#declare C = 0; #while (C < 2)
|
||||
#declare galaxy_object_name = concat("Meteor", str(C + 1, 0, 0))
|
||||
#declare galaxy_object_position = <-7.5, -11 + C * 4, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
#declare C = C + 1; #end
|
|
@ -1,20 +0,0 @@
|
|||
// GALAXY INCLUDE FILE: DYNAMIC OPTIONS ANIMATION
|
||||
// **********************************************
|
||||
// This animation shows the effect of various galaxy options on the
|
||||
// resulting galaxy scene.
|
||||
//
|
||||
// Recommended frames: 50 to 100, cyclic animation
|
||||
|
||||
// BACKGROUND STARFIELD AND MILKY WAY
|
||||
#declare galaxy_bgstars = 5;
|
||||
#declare galaxy_bgnebula = 6;
|
||||
#declare galaxy_nebula_sphere = false;
|
||||
#include "GALAXY.BG"
|
||||
|
||||
// ANIMATED NEBULA
|
||||
#declare galaxy_nebula_sphere = 1;
|
||||
#declare galaxy_colour1 = <1, .5, .4> + <0, .5, .2> * (sin((clock - .25) * pi) + 1) / 2;
|
||||
#declare galaxy_colour2 = <0, .5, 1> + <1, -.3, -.3> * (sin((clock - .25) * pi) + 1) / 2;
|
||||
#declare galaxy_pattern_scale = 1 + .4 * sin(clock * 2 * pi);
|
||||
#declare galaxy_pattern_origin = <-10, 10, 10> + vrotate (z * .2, <45 * sin(clock * pi * 4), clock * 360, 0>);
|
||||
#include "GALAXY.BG"
|
180
galaxy/GALAXY.BG
|
@ -1,180 +0,0 @@
|
|||
/*************************************************************************
|
||||
GALAXY BACKGROUNDS FILE FOR PERSISTENCE OF VISION 3.x
|
||||
**************************************************************************
|
||||
|
||||
Created by Chris Colefax, 1 February 1998
|
||||
Updated 9 August 1998: updated for POV-Ray 3.1
|
||||
|
||||
See "Galaxy.htm" for more information.
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
// CHECK VARIABLES AND ASSIGN DEFAULTS
|
||||
// ***********************************
|
||||
#declare _GX_bgtempver = version; #version 3.0;
|
||||
#ifndef (galaxy_declare_only) #declare galaxy_declare_only = false; #end
|
||||
#ifndef (galaxy_bgstars) #declare galaxy_bgstars = 2; #end
|
||||
#ifndef (galaxy_bgnebula) #declare galaxy_bgnebula = 6; #end
|
||||
#ifndef (galaxy_nebula_sphere) #declare galaxy_nebula_sphere = 1; #end
|
||||
#ifndef (galaxy_nebula_ambient) #declare _GX_nebambient = <1, 1, 1>; #else #declare _GX_nebambient = galaxy_nebula_ambient * <1, 1, 1>; #end
|
||||
#ifndef (galaxy_distance) #declare galaxy_distance = 1e4; #end
|
||||
#ifndef (galaxy_pattern_scale) #declare galaxy_pattern_scale = 1; #end
|
||||
#ifndef (galaxy_pattern_origin) #declare galaxy_pattern_origin = <0, 0, 0>; #end
|
||||
#ifndef (galaxy_turb_origin) #declare galaxy_turb_origin = <0, 0, 0>; #end
|
||||
#ifndef (galaxy_intensity) #declare galaxy_intensity = 1; #end
|
||||
|
||||
#ifdef (galaxy_colour1) #declare _GX_colour1 = galaxy_colour1 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color1) #declare _GX_colour1 = galaxy_color1 * <1, 1, 1>;
|
||||
#else #declare _GX_colour1 = <1, 1, 1>; #end #end
|
||||
#ifdef (galaxy_colour2) #declare _GX_colour2 = galaxy_colour2 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color2) #declare _GX_colour2 = galaxy_color2 * <1, 1, 1>;
|
||||
#else #declare _GX_colour2 = _GX_colour1 - .3; #end #end
|
||||
#ifdef (galaxy_colour3) #declare _GX_colour3 = galaxy_colour3 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color3) #declare _GX_colour3 = galaxy_color3 * <1, 1, 1>;
|
||||
#else #declare _GX_colour3 = (_GX_colour1 + _GX_colour2) / 2; #end #end
|
||||
#ifdef (galaxy_star_colouration) #declare _GX_starcolouration = galaxy_star_colouration;
|
||||
#else #ifdef (galaxy_star_coloration) #declare _GX_starcolouration = galaxy_star_coloration;
|
||||
#else #declare _GX_starcolouration = .2; #end #end
|
||||
|
||||
#declare _GX_finaltranslate = galaxy_turb_origin - galaxy_pattern_origin;
|
||||
#ifndef (_GX_tracelevel) #declare _GX_tracelevel = 5; #end
|
||||
|
||||
// CALCULATE STAR COLOURS
|
||||
// **********************
|
||||
#if (_GX_starcolouration = 1)
|
||||
#declare _GX_starcolour1 = _GX_colour1;
|
||||
#declare _GX_starcolour2 = _GX_colour2;
|
||||
#declare _GX_starcolour3 = _GX_colour3;
|
||||
#else
|
||||
#declare _GX_tempfloat1 = max(_GX_colour1.x, _GX_colour1.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour1.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour1.x, _GX_colour1.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour1.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour1 = _GX_tempfloat1 + (_GX_colour1 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
|
||||
#declare _GX_tempfloat1 = max(_GX_colour2.x, _GX_colour2.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour2.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour2.x, _GX_colour2.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour2.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour2 = _GX_tempfloat1 + (_GX_colour2 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
|
||||
#declare _GX_tempfloat1 = max(_GX_colour3.x, _GX_colour3.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour3.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour3.x, _GX_colour3.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour3.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour3 = _GX_tempfloat1 + (_GX_colour3 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
#end
|
||||
|
||||
// CREATE STAR PIGMENTS
|
||||
// ********************
|
||||
#declare BGStars1 = pigment {leopard color_map {
|
||||
[.6 rgb 0] [.9 rgb _GX_starcolour2 * .1] [.98 rgb _GX_starcolour3 * .4] [1 rgb _GX_starcolour1 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGStars2 = pigment {leopard color_map {
|
||||
[.4 rgb 0] [.75 rgb _GX_starcolour2 * .2] [.95 rgb _GX_starcolour3 * .5] [1 rgb _GX_starcolour1 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGStars3 = pigment {leopard color_map {
|
||||
[.1 rgb 0] [.5 rgb _GX_starcolour2 * .3] [.85 rgb _GX_starcolour3 * .6] [1 rgb _GX_starcolour1 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGStars4 = pigment {leopard color_map {
|
||||
[.97 rgb 0] [.975 rgb _GX_starcolour2 * galaxy_intensity]
|
||||
[.98 rgb 0] [.985 rgb _GX_starcolour3 * galaxy_intensity]
|
||||
[.99 rgb 0] [1 rgb _GX_starcolour1 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGStars5 = pigment {leopard color_map {
|
||||
[.85 rgb 0] [.87 rgb _GX_starcolour2 * galaxy_intensity]
|
||||
[.89 rgb 0] [.92 rgb _GX_starcolour3 * galaxy_intensity]
|
||||
[.95 rgb 0] [1 rgb _GX_starcolour1 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGStars6 = pigment {leopard color_map {
|
||||
[.7 rgb 0] [.75 rgb _GX_starcolour2 * 1.5 * galaxy_intensity]
|
||||
[.8 rgb 0] [.85 rgb _GX_starcolour3 * 1.5 * galaxy_intensity]
|
||||
[.9 rgb 0] [1 rgb _GX_starcolour1 * 1.5 * galaxy_intensity]}
|
||||
scale 1e-15 translate -galaxy_pattern_origin}
|
||||
|
||||
#declare BGMilkyWay = pigment {gradient y pigment_map {
|
||||
[.03 granite color_map {[.1 rgb _GX_starcolour3 transmit pow(.9, galaxy_intensity)] [.8 rgb _GX_starcolour1 transmit pow(.7, galaxy_intensity)]} scale .8 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.08 granite color_map {[.4 rgb _GX_starcolour2 transmit 1] [1 rgb _GX_starcolour3 transmit pow(.8, galaxy_intensity)]} scale .6 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.1 rgb _GX_starcolour2 transmit 1]}
|
||||
scale 3
|
||||
translate -galaxy_turb_origin warp {turbulence .3 octaves 4 lambda 3} translate galaxy_turb_origin}
|
||||
|
||||
// CREATE NEBULAE PIGMENTS
|
||||
// ***********************
|
||||
#declare BGNebula1 = pigment {bozo pigment_map {
|
||||
[-.3 granite color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour1 transmit pow(.6, galaxy_intensity)]} scale 6 * galaxy_pattern_scale]
|
||||
[.4 granite color_map {[0 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)] [.5 rgb _GX_colour2 transmit pow(.95, galaxy_intensity)]} scale 3 * galaxy_pattern_scale]
|
||||
[.9 rgb _GX_colour2 transmit 1]}
|
||||
scale .3
|
||||
translate -galaxy_turb_origin warp {turbulence .18 octaves 4 omega .4 lambda 3} translate _GX_finaltranslate}
|
||||
|
||||
#declare BGNebula2 = pigment {bozo pigment_map {
|
||||
[-.3 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
warp {turbulence 2 octaves 1} scale 1.5 * galaxy_pattern_scale]
|
||||
[.4 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [.5 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]}
|
||||
warp {turbulence 1 octaves 1} scale galaxy_pattern_scale]
|
||||
[.7 rgb _GX_colour2 transmit 1]}
|
||||
scale .3
|
||||
translate -galaxy_turb_origin warp {turbulence .15 octaves 2 lambda 4} translate _GX_finaltranslate}
|
||||
|
||||
#declare BGNebula3 = pigment {leopard pigment_map {
|
||||
[-.1 rgbt _GX_colour2 transmit 1]
|
||||
[.4 wrinkles color_map {[0 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
scale .8 * galaxy_pattern_scale translate -galaxy_turb_origin]
|
||||
[1 granite color_map {[.05 rgb _GX_colour3 transmit 1] [.3 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]}
|
||||
scale 6 * galaxy_pattern_scale translate galaxy_turb_origin]}
|
||||
scale .13
|
||||
translate -galaxy_turb_origin warp {turbulence .3 octaves 4 lambda 3 omega .4} translate _GX_finaltranslate}
|
||||
|
||||
#declare BGNebula4 = pigment {bozo pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour1 transmit pow(.4, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.95, galaxy_intensity)]} scale 2 * galaxy_pattern_scale]
|
||||
[.6 granite color_map {[0 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)] [.4 rgb _GX_colour2 transmit 1]} scale 1.7 * galaxy_pattern_scale]
|
||||
[.9 rgb _GX_colour2 transmit 1]}
|
||||
scale .3
|
||||
translate -galaxy_turb_origin warp {turbulence .5 octaves 4 omega .4 lambda 3} translate _GX_finaltranslate}
|
||||
|
||||
#declare BGNebula5 = pigment {bozo pigment_map {
|
||||
[-.1 wrinkles color_map {[.1 rgb _GX_colour2 transmit 1] [.4 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [.8 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]} scale .3 * galaxy_pattern_scale]
|
||||
[.4 wrinkles color_map {[.5 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]} scale .3 * galaxy_pattern_scale]
|
||||
[.6 rgb _GX_colour2 transmit 1]}
|
||||
scale .22
|
||||
translate -galaxy_turb_origin warp {turbulence .2 octaves 4 omega .3 lambda 5} translate _GX_finaltranslate}
|
||||
|
||||
// CREATE GALAXY BACKGROUND (SKYSPHERE)
|
||||
// ************************************
|
||||
#if (galaxy_declare_only = false)
|
||||
#ifndef (galaxy_sky_sphere) #if (galaxy_bgstars != false | galaxy_bgnebula != false)
|
||||
sky_sphere {
|
||||
#if (galaxy_bgstars != false) pigment { #switch (abs(int(galaxy_bgstars)))
|
||||
#case (1) BGStars1 #break #case (3) BGStars3 #break #case (4) BGStars4 #break
|
||||
#case (5) BGStars5 #break #case (6) BGStars6 #break #else BGStars2 #end }
|
||||
#end
|
||||
#if (galaxy_bgnebula != false) pigment { #switch (abs(int(galaxy_bgnebula)))
|
||||
#case (1) BGNebula1 #break #case (2) BGNebula2 #break #case (3) BGNebula3 #break
|
||||
#case (4) BGNebula4 #break #case (5) BGNebula5 #break #else BGMilkyWay #end
|
||||
#ifdef (galaxy_rotate) rotate galaxy_rotate #end }
|
||||
#end
|
||||
}
|
||||
#declare galaxy_sky_sphere = false;
|
||||
#declare galaxy_bgstars = false;
|
||||
#declare galaxy_bgnebula = false;
|
||||
|
||||
// CREATE DUMMY OBJECT (TO PREVENT "No objects in scene" ERROR)
|
||||
// ************************************************************
|
||||
#if (galaxy_nebula_sphere = false) sphere {<0, 0, 0>, 0 pigment {rgb <0, 0, 0>}} #end
|
||||
#end #end
|
||||
|
||||
// CREATE NEBULA SPHERE
|
||||
// ********************
|
||||
#if (galaxy_nebula_sphere != false) sphere {<0, 0, 0>, 1
|
||||
pigment { #switch (abs(int(galaxy_nebula_sphere)))
|
||||
#case (2) BGNebula2 #break #case (3) BGNebula3 #break #case (4) BGNebula4 #break
|
||||
#case (5) BGNebula5 #break #else BGNebula1 #end
|
||||
translate -galaxy_pattern_origin}
|
||||
finish {ambient _GX_nebambient diffuse 0 reflection 0 phong 0 specular 0 crand 0}
|
||||
no_shadow hollow scale galaxy_distance
|
||||
#ifdef (galaxy_rotate) rotate galaxy_rotate #end
|
||||
#ifdef (galaxy_origin) translate -galaxy_origin #end }
|
||||
#declare galaxy_distance = galaxy_distance * 1.001;
|
||||
#declare _GX_tracelevel = _GX_tracelevel + 1;
|
||||
global_settings {max_trace_level min(_GX_tracelevel, 30)}
|
||||
#end #end #version _GX_bgtempver;
|
|
@ -1,154 +0,0 @@
|
|||
/*************************************************************************
|
||||
GALAXY INCLUDE FILE FOR PERSISTENCE OF VISION 3.x
|
||||
**************************************************************************
|
||||
|
||||
Created by Chris Colefax, 1 February 1998
|
||||
Updated 9 August 1998: updated for POV-Ray 3.1
|
||||
|
||||
NOTE: This file requires that Galaxy.bg, Galaxy.obj and Galaxy.sf
|
||||
be properly installed. See "Galaxy.htm" for more information.
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
// CHECK VARIABLES AND ASSIGN DEFAULTS
|
||||
// ***********************************
|
||||
#declare _GX_tempver = version; #version 3.0;
|
||||
#ifndef (galaxy_seed) #declare galaxy_seed = 0; #end
|
||||
#ifndef (galaxy_bg) #declare galaxy_bg = true; #end
|
||||
#ifndef (galaxy_objects) #declare galaxy_objects = true; #end
|
||||
#ifndef (galaxy_starfield) #declare galaxy_starfield = true; #end
|
||||
#ifndef (options_only) #declare options_only = false; #end
|
||||
#ifndef (debug_options) #declare debug_options = false; #end
|
||||
|
||||
#ifdef (galaxy_colour) #declare _GX_colour = galaxy_colour * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color) #declare _GX_colour = galaxy_color * <1, 1, 1>;
|
||||
#else #declare _GX_colour = <1, 1, 1>; #end #end
|
||||
#ifdef (galaxy_colouration) #declare _GX_colouration = galaxy_colouration;
|
||||
#else #ifdef (galaxy_coloration) #declare _GX_colouration = galaxy_coloration;
|
||||
#else #declare _GX_colouration = .5; #end #end
|
||||
#ifdef (galaxy_colour_turb) #declare _GX_colourturb = galaxy_colour_turb * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color_turb) #declare _GX_colourturb = galaxy_color_turb * <1, 1, 1>;
|
||||
#else #declare _GX_colourturb = <.2, .2, .2>; #end #end
|
||||
|
||||
// SELECT FIRST GALAXY HUE AND CONVERT TO RGB VALUE
|
||||
// ************************************************
|
||||
#declare _GX_rand = seed(galaxy_seed);
|
||||
#declare _GX_tempfloat1 = rand(_GX_rand);
|
||||
#switch (_GX_tempfloat1)
|
||||
#range (0, .333) #declare galaxy_colour1 = <1, _GX_tempfloat1 * 3, 0>; #break
|
||||
#range (.333, .444) #declare galaxy_colour1 = <1 - (_GX_tempfloat1 * 9 - 3), 1, 0>; #break
|
||||
#range (.444, .555) #declare galaxy_colour1 = <0, 1, _GX_tempfloat1 * 9 - 4>; #break
|
||||
#range (.555, .667) #declare galaxy_colour1 = <0, 1 - (_GX_tempfloat1 * 9 - 4), 1>; #break
|
||||
#range (.667, .833) #declare galaxy_colour1 = <_GX_tempfloat1 * 6 - 4, 0, 1>; #break
|
||||
#range (.833, 1) #declare galaxy_colour1 = <1, 0, 1 - (_GX_tempfloat1 * 6 - 5)>; #end
|
||||
#declare galaxy_colour1 = (1 + ((galaxy_colour1 - .5) * _GX_colouration)) * _GX_colour;
|
||||
|
||||
// SELECT SECOND GALAXY HUE AND CONVERT TO RGB VALUE
|
||||
// *************************************************
|
||||
#declare _GX_tempfloat1 = _GX_tempfloat1 + ((_GX_colourturb.x + _GX_colourturb.y + _GX_colourturb.z) / (rand(_GX_rand) < .5 ? 3 : -3));
|
||||
#declare _GX_tempfloat1 = mod(_GX_tempfloat1, 1) + (_GX_tempfloat1 < 0 ? 1 : 0);
|
||||
#switch (_GX_tempfloat1)
|
||||
#range (0, .333) #declare galaxy_colour2 = <1, _GX_tempfloat1 * 3, 0>; #break
|
||||
#range (.333, .444) #declare galaxy_colour2 = <1 - (_GX_tempfloat1 * 9 - 3), 1, 0>; #break
|
||||
#range (.444, .555) #declare galaxy_colour2 = <0, 1, _GX_tempfloat1 * 9 - 4>; #break
|
||||
#range (.555, .667) #declare galaxy_colour2 = <0, 1 - (_GX_tempfloat1 * 9 - 4), 1>; #break
|
||||
#range (.667, .833) #declare galaxy_colour2 = <_GX_tempfloat1 * 6 - 4, 0, 1>; #break
|
||||
#range (.833, 1) #declare galaxy_colour2 = <1, 0, 1 - (_GX_tempfloat1 * 6 - 5)>; #end
|
||||
#declare galaxy_colour2 = (.8 + ((galaxy_colour2 - .5) * _GX_colouration)) * _GX_colour;
|
||||
|
||||
// SELECT RANDOM OPTIONS
|
||||
// *********************
|
||||
#declare galaxy_pattern_scale = .6 + (rand(_GX_rand) * .8);
|
||||
#declare galaxy_pattern_origin = (<rand(_GX_rand), rand(_GX_rand), rand(_GX_rand)> - .5) * 50;
|
||||
#declare galaxy_turb_origin = (<rand(_GX_rand), rand(_GX_rand), rand(_GX_rand)> - .5) * 50;
|
||||
#declare galaxy_star_colouration = rand(_GX_rand) - .5;
|
||||
#declare _GX_colourturb = _GX_colourturb * _GX_colouration;
|
||||
|
||||
// SELECT RANDOM GALAXY.BG OPTIONS
|
||||
// *******************************
|
||||
#declare galaxy_bgstars = 1 + int(rand(_GX_rand) * 5.99);
|
||||
#declare galaxy_bgnebula = min(1 + int(rand(_GX_rand) * 10), 6);
|
||||
#declare galaxy_nebula_sphere = 1 + int(rand(_GX_rand) * 4.99);
|
||||
#declare galaxy_nebula_ambient = 1 + (<rand(_GX_rand), rand(_GX_rand), rand(_GX_rand)> - .5) * _GX_colourturb;
|
||||
|
||||
// SELECT RANDOM GALAXY.OBJ OPTIONS
|
||||
// ********************************
|
||||
#declare _GX_tempfloat1 = rand(_GX_rand)
|
||||
#if (_GX_tempfloat1 <= .6)
|
||||
#declare galaxy_cluster_name = concat("Star", str(1 + int(rand(_GX_rand) * 3.99), 0, 0))
|
||||
#declare galaxy_cluster_objects = 6 + int(rand(_GX_rand) * 6);
|
||||
#declare galaxy_cluster_rotate = min(0, mod(rand(_GX_rand) * 90, 15) - 45);
|
||||
#else #declare galaxy_cluster_name = "" #end
|
||||
|
||||
#declare galaxy_object_scale = 1 + rand(_GX_rand);
|
||||
#declare galaxy_object_flatten = .1 + rand(_GX_rand) * .5;
|
||||
#declare galaxy_object_rotate = (rand(_GX_rand) - .5) * 90;
|
||||
#declare galaxy_cluster_scale = galaxy_object_scale * (.3 + (rand(_GX_rand) * .4));
|
||||
|
||||
#switch (_GX_tempfloat1)
|
||||
#range (0, .3) #declare galaxy_object_name = concat("Nebula", str(1 + int(rand(_GX_rand) * 5.3), 0, 0)) #break
|
||||
#range (.3, .6) #declare galaxy_object_name = concat("Star", str(1 + int(rand(_GX_rand) * 3.99), 0, 0)) #declare galaxy_object_rotate = galaxy_cluster_rotate #break
|
||||
#range (.6, .8) #declare galaxy_object_name = concat("Comet", str(1 + int(rand(_GX_rand) * 2.99), 0, 0)) #break
|
||||
#else
|
||||
#declare galaxy_cluster_name = concat("Meteor", str(1 + int(rand(_GX_rand) * 1.4), 0, 0))
|
||||
#declare galaxy_cluster_objects = 4 + int(rand(_GX_rand) * 4);
|
||||
#declare galaxy_cluster_rotate = (rand(_GX_rand) - .5) * 90;
|
||||
#declare galaxy_object_name = ""
|
||||
#end
|
||||
|
||||
// SELECT RANDOM STARFIELD OPTIONS
|
||||
// *******************************
|
||||
#declare star_type = int(rand(_GX_rand) * 2.99) + 1;
|
||||
#declare star_colour = _GX_colour;
|
||||
#declare star_colour_turb = _GX_colourturb;
|
||||
|
||||
// WRITE OPTION VALUES TO DEBUG STREAM
|
||||
// ***********************************
|
||||
#if (debug_options != false)
|
||||
#debug concat("// GALAXY INCLUDE FILE OPTIONS (galaxy_seed = ", str(galaxy_seed, 0, 0), ")\r\n")
|
||||
#debug concat(" #declare galaxy_colour1 = <", str(galaxy_colour1.x, 0, 3), ", ", str(galaxy_colour1.y, 0, 3), ", ", str(galaxy_colour1.z, 0, 3), ">;\r\n")
|
||||
#debug concat(" #declare galaxy_colour2 = <", str(galaxy_colour2.x, 0, 3), ", ", str(galaxy_colour2.y, 0, 3), ", ", str(galaxy_colour2.z, 0, 3), ">;\r\n")
|
||||
#debug concat(" #declare galaxy_pattern_scale = ", str(galaxy_pattern_scale, 0, 3), ";\r\n")
|
||||
#debug concat(" #declare galaxy_pattern_origin = <", str(galaxy_pattern_origin.x, 0, 3), ", ", str(galaxy_pattern_origin.y, 0, 3), ", ", str(galaxy_pattern_origin.z, 0, 3), ">;\r\n")
|
||||
#debug concat(" #declare galaxy_turb_origin = <", str(galaxy_turb_origin.x, 0, 3), ", ", str(galaxy_turb_origin.y, 0, 3), ", ", str(galaxy_turb_origin.z, 0, 3), ">;\r\n")
|
||||
#debug concat(" #declare galaxy_star_colouration = ", str(galaxy_star_colouration, 0, 3), ";\r\n")
|
||||
#debug "\r\n"
|
||||
#debug concat(" #declare galaxy_bgstars = ", str(galaxy_bgstars, 0, 0), ";\r\n")
|
||||
#debug concat(" #declare galaxy_bgnebula = ", str(galaxy_bgnebula, 0, 0), ";\r\n")
|
||||
#debug concat(" #declare galaxy_nebula_sphere = ", str(galaxy_nebula_sphere, 0, 0), ";\r\n")
|
||||
#debug concat(" #declare galaxy_nebula_ambient = <", str(galaxy_nebula_ambient.x, 0, 3), ", ", str(galaxy_nebula_ambient.y, 0, 3), ", ", str(galaxy_nebula_ambient.z, 0, 3), ">;\r\n")
|
||||
#debug "\r\n"
|
||||
#debug concat(" #declare galaxy_object_name = \"", galaxy_object_name, "\"\r\n")
|
||||
#if (strlen (galaxy_object_name) > 0)
|
||||
#debug concat(" #declare galaxy_object_scale = ", str(galaxy_object_scale, 0, 3), ";\r\n")
|
||||
#debug concat(" #declare galaxy_object_flatten = ", str(galaxy_object_flatten, 0, 3), ";\r\n")
|
||||
#debug concat(" #declare galaxy_object_rotate = ", str(galaxy_object_rotate, 0, 1), ";\r\n")
|
||||
#end
|
||||
#debug concat(" #declare galaxy_cluster_name = \"", galaxy_cluster_name, "\"\r\n")
|
||||
#if (strlen (galaxy_cluster_name) > 0)
|
||||
#debug concat(" #declare galaxy_cluster_objects = ", str(galaxy_cluster_objects, 0, 0), ";\r\n")
|
||||
#debug concat(" #declare galaxy_cluster_scale = ", str(galaxy_cluster_scale, 0, 3), ";\r\n")
|
||||
#debug concat(" #declare galaxy_cluster_rotate = ", str(galaxy_cluster_rotate, 0, 1), ";\r\n")
|
||||
#end
|
||||
#debug "\r\n"
|
||||
#debug concat(" #declare star_type = ", str(star_type, 0, 0), ";\r\n")
|
||||
#debug concat(" #declare star_colour = <", str(star_colour.x, 0, 3), ", ", str(star_colour.y, 0, 3), ", ", str(star_colour.z, 0, 3), ">;\r\n")
|
||||
#debug concat(" #declare star_colour_turb = <", str(star_colour_turb.x, 0, 3), ", ", str(star_colour_turb.y, 0, 3), ", ", str(star_colour_turb.z, 0, 3), ">;\r\n")
|
||||
#debug "\r\n\r\n"
|
||||
#end
|
||||
|
||||
// CREATE GALAXY BACKGROUND, OBJECTS AND STARFIELD
|
||||
// ***********************************************
|
||||
#if (options_only = false)
|
||||
#if (galaxy_bg != false) #include "GALAXY.BG" #end
|
||||
#if (galaxy_objects != false) #include "GALAXY.OBJ" #end
|
||||
#if (galaxy_starfield != false) #include "GALAXY.SF" #end
|
||||
#end
|
||||
|
||||
#declare galaxy_objects = false;
|
||||
#declare galaxy_starfield = false;
|
||||
|
||||
// SELECT NEW GALAXY SEED (FOR SUBSQUENT GALAXY.INC INCLUSIONS)
|
||||
// ************************************************************
|
||||
#declare galaxy_seed = (rand(_GX_rand) - .5) * 2e6;
|
||||
#version _GX_tempver;
|
|
@ -1,461 +0,0 @@
|
|||
/*************************************************************************
|
||||
GALAXY OBJECTS FILE FOR PERSISTENCE OF VISION 3.x
|
||||
**************************************************************************
|
||||
|
||||
Created by Chris Colefax, 1 February 1998
|
||||
Updated 9 August 1998: updated for POV-Ray 3.1
|
||||
|
||||
See "Galaxy.htm" for more information.
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
// CHECK VARIABLES AND ASSIGN DEFAULTS
|
||||
// ***********************************
|
||||
#declare _GX_objtempver = version; #version 3.0;
|
||||
#ifndef (galaxy_seed) #declare galaxy_seed = 0; #end
|
||||
#ifndef (galaxy_declare_only) #declare galaxy_declare_only = false; #end
|
||||
#ifndef (galaxy_distance) #declare galaxy_distance = 1e4; #end
|
||||
#ifndef (galaxy_pattern_scale) #declare galaxy_pattern_scale = 1; #end
|
||||
#ifndef (galaxy_pattern_origin) #declare galaxy_pattern_origin = <0, 0, 0>; #end
|
||||
#ifndef (galaxy_turb_origin) #declare galaxy_turb_origin = <0, 0, 0>; #end
|
||||
#ifndef (galaxy_intensity) #declare galaxy_intensity = 1; #end
|
||||
|
||||
#ifndef (galaxy_object_name) #declare galaxy_object_name = "Nebula" #end
|
||||
#ifndef (galaxy_object_scale) #declare galaxy_object_scale = 1; #end
|
||||
#ifndef (galaxy_object_flatten) #declare galaxy_object_flatten = .2; #end
|
||||
#ifndef (galaxy_object_rotate) #declare galaxy_object_rotate = 0; #end
|
||||
#ifndef (galaxy_object_position) #declare galaxy_object_position = <0, 0, 0>; #end
|
||||
|
||||
#ifndef (galaxy_cluster_name) #declare galaxy_cluster_name = "Star" #end
|
||||
#ifndef (galaxy_cluster_objects) #declare galaxy_cluster_objects = 6; #end
|
||||
#ifndef (galaxy_cluster_scale) #declare galaxy_cluster_scale = galaxy_object_scale * .5; #end
|
||||
#ifndef (galaxy_cluster_rotate) #declare galaxy_cluster_rotate = galaxy_object_rotate; #end
|
||||
#ifndef (galaxy_scale_turb) #declare galaxy_scale_turb = .5; #end
|
||||
#ifndef (galaxy_rotate_turb) #declare galaxy_rotate_turb = 0; #end
|
||||
#ifndef (galaxy_cluster_spread) #declare _GX_spread = <15, 15, 0> * galaxy_object_scale; #else #declare _GX_spread = galaxy_cluster_spread * <1, 1, 0>; #end
|
||||
|
||||
#ifdef (galaxy_colour1) #declare _GX_colour1 = galaxy_colour1 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color1) #declare _GX_colour1 = galaxy_color1 * <1, 1, 1>;
|
||||
#else #declare _GX_colour1 = <1, 1, 1>; #end #end
|
||||
#ifdef (galaxy_colour2) #declare _GX_colour2 = galaxy_colour2 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color2) #declare _GX_colour2 = galaxy_color2 * <1, 1, 1>;
|
||||
#else #declare _GX_colour2 = _GX_colour1 - .3; #end #end
|
||||
#ifdef (galaxy_colour3) #declare _GX_colour3 = galaxy_colour3 * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color3) #declare _GX_colour3 = galaxy_color3 * <1, 1, 1>;
|
||||
#else #declare _GX_colour3 = (_GX_colour1 + _GX_colour2) / 2; #end #end
|
||||
#ifdef (galaxy_star_colouration) #declare _GX_starcolouration = galaxy_star_colouration;
|
||||
#else #ifdef (galaxy_star_coloration) #declare _GX_starcolouration = galaxy_star_coloration;
|
||||
#else #declare _GX_starcolouration = .2; #end #end
|
||||
#ifdef (galaxy_colour_turb) #declare _GX_colourturb = galaxy_colour_turb * <1, 1, 1>;
|
||||
#else #ifdef (galaxy_color_turb) #declare _GX_colourturb = galaxy_color_turb * <1, 1, 1>;
|
||||
#else #declare _GX_colourturb = <.2, .2, .2>; #end #end
|
||||
|
||||
#declare _GX_finaltranslate = galaxy_turb_origin - galaxy_pattern_origin;
|
||||
#ifndef (_GX_tracelevel) #declare _GX_tracelevel = 5; #end
|
||||
#if (galaxy_object_flatten > 0) #declare _GX_flatten = <1, 1.01 - mod(galaxy_object_flatten, 1), 1>;
|
||||
#else #declare _GX_flatten = <mod(galaxy_object_flatten, 1) + 1.01, 1, 1>; #end
|
||||
|
||||
// CALCULATE STAR COLOURS
|
||||
// **********************
|
||||
#if (_GX_starcolouration = 1)
|
||||
#declare _GX_starcolour1 = _GX_colour1;
|
||||
#declare _GX_starcolour2 = _GX_colour2;
|
||||
#declare _GX_starcolour3 = _GX_colour3;
|
||||
#else
|
||||
#declare _GX_tempfloat1 = max(_GX_colour1.x, _GX_colour1.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour1.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour1.x, _GX_colour1.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour1.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour1 = _GX_tempfloat1 + (_GX_colour1 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
|
||||
#declare _GX_tempfloat1 = max(_GX_colour2.x, _GX_colour2.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour2.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour2.x, _GX_colour2.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour2.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour2 = _GX_tempfloat1 + (_GX_colour2 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
|
||||
#declare _GX_tempfloat1 = max(_GX_colour3.x, _GX_colour3.y); #declare _GX_tempfloat1 = max(_GX_tempfloat1, _GX_colour3.z);
|
||||
#declare _GX_tempfloat2 = min(_GX_colour3.x, _GX_colour3.y); #declare _GX_tempfloat2 = min(_GX_tempfloat2, _GX_colour3.z);
|
||||
#declare _GX_tempfloat1 = (_GX_tempfloat1 + _GX_tempfloat2) / 2; #declare _GX_starcolour3 = _GX_tempfloat1 + (_GX_colour3 - _GX_tempfloat1) * _GX_starcolouration;
|
||||
#end
|
||||
|
||||
// START LOOP TO CREATE SINGLE AND CLUSTER OBJECTS
|
||||
// ***********************************************
|
||||
#declare _GX_name = strupr(galaxy_object_name)
|
||||
#declare _GX_objscale = galaxy_object_scale * <1, 1, 1>;
|
||||
#declare _GX_objloop = 0; #while (_GX_objloop < 2)
|
||||
#declare _GX_objcreated = false;
|
||||
#if (strcmp(_GX_name, "-") != 0 & strlen(_GX_name) != 0)
|
||||
|
||||
// SELECT STAR OBJECTS
|
||||
// *******************
|
||||
#if (strcmp(substr(_GX_name, 1, 1), "S") = 0)
|
||||
#if (strcmp(_GX_name, "STAR") = 0 | strcmp(_GX_name, "STAR1") = 0 | strcmp(_GX_name, "S1") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {average pigment_map {
|
||||
[1 onion color_map {
|
||||
[.1 rgb _GX_starcolour1 * 8 transmit pow(.05, galaxy_intensity)] [.3 rgb _GX_starcolour3 * 2 transmit pow(.2, galaxy_intensity)]
|
||||
[.35 rgb _GX_starcolour1 * 3 transmit pow(.1, galaxy_intensity)] [.4 rgb _GX_starcolour3 * 1.5 transmit pow(.2, galaxy_intensity)]
|
||||
[.7 rgb _GX_starcolour2 transmit pow(.5, galaxy_intensity)] [.71 rgb _GX_starcolour3 * 1.5 transmit pow(.4, galaxy_intensity)]
|
||||
[.72 rgb _GX_starcolour2 transmit pow(.5, galaxy_intensity)] [1 rgb _GX_starcolour2 transmit 1]}
|
||||
scallop_wave scale 2]
|
||||
[1 onion color_map {
|
||||
[0 rgb _GX_starcolour1 * 2 transmit pow(.05, galaxy_intensity)] [.02 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <45, 1, 1>]
|
||||
[1 onion color_map {
|
||||
[0 rgb _GX_starcolour1 * 2 transmit pow(.05, galaxy_intensity)] [.02 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <1, 50, 1>]}}}
|
||||
#declare _GX_objscale = <.2, .2, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "STAR2") = 0 | strcmp(_GX_name, "S2") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {average pigment_map {
|
||||
[1 onion color_map {
|
||||
[.05 rgb _GX_starcolour1 * 8 transmit pow(.05, galaxy_intensity)] [.2 rgb _GX_starcolour3 * 3 transmit pow(.3, galaxy_intensity)]
|
||||
[1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow(.05, galaxy_intensity)] [.02 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <45, 1, 1>]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 * 4 transmit pow(.05, galaxy_intensity)] [.02 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <1, 50, 1>]}}}
|
||||
#declare _GX_objscale = <.2, .2, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "STAR3") = 0 | strcmp(_GX_name, "S3") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {average pigment_map {
|
||||
[1 onion color_map {
|
||||
[.15 rgb _GX_starcolour1 * 8 transmit pow(.05, galaxy_intensity)] [.4 rgb _GX_starcolour3 * 3 transmit pow(.1, galaxy_intensity)]
|
||||
[.49 rgb _GX_starcolour3 * 1.5 transmit pow(.3, galaxy_intensity)] [.5 rgb _GX_starcolour1 * 2 transmit pow(.1, galaxy_intensity)]
|
||||
[.51 rgb _GX_starcolour3 transmit pow(.3, galaxy_intensity)] [1 rgb _GX_starcolour2 transmit 1]}
|
||||
scallop_wave scale 2]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 * 2 transmit pow(.05, galaxy_intensity)] [.01 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <90, 1, 1>]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 * 2 transmit pow(.05, galaxy_intensity)] [.01 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <1, 100, 1>]}}}
|
||||
#declare _GX_objscale = <.2, .2, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "STAR4") = 0 | strcmp(_GX_name, "S4") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {average pigment_map {
|
||||
[1 onion color_map {
|
||||
[.05 rgb _GX_starcolour1 * 10 transmit pow(.05, galaxy_intensity)] [.2 rgb _GX_starcolour3 * 3 transmit pow(.3, galaxy_intensity)]
|
||||
[1 rgb _GX_starcolour2 transmit 1]} scallop_wave scale 2]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 transmit pow(.8, galaxy_intensity)] [.06 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <16, 1, 1>]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 transmit pow(.8, galaxy_intensity)] [.06 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <16, 1, 1> rotate z * 120]
|
||||
[1 onion color_map {[0 rgb _GX_starcolour1 transmit pow(.8, galaxy_intensity)] [.06 rgb _GX_starcolour2 transmit 1]}
|
||||
scale <16, 1, 1> rotate z * 240]}}}
|
||||
#declare _GX_objscale = <.2, .2, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
#end
|
||||
|
||||
// SELECT GALAXY OBJECTS
|
||||
// *********************
|
||||
#if (strcmp(substr(_GX_name, 1, 1), "G") = 0)
|
||||
#if (strcmp(_GX_name, "GALAXY") = 0 | strcmp(_GX_name, "GALAXY1") = 0 | strcmp(_GX_name, "G1") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]
|
||||
[.2 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]}
|
||||
scale .06 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.4 spiral1 2 pigment_map {
|
||||
[.3 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
scale .15 translate -galaxy_turb_origin warp {turbulence .06 octaves 4 lambda 3} translate galaxy_turb_origin]
|
||||
[.8 spiral1 6 pigment_map {
|
||||
[.1 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.2, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.8, galaxy_intensity)]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 rgb _GX_colour2 transmit pow(.8, galaxy_intensity)]}
|
||||
scale .13 translate -galaxy_turb_origin warp {turbulence .06 octaves 4 lambda 3} translate galaxy_turb_origin]
|
||||
[.9 spiral1 12 pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.3, galaxy_intensity)] [.8 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.6 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]}
|
||||
scale .09 translate -galaxy_turb_origin warp {turbulence .06 octaves 4 lambda 3} translate galaxy_turb_origin]
|
||||
[1 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2}}
|
||||
#declare _GX_objscale = <.25, .25, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "GALAXY2") = 0 | strcmp(_GX_name, "G2") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)]
|
||||
[.4 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.7, galaxy_intensity)]}
|
||||
scale .08 * galaxy_pattern_scale translate -galaxy_turb_origin warp {turbulence .08 octaves 4 lambda 4} translate _GX_finaltranslate]
|
||||
[.65 spiral1 2 pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.2, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.7, galaxy_intensity)]}
|
||||
scale .25 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[1 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [.6 rgb _GX_colour3 transmit pow(.9, galaxy_intensity)]}
|
||||
scale .15 * galaxy_pattern_scale translate -galaxy_pattern_origin]}
|
||||
sine_wave scale .2 translate -galaxy_turb_origin warp {turbulence -.08 octaves 4 lambda 4} translate galaxy_turb_origin]
|
||||
[.85 spiral1 2 pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)] [.8 rgb _GX_colour2 transmit pow(.8, galaxy_intensity)]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]}
|
||||
sine_wave scale .15 translate -galaxy_turb_origin warp {turbulence .05 octaves 4 lambda 4} translate galaxy_turb_origin]
|
||||
[1 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2}}
|
||||
#declare _GX_objscale = <.25, .25, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "GALAXY3") = 0 | strcmp(_GX_name, "G3") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[.03 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]
|
||||
[.25 spiral1 -2 pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.9, galaxy_intensity)] [.6 rgb _GX_colour1 transmit pow(.4, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.1 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.3, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)]} scale .3 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [1 rgb _GX_colour1 transmit pow(.8, galaxy_intensity)]} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]}
|
||||
scale .4 translate -galaxy_turb_origin warp {turbulence .04 octaves 4 lambda 3 omega .5} translate galaxy_turb_origin]
|
||||
[.5 spiral1 -2 pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.1, galaxy_intensity)] [.5 rgb _GX_colour2 transmit pow(.5, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.3 wrinkles color_map {[0 rgb _GX_colour2 transmit pow(.3, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.4, galaxy_intensity)]} scale .3 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[1 wrinkles color_map {[0 rgb _GX_colour2 transmit pow(.7, galaxy_intensity)] [1 rgb _GX_colour2 transmit 1]} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]}
|
||||
scale .8 translate -galaxy_turb_origin warp {turbulence .1 octaves 4 lambda 3 omega .4} translate galaxy_turb_origin]
|
||||
[1 rgb _GX_colour2 transmit 1]}}}
|
||||
#declare _GX_objscale = <.25, .25, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "GALAXY4") = 0 | strcmp(_GX_name, "G4") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]
|
||||
[.4 spiral1 -2 pigment_map {
|
||||
[0 wrinkles color_map {[.2 rgb _GX_colour3 transmit pow(.7, galaxy_intensity)] [1 rgb _GX_colour1 transmit pow(.2, galaxy_intensity)]} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.4 wrinkles color_map {[.4 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 wrinkles color_map {[0 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)]} scale .3 * galaxy_pattern_scale translate -galaxy_pattern_origin]}
|
||||
scale 1.2 translate -galaxy_turb_origin warp {turbulence .04 octaves 4 lambda 3} translate galaxy_turb_origin]
|
||||
[.6 spiral1 -2 pigment_map {
|
||||
[0 wrinkles color_map {[.3 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [1 rgb _GX_colour1 transmit pow(.3, galaxy_intensity)]} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.3 wrinkles color_map {[.5 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 wrinkles color_map {[0 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour2 transmit pow(.8, galaxy_intensity)]} scale .3 * galaxy_pattern_scale translate -galaxy_pattern_origin]}
|
||||
scale .8 translate -galaxy_turb_origin warp {turbulence .03 octaves 4 lambda 3} translate galaxy_turb_origin]
|
||||
[1 rgb _GX_colour2 transmit 1]}}}
|
||||
#declare _GX_objscale = <.25, .25, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "GALAXY5") = 0 | strcmp(_GX_name, "G5") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]
|
||||
[.35 granite color_map {
|
||||
[0 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)] [.8 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]}
|
||||
scale .06 * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.6 granite color_map {
|
||||
[.3 rgb _GX_colour2 transmit pow(.7, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.2, galaxy_intensity)]}
|
||||
scale .05 * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.75 granite color_map {
|
||||
[.5 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.3, galaxy_intensity)]}
|
||||
scale .04 * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[1 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2}}
|
||||
#declare _GX_objscale = <.25, .25, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
#end
|
||||
|
||||
// SELECT NEBULA OBJECTS
|
||||
// *********************
|
||||
#if (strcmp(substr(_GX_name, 1, 1), "N") = 0)
|
||||
#if (strcmp(_GX_name, "NEBULA") = 0 | strcmp(_GX_name, "NEBULA1") = 0 | strcmp(_GX_name, "N1") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[.2 granite color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]} scale 2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 granite color_map {[0 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)] [.5 rgb _GX_colour2 transmit pow(.95, galaxy_intensity)]} scale galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2.2
|
||||
translate -galaxy_turb_origin warp {turbulence .35 octaves 4 omega .4 lambda 3} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.3, .3, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "NEBULA2") = 0 | strcmp(_GX_name, "N2") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
warp {turbulence .5 octaves 2} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [.5 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]}
|
||||
warp {turbulence .5 octaves 2} scale .18 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgbt _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2.2
|
||||
translate -galaxy_turb_origin warp {turbulence .2 octaves 2 lambda 3 omega .6} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.3, .3, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "NEBULA3") = 0 | strcmp(_GX_name, "N3") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[0 granite color_map {[.05 rgb _GX_colour3 transmit 1] [.3 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]}
|
||||
scale .7 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 wrinkles color_map {[0 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)]}
|
||||
scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgbt _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2.2
|
||||
translate -galaxy_turb_origin warp {turbulence .25 octaves 4 lambda 3 omega .4} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.3, .3, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "NEBULA4") = 0 | strcmp(_GX_name, "N4") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[.2 wrinkles color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.9, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.5 granite color_map {[0 rgb _GX_colour1 transmit pow(.3, galaxy_intensity)] [.6 rgb _GX_colour3 transmit pow(.95, galaxy_intensity)]} scale .4 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 granite color_map {[0 rgb _GX_colour3 transmit pow(.6, galaxy_intensity)] [.3 rgb _GX_colour2 transmit 1]} scale .3 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2.2
|
||||
translate -galaxy_turb_origin warp {turbulence .25 octaves 4 omega .4 lambda 3} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.3, .3, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "NEBULA5") = 0 | strcmp(_GX_name, "N5") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[.5 wrinkles color_map {[.1 rgb _GX_colour2 transmit 1] [.4 rgb _GX_colour3 transmit pow(.5, galaxy_intensity)] [.8 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.8 wrinkles color_map {[.5 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]} scale .1 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2.3
|
||||
translate -galaxy_turb_origin warp {turbulence .3 octaves 4 omega .3 lambda 5} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.2, .2, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "NEBULA6") = 0 | strcmp(_GX_name, "N6") = 0)
|
||||
#declare _GX_object = disc {0, z, .999 pigment {onion pigment_map {
|
||||
[.4 wrinkles color_map {[0 rgb _GX_colour2 transmit pow(.7, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]} scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.5 wrinkles pigment_map {
|
||||
[0 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.8, galaxy_intensity)]} scale .5]
|
||||
[1 wrinkles color_map {[0 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.95, galaxy_intensity)]} scale .5]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.7 wrinkles pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour1 transmit pow(.2, galaxy_intensity)] [1 rgb _GX_colour1 transmit pow(.6, galaxy_intensity)]}]
|
||||
[1 granite color_map {[0 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.95, galaxy_intensity)]}]}
|
||||
scale .2 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.85 granite color_map {[0 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [.4 rgb _GX_colour3 transmit 1]} scale .4 * galaxy_pattern_scale translate -galaxy_pattern_origin]
|
||||
[.9 rgb _GX_colour1 transmit 1]}
|
||||
scallop_wave scale 2.5
|
||||
translate -galaxy_turb_origin warp {turbulence .04 octaves 4 omega .8 lambda 3} translate galaxy_turb_origin}}
|
||||
#declare _GX_objscale = <.15, .15, 1> * _GX_objscale; #declare _GX_objcreated = true; #end
|
||||
#end
|
||||
|
||||
// SELECT COMET OBJECTS
|
||||
// ********************
|
||||
#if (strcmp(substr(_GX_name, 1, 1), "C") = 0)
|
||||
#if (strcmp(_GX_name, "COMET") = 0 | strcmp(_GX_name, "COMET1") = 0 | strcmp(_GX_name, "C1") = 0)
|
||||
#declare _GX_object = disc {<.5, 0, 0>, z, .499 pigment {onion pigment_map {
|
||||
[.03 onion color_map {[.03 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)] [.05 rgb _GX_colour3 transmit 1]} translate <.05, 0, 0>]
|
||||
[.06 radial color_map {[.1 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)] [.25 rgb _GX_colour2 transmit 1]} triangle_wave]
|
||||
[.4 radial pigment_map {
|
||||
[.05 wrinkles color_map {[0 rgb _GX_colour2 transmit 1] [1 rgb _GX_colour3 transmit pow(.1, galaxy_intensity)]}
|
||||
scale galaxy_pattern_scale translate -galaxy_turb_origin warp {turbulence 2 octaves 3 lambda 2} translate _GX_finaltranslate]
|
||||
[.25 rgb _GX_colour2 transmit 1]} triangle_wave]
|
||||
[.8 rgb _GX_colour2 transmit 1]} rotate x * 90}
|
||||
scale <1.05, .35, 1> translate <-.05, 0, 0>}
|
||||
#declare _GX_objscale = <.5, .5, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "COMET2") = 0 | strcmp(_GX_name, "C2") = 0)
|
||||
#declare _GX_object = disc {<.5, 0, 0>, z, .499 pigment {onion pigment_map {
|
||||
[.03 onion color_map {[.03 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)] [.05 rgb _GX_colour3 transmit 1]} translate <.05, 0, 0>]
|
||||
[.06 radial color_map {[.1 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)] [.25 rgb _GX_colour2 transmit 1]} triangle_wave]
|
||||
[.2 radial pigment_map {
|
||||
[.1 granite color_map {[0 rgb _GX_colour3 transmit pow(.2, galaxy_intensity)] [1 rgb _GX_colour2 transmit 1]} scale galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.2 rgb _GX_colour2 transmit 1]} translate -galaxy_turb_origin warp {turbulence .03 lambda 3 octaves 3 omega .9} translate galaxy_turb_origin
|
||||
triangle_wave]
|
||||
[.6 radial pigment_map {
|
||||
[.1 granite color_map {[0 rgb _GX_colour3 transmit pow(.8, galaxy_intensity)] [.6 rgb _GX_colour2 transmit 1]} scale .4 * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.2 rgb _GX_colour2 transmit 1]} translate -galaxy_turb_origin warp {turbulence .1 lambda 3 octaves 3 omega .9} translate galaxy_turb_origin
|
||||
triangle_wave]
|
||||
[.8 rgb _GX_colour2 transmit 1]} rotate x * 90}
|
||||
scale <1.05, .4, 1> translate <-.05, 0, 0>}
|
||||
#declare _GX_objscale = <.5, .5, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "COMET3") = 0 | strcmp(_GX_name, "C3") = 0)
|
||||
#declare _GX_object = disc {<.5, 0, 0>, z, .499 pigment {average pigment_map {
|
||||
[1 onion color_map {[.006 rgb _GX_colour1 * 3 transmit pow(.05, galaxy_intensity)] [.02 rgb _GX_colour3 transmit 1]}
|
||||
scale <1.5, 1, 1> rotate z * 30 translate <.05, 0, 0>]
|
||||
[1 onion pigment_map {
|
||||
[.05 rgb _GX_colour3 transmit 1]
|
||||
[.1 spiral1 1 color_map {[.03 rgb _GX_colour1 * 3 transmit pow(.05, galaxy_intensity)] [.07 rgb _GX_colour3 transmit 1]} scale 4]
|
||||
[.3 spiral1 1 color_map {[.03 rgb _GX_colour3 * 2 transmit pow(.1, galaxy_intensity)] [.07 rgb _GX_colour2 transmit 1]} scale 4]
|
||||
[.6 spiral1 1 pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour3 * 2 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.4, galaxy_intensity)]}
|
||||
scale <.2, .03, .03> * galaxy_pattern_scale rotate z * 50 translate _GX_finaltranslate]
|
||||
[.08 rgb _GX_colour2 transmit 1]} scale 4]
|
||||
[.85 spiral1 1 pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour2 transmit pow(.4, galaxy_intensity)] [1 rgb _GX_colour2 transmit pow(.7, galaxy_intensity)]}
|
||||
scale <.2, .03, .03> * galaxy_pattern_scale rotate z * 35 translate _GX_finaltranslate]
|
||||
[.1 rgb _GX_colour2 transmit 1]} scale 4]
|
||||
[.98 rgb _GX_colour2 transmit 1]}
|
||||
scallop_wave scale 2 rotate z * 125 translate <.02, -.02, 0>]}
|
||||
scale <1, 2, 1>}
|
||||
scale <1.05, .6, 1> translate <-.05, 0, 0>}
|
||||
#declare _GX_objscale = <.5, .5, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
#end
|
||||
|
||||
// SELECT METEOR OBJECTS
|
||||
// *********************
|
||||
#if (strcmp(substr(_GX_name, 1, 1), "M") = 0)
|
||||
#if (strcmp(_GX_name, "METEOR") = 0 | strcmp(_GX_name, "METEOR1") = 0 | strcmp(_GX_name, "M1") = 0)
|
||||
#declare _GX_object = disc {<.5, 0, 0>, z, .499 pigment {gradient x pigment_map {
|
||||
[.1 onion color_map {[.03 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [.05 rgb _GX_colour3 transmit 1]} translate <.1, 0, 0>]
|
||||
[.12 onion color_map {[.02 rgb _GX_colour1 transmit pow(.2, galaxy_intensity)] [.05 rgb _GX_colour3 transmit 1]}
|
||||
scale <18, 1, 1> translate <.1, 0, 0>]
|
||||
[.5 onion pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour3 transmit pow(.3, galaxy_intensity)] [1 rgb _GX_colour2 transmit 1]} scale .2 * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.05 rgb _GX_colour2 transmit 1]}
|
||||
scale <18, 1, 1> translate <.1, 0, 0> translate -galaxy_turb_origin warp {turbulence .02 octaves 3 lambda 4} translate galaxy_turb_origin]}
|
||||
scale <1, 5, 1>}
|
||||
scale <1.1, .1, 1> translate <-.1, 0, 0>}
|
||||
#declare _GX_objscale = <.5, .5, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
|
||||
#if (strcmp(_GX_name, "METEOR2") = 0 | strcmp(_GX_name, "M2") = 0)
|
||||
#declare _GX_object = disc {<.5, 0, 0>, z, .499 pigment {gradient x pigment_map {
|
||||
[.1 onion pigment_map {
|
||||
[.03 granite color_map {[0 rgb _GX_colour1 transmit pow(.05, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]} scale <.3, .15, .1> * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.05 rgb _GX_colour2 transmit 1]}
|
||||
translate <.1, 0, 0>]
|
||||
[.12 onion pigment_map {
|
||||
[.02 granite color_map {[0 rgb _GX_colour1 transmit pow(.1, galaxy_intensity)] [1 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)]} scale <.02, .15, .1> * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.04 granite color_map {[0 rgb _GX_colour3 transmit pow(.2, galaxy_intensity)] [.7 rgb _GX_colour2 transmit 1]} scale <.015, .1, .1> * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.05 rgb _GX_colour2 transmit 1]}
|
||||
scale <18, 1, 1> translate <.1, 0, 0>
|
||||
translate -galaxy_turb_origin warp {turbulence .02 octaves 4 omega .6 lambda 4} translate galaxy_turb_origin]
|
||||
[.5 onion pigment_map {
|
||||
[0 granite color_map {[0 rgb _GX_colour3 transmit pow(.4, galaxy_intensity)] [.7 rgb _GX_colour2 transmit pow(.9, galaxy_intensity)]} scale <.015, .1, .1> * galaxy_pattern_scale translate _GX_finaltranslate]
|
||||
[.05 rgb _GX_colour2 transmit 1]}
|
||||
scale <18, 1, 1> translate <.1, 0, 0> translate -galaxy_turb_origin warp {turbulence .04 octaves 4 omega .4 lambda 4} translate galaxy_turb_origin]}
|
||||
scale <1, 5, 1>}
|
||||
scale <1.1, .2, 1> translate <-.1, 0, 0>}
|
||||
#declare _GX_objscale = <.5, .5, 1> * _GX_objscale * _GX_flatten; #declare _GX_objcreated = true; #end
|
||||
#end
|
||||
|
||||
// POSITION SINGLE OBJECT
|
||||
// **********************
|
||||
#switch (_GX_objloop)
|
||||
#case (0) #if (_GX_objcreated = false)
|
||||
#warning "You specified an incorrect galaxy_object_name!\r\n"
|
||||
#else
|
||||
#declare galaxy_object = object {_GX_object
|
||||
finish {ambient 1 diffuse 0 reflection 0 phong 0 specular 0 crand 0}
|
||||
scale _GX_objscale rotate z * galaxy_object_rotate
|
||||
no_shadow hollow}
|
||||
|
||||
#if (galaxy_declare_only = false) object {galaxy_object
|
||||
translate z rotate <-1, 1, 0> * galaxy_object_position
|
||||
scale galaxy_distance
|
||||
#ifdef (galaxy_rotate) rotate galaxy_rotate #end
|
||||
#ifdef (galaxy_origin) translate -galaxy_origin #end }
|
||||
#declare galaxy_distance = galaxy_distance * (sqrt(1 + pow(max(_GX_objscale.x, _GX_objscale.y), 2)) + .001);
|
||||
#declare _GX_tracelevel = _GX_tracelevel + 1;
|
||||
global_settings {max_trace_level min(_GX_tracelevel, 30)}
|
||||
#end
|
||||
#end #break
|
||||
|
||||
// POSITION CLUSTER OBJECTS
|
||||
// ************************
|
||||
#case (1) #if (_GX_objcreated = false)
|
||||
#warning "You specified an incorrect galaxy_cluster_name!\r\n"
|
||||
#else
|
||||
#declare galaxy_cluster_object = object {_GX_object
|
||||
finish {ambient 1 diffuse 0 reflection 0 phong 0 specular 0 crand 0}
|
||||
scale _GX_objscale rotate z * galaxy_cluster_rotate
|
||||
no_shadow hollow}
|
||||
|
||||
#if (galaxy_declare_only = false & galaxy_cluster_objects >= 1)
|
||||
#declare _GX_objrand = seed(galaxy_seed);
|
||||
union { #declare _GX_objcount = 0; #while (_GX_objcount < galaxy_cluster_objects)
|
||||
object {galaxy_cluster_object
|
||||
finish {ambient 1 + ((<rand(_GX_objrand), rand(_GX_objrand), rand(_GX_objrand)> - .5) * _GX_colourturb)}
|
||||
#declare _GX_clusterscale = 1 + ((rand(_GX_objrand) - .5) * galaxy_scale_turb * 2);
|
||||
scale _GX_clusterscale
|
||||
rotate z * (rand(_GX_objrand) - .5) * galaxy_rotate_turb
|
||||
translate z
|
||||
rotate (<rand(_GX_objrand), rand(_GX_objrand), .5> - .5) * _GX_spread + <-1, 1, 0> * galaxy_object_position
|
||||
scale galaxy_distance}
|
||||
#declare _GX_objscale2 = _GX_clusterscale * _GX_objscale;
|
||||
#declare galaxy_distance = galaxy_distance * (sqrt(1 + pow(max(_GX_objscale2.x, _GX_objscale2.y), 2)) + .001);
|
||||
#declare _GX_tracelevel = _GX_tracelevel + 1;
|
||||
#declare _GX_objcount = _GX_objcount + 1; #end
|
||||
#ifdef (galaxy_rotate) rotate galaxy_rotate #end
|
||||
#ifdef (galaxy_origin) translate -galaxy_origin #end }
|
||||
global_settings {max_trace_level min(_GX_tracelevel, 30)}
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
|
||||
// LOOP THROUGH FILE TO SELECT CLUSTER OBJECT
|
||||
// ******************************************
|
||||
#end
|
||||
#declare _GX_name = strupr(galaxy_cluster_name)
|
||||
#declare _GX_objscale = galaxy_cluster_scale * <1, 1, 1>;
|
||||
#declare _GX_objloop = _GX_objloop + 1; #end
|
||||
#version _GX_objtempver;
|
|
@ -1,75 +0,0 @@
|
|||
/*************************************************************************
|
||||
GALAXY STARFIELD FILE FOR PERSISTENCE OF VISION 3.x
|
||||
**************************************************************************
|
||||
|
||||
Created by Chris Colefax, 1 February 1998
|
||||
Updated 9 August 1998: updated for POV-Ray 3.1
|
||||
|
||||
See "Galaxy.htm" for more information.
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
// CHECK VARIABLES AND ASSIGN DEFAULTS
|
||||
// ***********************************
|
||||
#declare _SF_tempver = version; #version 3.0;
|
||||
#ifndef (galaxy_seed) #declare galaxy_seed = 0; #end
|
||||
#ifndef (star_count) #declare star_count = 1000; #end
|
||||
#ifndef (star_type) #declare star_type = 1; #end
|
||||
#ifndef (star_scale) #declare star_scale = 1; #end
|
||||
#ifndef (star_spread) #declare star_spread = 1; #end
|
||||
#ifndef (star_distribution) #declare star_distribution = 1; #end
|
||||
#ifndef (star_brightness_turb) #declare star_brightness_turb = .5; #end
|
||||
#ifndef (star_distance) #ifdef (galaxy_distance) #declare star_distance = galaxy_distance * 2;
|
||||
#else #declare star_distance = 2e4; #end #end
|
||||
|
||||
#ifdef (star_colour) #declare _SF_colour = star_colour * <1, 1, 1>;
|
||||
#else #ifdef (star_color) #declare _SF_colour = star_color * <1, 1, 1>;
|
||||
#else #declare _SF_colour = <.9, .9, .9>; #end #end
|
||||
#ifdef (star_colour_turb) #declare _SF_colourturb = star_colour_turb * <1, 1, 1>;
|
||||
#else #ifdef (star_color_turb) #declare _SF_colourturb = star_color_turb * <1, 1, 1>;
|
||||
#else #ifdef (_GX_colourturb) #declare _SF_colourturb = _GX_colourturb;
|
||||
#else #declare _SF_colourturb = <.2, .2, .2>; #end #end #end
|
||||
|
||||
// SELECT STAR PIGMENT
|
||||
// *******************
|
||||
#switch (star_type)
|
||||
#case (2) #declare _SF_starpigment = pigment {onion color_map {
|
||||
[.3 rgb 1] [.8 rgbt 1] [.9 rgbt <1, 1, 1, .7>] [1 rgbt 1]}
|
||||
scallop_wave scale 2}
|
||||
#declare _SF_starobjscale = .015; #break
|
||||
#case (3) #declare _SF_starpigment = pigment {onion pigment_map {
|
||||
[.1 rgb 1]
|
||||
[.4 average pigment_map {
|
||||
[1 onion color_map {[.04 rgb 3] [.1 rgbt 1]} scale <10, 1, 1>]
|
||||
[1 onion color_map {[.04 rgb 3] [.1 rgbt 1]} scale <10, 1, 1> rotate z * 120]
|
||||
[1 onion color_map {[.04 rgb 3] [.1 rgbt 1]} scale <10, 1, 1> rotate z * 240]}
|
||||
scale .5]}
|
||||
scallop_wave scale 2}
|
||||
#declare _SF_starobjscale = .025; #break
|
||||
#else #declare _SF_starpigment = pigment {onion color_map {
|
||||
[.3 rgb <1, 1, 1>] [1 rgbt <1, 1, 1, 1>]}}
|
||||
#declare _SF_starobjscale = .01; #end
|
||||
|
||||
#declare _SF_starobject = triangle {<-1, -.6, 0>, <0, 1, 0>, <1, -.6, 0>
|
||||
pigment {onion pigment_map {[.25 _SF_starpigment scale .25] [.25 rgbt <1, 1, 1, 1>]} scale 2}
|
||||
finish {ambient 1 diffuse 0 reflection 0 phong 0 specular 0 crand 0}
|
||||
scale star_scale * _SF_starobjscale}
|
||||
|
||||
// CREATE STAR FIELD
|
||||
// *****************
|
||||
#declare _SF_rand = seed(galaxy_seed);
|
||||
#declare _SF_stars = union { #declare _SF_count = 0; #while (_SF_count < 50)
|
||||
object {_SF_starobject
|
||||
finish {ambient _SF_colour * (1 + (rand(_SF_rand) - .5) * star_brightness_turb * 2) * (1 + <rand(_SF_rand), rand(_SF_rand), rand(_SF_rand)> * _SF_colourturb)}
|
||||
translate z * (1 + pow(rand(_SF_rand), star_distribution) * star_spread)
|
||||
rotate <rand(_SF_rand), rand(_SF_rand), 0> * 360}
|
||||
#declare _SF_count = _SF_count + 1; #end }
|
||||
|
||||
union { #declare _SF_count = 0; #while (_SF_count < star_count / 50)
|
||||
object {_SF_stars rotate <rand(_SF_rand), rand(_SF_rand), 0> * 360}
|
||||
#declare _SF_count = _SF_count + 1; #end
|
||||
no_shadow hollow scale star_distance
|
||||
#ifdef (galaxy_rotate) rotate galaxy_rotate #end
|
||||
#ifdef (galaxy_origin) translate -galaxy_origin #end }
|
||||
|
||||
#version _SF_tempver;
|
|
@ -1,865 +0,0 @@
|
|||
<HTML><HEAD><TITLE>Galaxy Include File</TITLE></HEAD>
|
||||
|
||||
<FONT FACE="Arial, Helvetica, Switzerland"><BODY BGCOLOR=#FFFFFF>
|
||||
|
||||
<TABLE WIDTH=100% BORDER=0 CELLPADDING=10><TR><TD BGCOLOR=#C0C0C0 ALIGN=CENTER>
|
||||
<FONT SIZE=+2><B>GALAXY INCLUDE FILE </B></FONT><FONT SIZE=+1><I>for Persistence of Vision 3.x</I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
|
||||
<I>
|
||||
<P>Created by Chris Colefax, 1 February 1998
|
||||
<BR>Updated 9 August 1998: updated for POV-Ray 3.1
|
||||
</I>
|
||||
|
||||
<P><HR>
|
||||
|
||||
<P><B><I><A HREF="#Installation">INSTALLATION</A></B></I>
|
||||
<P><B><I><A HREF="#Quick Start">QUICK START</A></B></I>
|
||||
<P><B><I><A HREF="#Galaxy Files">UNDERSTANDING THE DIFFERENT GALAXY.* FILES</A></B></I>
|
||||
<P><B><I><A HREF="#Options">GALAXY OPTIONS</A></B></I>
|
||||
<UL><I><A HREF="#INC Options">GALAXY INCLUDE FILE OPTIONS</A></I>
|
||||
<UL><A HREF="#galaxy_seed">galaxy_seed</A>
|
||||
<BR><A HREF="#galaxy_colour">galaxy_colour</A>
|
||||
<BR><A HREF="#galaxy_colouration">galaxy_colouration</A>
|
||||
<BR><A HREF="#galaxy_colour_turb">galaxy_colour_turb</A>
|
||||
<BR><A HREF="#galaxy_intensity">galaxy_intensity</A>
|
||||
<BR><A HREF="#galaxy_rotate">galaxy_rotate</A>
|
||||
<BR><A HREF="#galaxy_distance">galaxy_distance</A>
|
||||
<BR><A HREF="#galaxy_origin">galaxy_origin</A>
|
||||
<BR><A HREF="#galaxy_bg">galaxy_bg</A>
|
||||
<BR><A HREF="#galaxy_objects">galaxy_objects</A>
|
||||
<BR><A HREF="#galaxy_starfield">galaxy_starfield</A>
|
||||
<BR><A HREF="#options_only">options_only</A>
|
||||
<BR><A HREF="#debug_options">debug_options</A>
|
||||
</UL>
|
||||
|
||||
<BR><I><A HREF="#BG Options">GALAXY BACKGROUNDS FILE OPTIONS</A></I>
|
||||
<UL><A HREF="#galaxy_bgstars">galaxy_bgstars</A>
|
||||
<BR><A HREF="#galaxy_bgnebula">galaxy_bgnebula</A>
|
||||
<BR><A HREF="#galaxy_nebula_sphere">galaxy_nebula_sphere</A>
|
||||
<BR><A HREF="#galaxy_nebula_ambient">galaxy_nebula_ambient</A>
|
||||
<BR><A HREF="#galaxy_colour options">galaxy_colour1, galaxy_colour2, galaxy_colour3</A>
|
||||
<BR><A HREF="#galaxy_star_colouration">galaxy_star_colouration</A>
|
||||
<BR><A HREF="#galaxy_pattern_scale">galaxy_pattern_scale</A>
|
||||
<BR><A HREF="#galaxy_pattern_origin">galaxy_pattern_origin</A>
|
||||
<BR><A HREF="#galaxy_turb_origin">galaxy_turb_origin</A>
|
||||
<BR><A HREF="#galaxy_declare_only">galaxy_declare_only</A>
|
||||
</UL>
|
||||
|
||||
<BR><I><A HREF="#SF Options">GALAXY STARFIELD FILE OPTIONS</A></I>
|
||||
<UL><A HREF="#star_count">star_count</A>
|
||||
<BR><A HREF="#star_colour">star_colour</A>
|
||||
<BR><A HREF="#star_type">star_type</A>
|
||||
<BR><A HREF="#star_scale">star_scale</A>
|
||||
<BR><A HREF="#star_distance">star_distance</A>
|
||||
<BR><A HREF="#star_spread">star_spread</A>
|
||||
<BR><A HREF="#star_distribution">star_distribution</A>
|
||||
<BR><A HREF="#star_colour_turb">star_colour_turb</A>
|
||||
<BR><A HREF="#star_brightness_turb">star_brightness_turb</A>
|
||||
</UL>
|
||||
|
||||
<BR><I><A HREF="#OBJ Options">GALAXY OBJECTS FILE OPTIONS</A></I>
|
||||
<UL><A HREF="#galaxy_object_name">galaxy_object_name</A>
|
||||
<BR><A HREF="#galaxy_object_scale">galaxy_object_scale</A>
|
||||
<BR><A HREF="#galaxy_object_rotate">galaxy_object_rotate</A>
|
||||
<BR><A HREF="#galaxy_object_flatten">galaxy_object_flatten</A>
|
||||
<BR><A HREF="#galaxy_object_position">galaxy_object_position</A>
|
||||
<BR><A HREF="#galaxy_cluster_name">galaxy_cluster_name</A>
|
||||
<BR><A HREF="#galaxy_cluster_objects">galaxy_cluster_objects</A>
|
||||
<BR><A HREF="#galaxy_cluster_scale">galaxy_cluster_scale</A>
|
||||
<BR><A HREF="#galaxy_cluster_rotate">galaxy_cluster_rotate</A>
|
||||
<BR><A HREF="#galaxy_cluster_spread">galaxy_cluster_spread</A>
|
||||
<BR><A HREF="#galaxy_scale_turb">galaxy_scale_turb</A>
|
||||
<BR><A HREF="#galaxy_rotate_turb">galaxy_rotate_turb</A>
|
||||
<BR><A HREF="#galaxy_declare_only">galaxy_declare_only</A>
|
||||
</UL>
|
||||
</UL>
|
||||
<P><B><I><A HREF="#Troubleshooting">TROUBLESHOOTING</A></B></I>
|
||||
<P><B><I><A HREF="#Legal">COPYRIGHT AND LEGAL INFORMATION</A></B></I>
|
||||
<P><B><I><A HREF="#Contact">CONTACTING THE AUTHOR</A></B></I>
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Installation"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>INSTALLATION</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
The Galaxy Include File package consists of four files (<I>Galaxy.inc,
|
||||
Galaxy.bg, Galaxy.obj</I> and <I>Galaxy.sf</I>) which work separately and together,
|
||||
depending on the desired effect. All four files should be copied to
|
||||
one of the directories (folders) in your POV-Ray library path. Normally
|
||||
this is the <I>INCLUDE</I> sub-directory of the directory where you installed
|
||||
POV-Ray, so if you installed POV-Ray in <I>C:\POVRAY</I> you should copy the files
|
||||
to <I>C:\POVRAY\INCLUDE</I>. On a Windows 95 system, this is probably something
|
||||
like:
|
||||
|
||||
<P><I>C:\Program Files\POV-Ray for Windows\Include</I>
|
||||
|
||||
<P>On UNIX and similar systems, where filenames are case-sensitive, you may
|
||||
have to rename the four include files so that the filenames are all uppercase.
|
||||
This will enable you to render the sample files without modification.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Quick Start"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>QUICK START</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
The Galaxy Include File package allows you to create a variety of outer-
|
||||
space scenes which can be used on their own or as backgrounds to other
|
||||
scenes and animations. In addition to spiral galaxies, the Galaxy Include
|
||||
File package can also create starfields, star clusters, nebulae, comets,
|
||||
and meteor showers. You can easily create a galaxy scene containing a
|
||||
selection of these elements by adding the following lines to a POV-Ray
|
||||
scene file:
|
||||
|
||||
<P><CODE>#declare galaxy_seed = 123456789;
|
||||
<BR>#include "GALAXY.INC"</CODE>
|
||||
|
||||
<P>You can choose any positive or negative integer you like for the
|
||||
<A HREF="#galaxy_seed">galaxy_seed</A> value. When you render this scene, the Galaxy Include File
|
||||
will select random options, and then use <I>Galaxy.bg, Galaxy.obj,</I> and
|
||||
<I>Galaxy.sf</I> to create the galaxy scene. In addition to changing the seed
|
||||
number, you can use a variety of options to modify the galaxy scene.
|
||||
To use any of these options just add the following line to your scene file,
|
||||
<I>before</I> including <I>Galaxy.inc</I>:
|
||||
|
||||
<P><CODE>#declare </CODE><I>[variable-name]</I><CODE> = </CODE><I>[value]</I>
|
||||
|
||||
<P>substituting the desired variable name and value where appropriate.
|
||||
Note that <I>Galaxy.inc</I> (or any of the <I>Galaxy.*</I> files) should <B>never</B> be
|
||||
included at the start of a scene (like <I>colors.inc</I> or <I>textures.inc</I>).
|
||||
They should only be included after declaring the desired galaxy options.
|
||||
|
||||
<P>As well as creating random galaxy scenes using <I>Galaxy.inc</I>, you can use
|
||||
<I>Galaxy.bg, Galaxy.obj</I>, and/or <I>Galaxy.sf</I> separately to build custom galaxy
|
||||
scenes piece by piece. You can include any of the four <I>Galaxy.*</I> files as
|
||||
many times as you want in a single POV-Ray scene, declaring separate options
|
||||
for each <I>Galaxy.*</I> inclusion. Note that you don't have to redeclare any
|
||||
options that are common to any or all of the <I>Galaxy.*</I> files, eg:
|
||||
|
||||
<P><CODE>// COMMON GALAXY OPTIONS
|
||||
<BR>#declare galaxy_colour1 = < 1.3, 1.2, .8> ;
|
||||
<BR>#declare galaxy_colour2 = < 1, .5, .3 > ;
|
||||
<BR>#declare galaxy_rotate = < 90, 180, 0> ;
|
||||
|
||||
<P>// GALAXY BACKGROUND
|
||||
<BR>#declare galaxy_bgstars = 4;
|
||||
<BR>#declare galaxy_bgnebula = off;
|
||||
<BR>#declare galaxy_nebula_sphere = 5;
|
||||
<BR>#include "GALAXY.BG"
|
||||
|
||||
<P>// GALAXY OBJECTS
|
||||
<BR>#declare galaxy_object_name = "Nebula3"
|
||||
<BR>#declare galaxy_cluster_name = "Star4"
|
||||
<BR>#include "GALAXY.OBJ"
|
||||
|
||||
<BR>#declare galaxy_object_name = "Comet2"
|
||||
<BR>#declare galaxy_cluster_name = ""
|
||||
<BR>#include "GALAXY.OBJ"</CODE>
|
||||
|
||||
<P>In the above example the same colours and rotation are applied to each
|
||||
element of the galaxy scene, without having to redeclare them each time
|
||||
you include one of the <I>Galaxy.*</I> files.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Galaxy Files"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>UNDERSTANDING THE DIFFERENT GALAXY.* FILES</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
As mentioned above, the four different files of the Galaxy Include File
|
||||
package can be used in a variety of ways, depending on how you wish to
|
||||
create your galaxy scene. The files are:
|
||||
|
||||
<P>The Galaxy Backgrounds File (<I>GALAXY.BG</I>): this include file is used to
|
||||
create a selection of starfield and nebula pigments (including a Milky Way
|
||||
pigment), which can either be mapped directly to the sky_sphere, or to an
|
||||
actual sphere object. Although <I>Galaxy.bg</I> allows you to create backgrounds
|
||||
quite easily, the file gives you little control over the exact shape of the
|
||||
nebulae, and the starfields are not suitable for anti-aliasing or
|
||||
animations in which the camera is moved or altered in some way.
|
||||
|
||||
<P>The Galaxy Starfield File (<I>GALAXY.SF</I>): this include file is used to create
|
||||
starfields consisting of actual objects, rather than textures. Because of
|
||||
this, the starfields can be anti-aliased and animated very well, and
|
||||
improved programming means that the parsing takes about one fifth of the
|
||||
time needed for previous versions of the Starfield Include File. <I>Galaxy.sf</I>
|
||||
can create three different types of stars, and can be used in conjunction
|
||||
with <I>Galaxy.bg</I> to create stars larger than one pixel in size.
|
||||
|
||||
<P>The Galaxy Objects File (<I>GALAXY.OBJ</I>): this include file is used to create
|
||||
and position a selection of outer-space objects, including four different
|
||||
feature stars, six different nebulae, five different galaxies, three
|
||||
different comets, and two different meteors. The objects can be positioned
|
||||
individually, or in random clusters (eg. star clusters or meteor showers).
|
||||
|
||||
<P>The Galaxy Include File (<I>GALAXY.INC</I>): this include file uses the above three
|
||||
files to create random galaxy scenes. <I>Galaxy.inc</I> selects random options for
|
||||
the other files, including colours, object types, scaling, rotation, etc.,
|
||||
and can automatically include the other files into your POV-Ray scene, making
|
||||
it quick and easy to use the Galaxy Include File package without having to
|
||||
declare separate options for each of the <I>Galaxy.*</I> files.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Options"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>GALAXY OPTIONS</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
This section explains the various options that can be used with <I>Galaxy.inc</I>,
|
||||
as well as the options that can be used separately with <I>Galaxy.bg,
|
||||
Galaxy.obj</I>, and <I>Galaxy.sf</I>.
|
||||
|
||||
<P>Note that the Galaxy Include File package supports both British and
|
||||
American English, eg: <I>galaxy_colour</I> and <I>galaxy_color</I> are interchangeable,
|
||||
as are <I>galaxy_colouration</I> and <I>galaxy_coloration</I>, etc.
|
||||
|
||||
|
||||
<P><HR><A NAME="INC Options"></A>
|
||||
<B>GALAXY INCLUDE FILE OPTIONS</B>
|
||||
<HR>
|
||||
The options in this section apply to <I>Galaxy.inc</I>.
|
||||
|
||||
<P><A NAME="galaxy_seed"></A>
|
||||
<B>galaxy_seed</B>
|
||||
<HR>
|
||||
This is the random number seed used for all random aspects of the Galaxy
|
||||
Include File package. Changing this number can result in vastly different
|
||||
galaxy scenes, and any positive or negative integer accepted by POV-Ray can
|
||||
be used. The default <I>galaxy_seed</I> value is 0. Each time you include
|
||||
<I>Galaxy.inc</I>, a new <I>galaxy_seed</I> value is chosen at random. To find out the
|
||||
new value, see <A HREF="#debug_options">debug_options</A>.
|
||||
|
||||
<P><A NAME="galaxy_colour"></A>
|
||||
<B>galaxy_colour</B>
|
||||
<HR>
|
||||
Use this option to change the overall colour of the galaxy scene. The
|
||||
exact result of changing this option depends on the current colour of
|
||||
the galaxy scene, eg. if the current galaxy scene is predominantly green,
|
||||
setting <I>galaxy_colour</I> to < 1.5, 0.1, 1> will increase the amount of red
|
||||
in the scene, decrease the amount of green, and leave the blue unaltered,
|
||||
resulting in a purple coloured galaxy.
|
||||
<BR>The default <I>galaxy_colour</I> value is < 1, 1, 1> (which has no effect).
|
||||
|
||||
<P><A NAME="galaxy_colouration"></A>
|
||||
<B>galaxy_colouration</B>
|
||||
<HR>
|
||||
Use this option to increase of decrease the amount of colour in the galaxy
|
||||
scene. Good values range from 0 (little or no colour) to 1 or larger (very
|
||||
saturated colour). Setting this option to a low value means that the
|
||||
<A HREF="#galaxy_colour">galaxy_colour</A> option has more of an effect.
|
||||
<BR>The default <I>galaxy_colouration</I> value is 0.5
|
||||
|
||||
<P><A NAME="galaxy_colour_turb"></A>
|
||||
<B>galaxy_colour_turb</B>
|
||||
<HR>
|
||||
Use this option to alter the amount of colour variation between different
|
||||
elements of the galaxy scene. Setting this option to 0 results in a
|
||||
monochromatic galaxy scene, while larger values give greater colour
|
||||
variation. The default <I>galaxy_colour_turb</I> value is 0.2
|
||||
|
||||
<P><A NAME="galaxy_intensity"></A>
|
||||
<B>galaxy_intensity</B>
|
||||
<HR>
|
||||
Use this option to increase or decrease the overall visibility of the
|
||||
galaxy scene. Good values usually lie somewhere between 0 (completely
|
||||
transparent) and 5 (very opaque).
|
||||
<BR>The default <I>galaxy_intensity</I> value is 1
|
||||
|
||||
<P><A NAME="galaxy_rotate"></A>
|
||||
<B>galaxy_rotate</B>
|
||||
<HR>
|
||||
This option is a vector that is used to rotate the galaxy scene as a whole.
|
||||
It can be useful when you want to create the illusion of movement in an
|
||||
animation, without having to transform the camera and all the other objects
|
||||
in a scene. The default <I>galaxy_rotate</I> value is < 0, 0, 0>
|
||||
|
||||
<P><A NAME="galaxy_distance"></A>
|
||||
<B>galaxy_distance</B>
|
||||
<HR>
|
||||
All the objects in a galaxy scene are arranged around a giant sphere,
|
||||
usually surrounding the camera. You can use this option to set the size of
|
||||
this sphere. The default value is 10000, which should be sufficient for
|
||||
most scenes and animations. If the rest of the objects in your scene are
|
||||
this size or larger, you may need to increase this value. However, values
|
||||
that are too large may result in disappearing objects, or cause POV-Ray to
|
||||
crash when rendering the scene.
|
||||
|
||||
<P><A NAME="galaxy_origin"></A>
|
||||
<B>galaxy_origin</B>
|
||||
<HR>
|
||||
As mentioned above, the objects in a galaxy scene are arranged around a
|
||||
giant sphere. By default this sphere is centred around < 0, 0, 0>, but
|
||||
you can use this option to change this value.
|
||||
|
||||
<P><A NAME="galaxy_bg"></A>
|
||||
<B>galaxy_bg</B>
|
||||
<HR>
|
||||
Use this option to disable the elements of the galaxy scene created by the
|
||||
Galaxy Backgrounds File (<I>Galaxy.bg</I>). Setting this option to false (or off)
|
||||
removes the background stars, background nebulae, and nebula sphere from
|
||||
the galaxy scene. To remove these elements individually, see <A HREF="#BG Options">Background File Options</A>.
|
||||
|
||||
<P><A NAME="galaxy_objects"></A>
|
||||
<B>galaxy_objects</B>
|
||||
<HR>
|
||||
Use this option to disable the elements of the galaxy scene created by the
|
||||
Galaxy Objects File (<I>Galaxy.obj</I>). Setting this option to false (or off)
|
||||
removes any feature nebulae, stars, comets, star clusters, or meteor
|
||||
showers from the galaxy scene. Note that this option is always set to
|
||||
false after including <I>Galaxy.inc</I>; if you wish to include <I>Galaxy.inc</I> a
|
||||
second time (or third, fourth, etc.) and have it automatically create galaxy
|
||||
objects, you must manually set <I>galaxy_objects</I> to true before including
|
||||
<I>Galaxy.inc</I>.
|
||||
|
||||
<P><A NAME="galaxy_starfield"></A>
|
||||
<B>galaxy_starfield</B>
|
||||
<HR>
|
||||
Use this option to remove the starfield objects in a galaxy scene created by
|
||||
the Galaxy Starfield File (<I>Galaxy.sf</I>). Note that this option is always
|
||||
set to false after including <I>Galaxy.inc</I>; if you wish <I>Galaxy.inc</I> to
|
||||
automatically create another starfield, you must manually set
|
||||
<I>galaxy_starfield</I> to true before including <I>Galaxy.inc</I>.
|
||||
|
||||
<P><A NAME="options_only"></A>
|
||||
<B>options_only</B>
|
||||
<HR>
|
||||
Setting this option to true will cause <I>Galaxy.inc</I> to declare all the options
|
||||
it uses for <I>Galaxy.bg, Galaxy.obj</I>, and <I>Galaxy.sf</I>, but these three files will
|
||||
not be automatically included. You can use this to then alter selected
|
||||
galaxy options, before including some or all of the remaining <I>Galaxy.*</I> files,
|
||||
eg. say you have discovered you like the galaxy produced by using 7362512
|
||||
as the <A HREF="#galaxy_seed">galaxy_seed</A> value, but you want to change the galaxy object used:
|
||||
|
||||
<P><CODE>#declare galaxy_seed = 7362512;
|
||||
<BR>#declare options_only = true;
|
||||
<BR>#include "GALAXY.INC"
|
||||
|
||||
<BR>#declare galaxy_object = "Galaxy2"
|
||||
<BR>#include "GALAXY.OBJ"
|
||||
<BR>#include "GALAXY.BG"
|
||||
<BR>#include "GALAXY.SF"</CODE>
|
||||
|
||||
<P>Note that setting <I>options_only</I> to true is the same as setting <A HREF="#galaxy_bg">galaxy_bg</A>,
|
||||
<A HREF="#galaxy_objects">galaxy_objects</A>, and <A HREF="#galaxy_starfield">galaxy_starfield</A> to false.
|
||||
|
||||
<P><A NAME="debug_options"></A>
|
||||
<B>debug_options</B>
|
||||
<HR>
|
||||
Setting this option to true will cause <I>Galaxy.inc</I> to output all the random
|
||||
option values it uses to POV-Ray's debug stream. You can then use the +GD
|
||||
command-line switch, or the Debug_File INI file setting, to direct the
|
||||
debug stream to a file. This file can then be altered as desired, and
|
||||
included directly into your scene before including <I>Galaxy.bg, Galaxy.obj</I>,
|
||||
and/or <I>Galaxy.sf</I> (see the <I>Rand.pov</I> and <I>Rand.ini</I> files for an example of how
|
||||
this option can be used).
|
||||
|
||||
|
||||
<P><HR><A NAME="BG Options"></A>
|
||||
<B>GALAXY BACKGROUNDS FILE OPTIONS</B>
|
||||
<HR>
|
||||
The options in this section apply to <I>Galaxy.bg</I>. In addition to the
|
||||
options below, the Galaxy Backgrounds File supports the <A HREF="#galaxy_intensity">galaxy_intensity</A>,
|
||||
<A HREF="#galaxy_rotate">galaxy_rotate</A>, <A HREF="#galaxy_distance">galaxy_distance</A>, and <A HREF="#galaxy_origin">galaxy_origin</A> options, as detailed above.
|
||||
|
||||
<P><A NAME="galaxy_bgstars"></A>
|
||||
<B>galaxy_bgstars</B>
|
||||
<HR>
|
||||
This option specifies the type of background star pigment mapped to the
|
||||
sky_sphere. Values range from 1 (sparse) to 3 (dense), and 4 (sparse) to
|
||||
6 (dense). The first group has a mixture of faint and light stars, while
|
||||
the second is mostly composed of bright stars of different colours. If you
|
||||
don't want any background stars (for an animation, say), set this option
|
||||
to false. The default <I>galaxy_bgstars</I> value is 2
|
||||
|
||||
<P><A NAME="galaxy_bgnebula"></A>
|
||||
<B>galaxy_bgnebula</B>
|
||||
<HR>
|
||||
This option specifies the type of nebula pigment mapped to the sky_sphere.
|
||||
Possible values are:
|
||||
|
||||
<UL>1 - Default nebula
|
||||
<BR>2 - Light reflection nebula
|
||||
<BR>3 - Nebula criss-crossed by dark gas lanes
|
||||
<BR>4 - Spidery nebula
|
||||
<BR>5 - Dense reflection nebula
|
||||
<BR>6 - Milky Way pattern
|
||||
</UL>
|
||||
|
||||
<P>Values 1 to 5 correspond roughly with the nebulae created by <I>Galaxy.obj</I>
|
||||
(see <A HREF="#galaxy_object_name">galaxy_object_name</A>). If you don't want a background nebula, set this option
|
||||
to false. The default <I>galaxy_bgnebula</I> value is 6
|
||||
|
||||
<P><A NAME="galaxy_nebula_sphere"></A>
|
||||
<B>galaxy_nebula_sphere</B>
|
||||
<HR>
|
||||
Use this option to create a large sphere (the radius is specified by the
|
||||
<A HREF="#galaxy_distance">galaxy_distance</A> option) mapped with a nebula pigment. Possible values are
|
||||
1 to 5, corresponding to the <A HREF="#galaxy_bgnebula">galaxy_bgnebula</A> option. If you don't want a
|
||||
nebula sphere, set this value to false.
|
||||
<BR>The default <I>galaxy_nebula_sphere</I> value is 1
|
||||
|
||||
<P><A NAME="galaxy_nebula_ambient"></A>
|
||||
<B>galaxy_nebula_ambient</B>
|
||||
<HR>
|
||||
Use this option to change the ambient light value of the nebula sphere.
|
||||
The default <I>galaxy_nebula_ambient</I> value is < 1, 1, 1>
|
||||
|
||||
<P><A NAME="galaxy_colour options"></A>
|
||||
<B>galaxy_colour1, galaxy_colour2, galaxy_colour3</B>
|
||||
<HR>
|
||||
Use this option to set the RGB colour value used to create the galaxy
|
||||
background pigments. For a monochromatic galaxy scene, only declare
|
||||
the first option; for a scene that uses two colours declare both
|
||||
<I>galaxy_colour1</I> and <I>galaxy_colour2</I>. Finally, to add another colour to
|
||||
the galaxy pigments declare all three galaxy_colour options.
|
||||
<BR>The default <I>galaxy_colour1</I> value is < 1, 1, 1> (White).
|
||||
|
||||
<P><A NAME="galaxy_star_colouration"></A>
|
||||
<B>galaxy_star_colouration</B>
|
||||
<HR>
|
||||
This option sets the colour saturation used by the six background star
|
||||
pigments, and by the Milky Way pigment. Good values range from 0 (no
|
||||
colour) to 1 (complete colour). An interesting effect can be achieved by
|
||||
using negative numbers, which result in the stars being the opposite colour
|
||||
to the nebulae and other objects in the galaxy scene.
|
||||
<BR>The default <I>galaxy_star_colouration</I> value is 0.2
|
||||
|
||||
<P><A NAME="galaxy_pattern_scale"></A>
|
||||
<B>galaxy_pattern_scale</B>
|
||||
<HR>
|
||||
Use this option to alter the size of the patterns used to create the
|
||||
galaxy background pigments. Changing this option does not alter the general
|
||||
shape of the pigments; it only changes the scaling of the patterns used
|
||||
within each pigment. The default <I>galaxy_pattern_scale</I> value is 1
|
||||
|
||||
<P><A NAME="galaxy_pattern_origin"></A>
|
||||
<B>galaxy_pattern_origin</B>
|
||||
<HR>
|
||||
Use this option to translate the origin of the patterns used to create the
|
||||
galaxy background pigments. Changing this option can completely alter the
|
||||
shapes created by the pigments, and can be changed gradually within an
|
||||
animation to create dynamic nebulae, etc.
|
||||
<BR>The default <I>galaxy_pattern_origin</I> is < 0, 0, 0>
|
||||
|
||||
<P><A NAME="galaxy_turb_origin"></A>
|
||||
<B>galaxy_turb_origin</B>
|
||||
<HR>
|
||||
Many of the galaxy pigments use some sort of turbulence; changing this
|
||||
option translates the origin of the turbulence before it is applied to the
|
||||
pigment. You can use this option to alter the shapes of various pigments,
|
||||
or to animate the turbulence applied to the pigments.
|
||||
<BR>The default <I>galaxy_turb_origin</I> is < 0, 0, 0>
|
||||
|
||||
<P><A NAME="galaxy_declare_only"></A>
|
||||
<B>galaxy_declare_only</B>
|
||||
<HR>
|
||||
Setting this option to true stops <I>Galaxy.bg</I> from actually creating the
|
||||
sky_sphere or nebula sphere to which the galaxy background pigments are
|
||||
mapped. Instead, the file declares each of the 12 pigments separately, so
|
||||
that you can then use them in the ways you use any other pigment. The
|
||||
pigment names are BGStars? (from 1 to 6), BGNebula? (from 1 to 5), and
|
||||
BGMilkyWay. Each of the pigments is designed to be used at unit size, but
|
||||
they can be scaled or transformed any way you want, eg:
|
||||
|
||||
<P><CODE>#declare galaxy_declare_only = true;
|
||||
<BR>#include "GALAXY.BG"
|
||||
|
||||
<P>sky_sphere {
|
||||
<BR>pigment {BGStars3}
|
||||
<BR>pigment {BGMilkyWay rotate z * 45}
|
||||
<BR>pigment {BGNebula5 scale 2}
|
||||
<BR>pigment {BGNebula1 rotate < 60, 50, 0>}}
|
||||
|
||||
<P>box {< -1, -1, -1>, < 1, 1, 1>
|
||||
<BR>pigment {BGStars6} finish {phong .5}}</CODE>
|
||||
|
||||
<P>Note that setting <I>galaxy_declare_only</I> to true is the same as setting
|
||||
<A HREF="#galaxy_bgstars">galaxy_bgstars</A>, <A HREF="#galaxy_bgnebula">galaxy_bgnebula</A>, and <A HREF="#galaxy_nebula_sphere">galaxy_nebula_sphere</A> to false.
|
||||
|
||||
|
||||
<P><HR><A NAME="SF Options"></A>
|
||||
<B>GALAXY STARFIELD FILE OPTIONS</B>
|
||||
<HR>
|
||||
The options in this section apply to <I>Galaxy.sf</I>. In addition to the
|
||||
options below, the Galaxy Starfield File supports the <A HREF="#galaxy_seed">galaxy_seed</A>,
|
||||
<A HREF="#galaxy_rotate">galaxy_rotate</A>, and <A HREF="#galaxy_origin">galaxy_origin</A> options, as detailed above.
|
||||
|
||||
<P><A NAME="star_count"></A>
|
||||
<B>star_count</B>
|
||||
<HR>
|
||||
This option sets the number of star objects created. The larger the number,
|
||||
the longer the parsing time and memory required.
|
||||
The default <I>star_count</I> value is 1000
|
||||
|
||||
<P><A NAME="star_colour"></A>
|
||||
<B>star_colour</B>
|
||||
<HR>
|
||||
This option sets the RGB colour value of the stars.
|
||||
The default star_colour value is < 0.9, 0.9, 0.9>
|
||||
|
||||
<P><A NAME="star_type"></A>
|
||||
<B>star_type</B>
|
||||
<HR>
|
||||
This option selects the pigment used on each star object. Possible
|
||||
values are:
|
||||
|
||||
<UL>1 - Plain circular star (default)
|
||||
<BR>2 - Circular star with halo
|
||||
<BR>3 - Circular star with six evenly spaced rays
|
||||
</UL>
|
||||
|
||||
<P><A NAME="star_scale"></A>
|
||||
<B>star_scale</B>
|
||||
<HR>
|
||||
Use this option to increase or decrease the size of the star objects. By
|
||||
default the stars are designed to look best when rendered at resolutions
|
||||
between 320x240 and 640x480; you may wish use smaller numbers for larger
|
||||
resolutions, and vice-versa.
|
||||
The default <I>star_scale</I> value is 1
|
||||
|
||||
<P><A NAME="star_distance"></A>
|
||||
<B>star_distance</B>
|
||||
<HR>
|
||||
The star objects are arranged around a large sphere; this option sets the
|
||||
radius of this sphere. The default value is 20000, which should be
|
||||
sufficient for most scenes and animations. If the rest of the objects in
|
||||
your scene are this size or larger, you may need to increase this value.
|
||||
However, values that are too large may result in disappearing objects, or
|
||||
cause POV-Ray to crash when rendering the scene.
|
||||
|
||||
<P><A NAME="star_spread"></A>
|
||||
<B>star_spread</B>
|
||||
<HR>
|
||||
This option sets the difference between the distances to the closest
|
||||
(largest) star and the farthest (smallest) star. The option is expressed
|
||||
as a percentage of the <A HREF="#star_distance">star_distance</A>, eg: the default value of 1 means that
|
||||
the stars lie somewhere between 20000 and 40000 units away (40000 being
|
||||
equal to 20000 plus 20000 times 1). Setting this option to 0 would result
|
||||
in all the star objects being the same distance from the origin.
|
||||
|
||||
<P><A NAME="star_distribution"></A>
|
||||
<B>star_distribution</B>
|
||||
<HR>
|
||||
This option sets the ratio of large (close) stars to small (far) stars.
|
||||
The default value of 1 results in equal numbers of each. Values larger
|
||||
than 1 give more large stars, while values smaller than 1 give more small
|
||||
stars.
|
||||
|
||||
<P><A NAME="star_colour_turb"></A>
|
||||
<B>star_colour_turb</B>
|
||||
<HR>
|
||||
Use this option to alter the amount of colour variation between different
|
||||
stars. Setting this option to 0 results in stars all of the same colour,
|
||||
while larger values give greater colour variation.
|
||||
The default <I>star_colour_turb</I> value is 0.2
|
||||
|
||||
<P><A NAME="star_brightness_turb"></A>
|
||||
<B>star_brightness_turb</B>
|
||||
<HR>
|
||||
Use this option to set the amount of brightness variation between different
|
||||
stars. Setting this option to 0 results in stars all of the same brightness,
|
||||
while larger values give greater brightness variation.
|
||||
The default <I>star_brightness_turb</I> value is 0.5
|
||||
|
||||
|
||||
<P><HR><A NAME="OBJ Options"></A>
|
||||
<B>GALAXY OBJECTS FILE OPTIONS</B>
|
||||
<HR>
|
||||
The options in this section apply to <I>Galaxy.obj</I>. In addition to the
|
||||
options below, the Galaxy Objects File supports the following options
|
||||
detailed above:
|
||||
|
||||
<UL><A HREF="#galaxy_seed">galaxy_seed</A>, <A HREF="#galaxy_colour_turb">galaxy_colour_turb</A>, <A HREF="#galaxy_intensity">galaxy_intensity</A>,
|
||||
<A HREF="#galaxy_rotate">galaxy_rotate</A>, <A HREF="#galaxy_distance">galaxy_distance</A>, <A HREF="#galaxy_origin">galaxy_origin</A>
|
||||
<A HREF="#galaxy_colour options">galaxy_colour1, galaxy_colour2, galaxy_colour3</A>, <A HREF="#galaxy_star_colouration">galaxy_star_colouration</A>,
|
||||
<A HREF="#galaxy_pattern_scale">galaxy_pattern_scale</A>, <A HREF="#galaxy_pattern_origin">galaxy_pattern_origin</A>, <A HREF="#galaxy_turb_origin">galaxy_turb_origin</A>
|
||||
</UL>
|
||||
|
||||
|
||||
<P><A NAME="galaxy_object_name"></A>
|
||||
<B>galaxy_object_name</B>
|
||||
<HR>
|
||||
Use this option to select which galaxy object you wish to use. Possible
|
||||
values are (the case of the strings is not important):
|
||||
|
||||
<UL>Star1, Star2, Star3, Star4
|
||||
<BR>Nebula1, Nebula2, Nebula3, Nebula4, Nebula5, Nebula6
|
||||
<BR>Galaxy1, Galaxy2, Galaxy3, Galaxy4, Galaxy5
|
||||
<BR>Comet1, Comet2, Comet3
|
||||
<BR>Meteor1, Meteor2
|
||||
</UL>
|
||||
|
||||
<P>As a shortcut you can just use the first and last letters of the object
|
||||
name, eg. S3 for Star3, or N4 for Nebula4. If you don't want to create
|
||||
a galaxy object, set this value to an empty string.
|
||||
The default <I>galaxy_object_name</I> is Nebula1
|
||||
|
||||
<P><A NAME="galaxy_object_scale"></A>
|
||||
<B>galaxy_object_scale</B>
|
||||
<HR>
|
||||
Use this option to increase of decrease the size of the galaxy object.
|
||||
The default <I>galaxy_object_scale</I> value is 1
|
||||
|
||||
<P><A NAME="galaxy_object_rotate"></A>
|
||||
<B>galaxy_object_rotate</B>
|
||||
<HR>
|
||||
Use this option to rotate the galaxy object. The object is rotated around
|
||||
the viewing axis, so only one float value is required.
|
||||
The default <I>galaxy_object_rotate</I> value is 0
|
||||
|
||||
<P><A NAME="galaxy_object_flatten"></A>
|
||||
<B>galaxy_object_flatten</B>
|
||||
<HR>
|
||||
Use this option to flatten Galaxy, Comet, and Meteor objects. Good values
|
||||
lie somewhere between 0 (no flattening) and 1 (completely flattened). You
|
||||
can also use negative numbers to widen the object instead of thinning it.
|
||||
The default <I>galaxy_object_flatten</I> value is 0.2
|
||||
|
||||
<P><A NAME="galaxy_object_position"></A>
|
||||
<B>galaxy_object_position</B>
|
||||
<HR>
|
||||
Use this option to move the galaxy object and cluster objects. The
|
||||
x-component of this option specifies the altitude of the objects, while the
|
||||
y-component specifies the azimuth of the objects. The z-component is
|
||||
ignored. The default value of < 0, 0, 0> positions the objects directly
|
||||
perpendicular to the z-axis. North lies along the z-axis and up lies along
|
||||
the y-axis. Therefore, < 90, 0, 0> positions the object directly above the
|
||||
origin, and <-90, 0, 0> positions the objects below the origin. < 0, 90, 0>
|
||||
positions the objects to the east (along the x-axis), < 0, -90, 0> positions
|
||||
the objects to the west (along the negative x-axis), and < 0, 180, 0>
|
||||
positions the objects to the south (along the negative z-axis). You can
|
||||
combine these two movements using the <I>galaxy_object_position</I> value to place
|
||||
the galaxy object and cluster objects anywhere in the sky.
|
||||
|
||||
<P><A NAME="galaxy_cluster_name"></A>
|
||||
<B>galaxy_cluster_name</B>
|
||||
<HR>
|
||||
In addition to a single galaxy object you can create a cluster of randomly
|
||||
positioned, sized, and coloured objects. Use this option to select which
|
||||
object you wish to use for the cluster, using the same selection as
|
||||
the <A HREF="#galaxy_object_name">galaxy_object_name</A> option. If you don't want to create
|
||||
a cluster of objects, set this option to an empty string.
|
||||
The default <I>galaxy_cluster_name</I> is Star1
|
||||
|
||||
<P><A NAME="galaxy_cluster_objects"></A>
|
||||
<B>galaxy_cluster_objects</B>
|
||||
<HR>
|
||||
Use this option to set the number of objects you want to create in the
|
||||
cluster. The default <I>galaxy_cluster_objects</I> value is 6
|
||||
|
||||
<P><A NAME="galaxy_cluster_scale"></A>
|
||||
<B>galaxy_cluster_scale</B>
|
||||
<HR>
|
||||
Use this option to increase of decrease the size of the individual objects
|
||||
in the cluster (not the overall size of the cluster itself). The default
|
||||
<I>galaxy_cluster_scale</I> value is half of the <A HREF="#galaxy_object_scale">galaxy_object_scale</A> value.
|
||||
|
||||
<P><A NAME="galaxy_cluster_rotate"></A>
|
||||
<B>galaxy_cluster_rotate</B>
|
||||
<HR>
|
||||
Use this option to rotate each individual object in the cluster (not the
|
||||
cluster as a whole). The default <I>galaxy_cluster_rotate</I> value is the same
|
||||
as the <A HREF="#galaxy_object_rotate">galaxy_object_rotate</A> value.
|
||||
|
||||
<P><A NAME="galaxy_cluster_spread"></A>
|
||||
<B>galaxy_cluster_spread</B>
|
||||
<HR>
|
||||
Use this option to increase the amount of space between the individual
|
||||
cluster objects. The option is expressed as an angle, where 0 results in
|
||||
all the objects being clustered at the same position, while 360 spreads the
|
||||
objects across the entire sky.
|
||||
The default <I>galaxy_cluster_spread</I> value is 15 degrees.
|
||||
|
||||
<P><A NAME="galaxy_scale_turb"></A>
|
||||
<B>galaxy_scale_turb</B>
|
||||
<HR>
|
||||
Use this option to alter the amount of size variation between individual
|
||||
cluster objects. Setting this option to 0 results in all the cluster
|
||||
objects being the same size, while larger values give greater size
|
||||
variation. The default <I>galaxy_scale_turb</I> value is 0.5
|
||||
|
||||
<P><A NAME="galaxy_rotate_turb"></A>
|
||||
<B>galaxy_rotate_turb</B>
|
||||
<HR>
|
||||
Use this option to alter the amount of variation (in degrees) between the
|
||||
rotations of individual cluster objects. Setting this option to 0 results
|
||||
in all the cluster objects being rotated by the same amount, while setting
|
||||
this option to 360 gives objects rotated by completely random angles.
|
||||
The default <I>galaxy_rotate_turb</I> value is 0
|
||||
|
||||
<P><A NAME="galaxy_declare_only"></A>
|
||||
<B>galaxy_declare_only</B>
|
||||
<HR>
|
||||
Setting this option to true stops <I>Galaxy.obj</I> from actually creating the
|
||||
galaxy object and cluster objects. Instead, these objects are declared
|
||||
(as <CODE>galaxy_object</CODE> and <CODE>galaxy_cluster_object</CODE> respectively) as textured
|
||||
discs which can be used like any other object. The discs are scaled
|
||||
and rotated according to the relevant options above, and are centred
|
||||
at the origin perpendicular to the z-axis.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Troubleshooting"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>TROUBLESHOOTING</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
This section contains some common problems you might encounter while using
|
||||
the Galaxy Include File package, and instructions on how to fix these
|
||||
problems.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) POV-Ray crashes when I try to render my galaxy scene?</B>
|
||||
<BR>A: This may be caused by objects being larger than POV-Ray's allowed limit.
|
||||
To make the objects smaller, try decreasing the <A HREF="#galaxy_distance">galaxy_distance</A> value
|
||||
(the default is 10000), and also the <A HREF="#star_distance">star_distance</A> value if you have
|
||||
declared this separately. If reducing this value doesn't help, try
|
||||
reducing the <I>max_trace_level</I> of your scene; the Galaxy Include File
|
||||
automatically increases the value for each object it creates, so add
|
||||
the line:
|
||||
|
||||
<P><CODE>global_settings {max_trace_level 10}</CODE>
|
||||
|
||||
<P><B>after</B> including any of the <I>Galaxy.*</I> files.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) POV-Ray crashes before even starting to render my galaxy scene?</B>
|
||||
<BR>A: This is probably caused by a lack of memory; try decreasing your
|
||||
<A HREF="#star_count">star_count</A> value, or your <A HREF="#galaxy_cluster_objects">galaxy_cluster_objects</A> value if they
|
||||
are quite large. Otherwise, check the error message POV-Ray gives
|
||||
you; you have probably tried to redeclare an option that has
|
||||
already been used by one of the Galaxy Include Files; ensuring that
|
||||
options are always declared as the same type (eg. vectors are always
|
||||
redeclared as vectors, etc.) should remove the problem.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) POV-Ray renders my galaxy scene, but it is very slow?</B>
|
||||
<BR>A: This is probably caused by very large objects; try reducing the
|
||||
<A HREF="#galaxy_distance">galaxy_distance</A> and/or <A HREF="#star_distance">star_distance</A> options as detailed in the first
|
||||
question. Note, however, that when using many complex pigments like
|
||||
those used by the Galaxy Include Files a certain amount of calculation
|
||||
time is to be expected.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I have created an animation using the Galaxy Include File, but the
|
||||
stars seems to flicker annoyingly?</B>
|
||||
<BR>A: This is caused by using background stars (mapped to the sky_sphere)
|
||||
which are only suitable for still scenes. Try setting the
|
||||
<A HREF="#galaxy_sky_sphere">galaxy_sky_sphere</A> option to false <B>before</B> including the <I>Galaxy.*</I> files
|
||||
to remove the problem.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I am using the <I>galaxy_pattern_origin</I> and/or <I>galaxy_turb_origin</I> options,
|
||||
and there are some strange artefacts in my galaxy scene?</B>
|
||||
<BR>A: This is caused by problems with POV-Ray's internal pigment mapping
|
||||
functions; you should be able to fix the problem by using smaller values
|
||||
for the <A HREF="#galaxy_pattern_origin">galaxy_pattern_origin</A> and <A HREF="#galaxy_turb_origin">galaxy_turb_origin</A> options.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I have tried declaring some of the options, but nothing changes?</B>
|
||||
<BR>A: Make sure that you have declared all the desired options <B>before</B>
|
||||
including any of the <I>Galaxy.*</I> files. The files are not designed
|
||||
to be included once at the beginning of a scene.
|
||||
|
||||
<P><HR>
|
||||
<B>Q) How can I use the Galaxy Include File with Moray (or another modeller)?</B>
|
||||
<BR>A: First export your scene from your modeller to a POV file. Then just add
|
||||
your desired galaxy options to this file, and include the desired
|
||||
<I>Galaxy.*</I> files before rendering the scene. If your modeller uses a
|
||||
right handed coordinate system (like Moray) declare these two options
|
||||
before any others to ensure that the galaxy objects are positioned
|
||||
properly:
|
||||
|
||||
<P><CODE>#declare galaxy_distance = < -1, 1, 1> * 10000;
|
||||
<BR>#declare galaxy_rotate = < -90, 180, 0> ;</CODE>
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I want to fly around a galaxy I have created, but this doesn't seem possible?</B>
|
||||
<BR>A: This is because the galaxy objects are designed to generally be viewed in the background, and so they are placed at a great distance from the other objects in a scene.
|
||||
You can, however, use any of the galaxy objects just as you would any other object in POV-Ray, so that it can translated, rotated, scaled, etc.
|
||||
Just use the <A HREF="#galaxy_declare_only">galaxy_declare_only</A> option to create the <CODE>galaxy_object</CODE>, eg:
|
||||
|
||||
<P><CODE>#declare galaxy_colour1 = < 1.3, 1.2, .9> ;
|
||||
<BR>#declare galaxy_colour2 = < .4, .8, 1> ;
|
||||
<BR>#declare galaxy_cluster_name = ""
|
||||
|
||||
<P>#declare galaxy_object_name = "Galaxy3"
|
||||
<BR>#declare galaxy_object_flatten = 0;
|
||||
<BR>#declare galaxy_declare_only = true;
|
||||
<BR>#include "Galaxy.obj"
|
||||
<BR>object {galaxy_object rotate x * 90 scale 10}
|
||||
|
||||
<P>camera {location < 1, 2, -3> look_at < 0, .5, 0>}</CODE>
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I rendered my galaxy image using anti-aliasing and all the stars disappeared?</B>
|
||||
<BR>A: This is usually the result of using the <I>Galaxy.bg</I> file to create stars as a pigment on the sky_sphere.
|
||||
Stars created in this manner will not work well with anti-aliasing, and it is usually a good idea to set the <A HREF="#galaxy_bgstars">galaxy_bgstars</A> option to false to remove these background stars if you plan to render the image with anti-aliasing turned on.
|
||||
In their place, you should use the stars created by <I>Galaxy.sf</I>, as these are actual objects with pigments that have already been anti-aliased.
|
||||
The best settings for a scene usually depend on the rendering size, but for an 800x600 image these settings work quite well:
|
||||
|
||||
<P><CODE>#declare star_count = 5000;
|
||||
<BR>#declare star_scale = .5;
|
||||
<BR>#include "Galaxy.sf"</CODE>
|
||||
|
||||
<P><HR>
|
||||
<B>Q) I can't get media to work with the Galaxy Include Files?</B>
|
||||
<BR>A: Due to the way the Galaxy Include Files create the galaxy objects and stars, the results obtained using POV-Ray 3.1's media can be unpredictable.
|
||||
Part of the problem is caused by the galaxy objects usually being at a great distance from the other objects in a scene, which makes it very difficult for POV-Ray to calculate accurate media interactions.
|
||||
One solution is to decrease the <A HREF="#galaxy_distance">galaxy_distance</A> option to bring the galaxy objects closer to the camera, although this can make it difficult to place other objects correctly.
|
||||
A better solution might be to use localised media container objects, rather than atmospheric media, to only place the media in those sections of the scene that it is required for.
|
||||
This should give you more control over the media interactions in your scene, and possibly increase the rendering speed as well.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Legal"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>COPYRIGHT AND LEGAL INFORMATION</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
The <B>Galaxy Include File package</B>, including <I>Galaxy.inc</I>, <I>Galaxy.bg</I>, <I>Galaxy.obj</I>, <I>Galaxy.sf</I>, all documentation, and
|
||||
associated sample *.POV files are <B>Copyright 1998</B> by <B>Chris Colefax</B>. Full
|
||||
permission is granted to the user to modify any or all of the files for
|
||||
his/her own use. If modified versions are to be distributed the user
|
||||
should make clear the modifications that have been made by him/herself.
|
||||
|
||||
<P>The <B>Galaxy Include File package</B> may be bundled with or without other
|
||||
software on CD-ROM collections, Bulletin Board systems and other file
|
||||
archives, providing that all associated files, including documentation and
|
||||
samples, are included. I would also request that persons intending to
|
||||
distribute the <B>Galaxy Include File package</B> in this manner or otherwise
|
||||
would first <A HREF="#Contact">contact me</A> to ensure that
|
||||
they are in possession of the latest available version.
|
||||
|
||||
<P>Further, no restrictions of any sort are placed on the usage of the include
|
||||
files themselves (<I>Galaxy.inc, Galaxy.bg, Galaxy.obj</I>, and <I>Galaxy.sf</I>), and scene files or images created using the include
|
||||
files remain entirely the property of the user or users who have created
|
||||
them. I claim no liability or responsibility for damages or loss resulting
|
||||
from usage of the include files, or any part of the include file package.
|
||||
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<A NAME="Contact"></A><TABLE WIDTH=100% BORDER=0 CELLPADDING=7><TR><TD BGCOLOR=#C0C0C0>
|
||||
<FONT SIZE=+1><B><I>CONTACTING THE AUTHOR</B></I></FONT>
|
||||
</TD></TR></TABLE>
|
||||
If you wish to contact me with bug reports, bug fixes, criticisms,
|
||||
comments, suggested improvements, questions, etc. you can reach me by
|
||||
email at:
|
||||
|
||||
<P><A HREF="mailto:ccolefax@geocities.com">ccolefax@geocities.com</A>
|
||||
|
||||
<P>or by regular mail at:
|
||||
|
||||
<UL>Chris Colefax
|
||||
<BR>PO Box 110
|
||||
<BR>Kuranda, Queensland
|
||||
<BR>Australia 4872
|
||||
|
||||
</UL>
|
||||
<HR>
|
||||
|
||||
<DIV ALIGN=RIGHT><FONT SIZE=-1><I>
|
||||
POV-Ray<FONT SIZE=-2><SUP>TM</SUP></FONT> and Persistence of Vision<FONT SIZE=-2><SUP>TM</SUP></FONT> are registered trademarks of the POV-Ray Team<FONT SIZE=-2><SUP>TM</SUP></FONT>
|
||||
</I></FONT></DIV>
|
||||
|
||||
</BODY></HTML>
|
|
@ -1,25 +0,0 @@
|
|||
; GALAXY INCLUDE FILE: RANDOM GALAXY INI FILE
|
||||
; *******************************************
|
||||
; Use this file to easily render many different (and unique) galaxy scenes.
|
||||
; First, set the Final_Frame option to the number of renderings you want:
|
||||
|
||||
Final_Frame=100
|
||||
|
||||
; Then render Rand.pov using this INI file, plus any other options
|
||||
; you want. To get the options for a particular galaxy, take note of
|
||||
; the frame number and use it to set the following options, eg. if you
|
||||
; wanted to find out the options for RAND057.TGA, use 57 (and make
|
||||
; sure to remove the semicolons):
|
||||
|
||||
;Subset_Start_Frame=57
|
||||
;Subset_End_Frame=57
|
||||
|
||||
; Then remove the semicolon from the following line (and change the file
|
||||
; name if desired):
|
||||
|
||||
;Debug_File=GX_OPTS.INC
|
||||
|
||||
; You can now render Rand.pov using this INI file, and you will get a
|
||||
; file called GX_OPTS.INC (or whatever name you are using) which you
|
||||
; can modify and include directly into your scene, before including
|
||||
; Galaxy.bg, Galaxy.obj, and Galaxy.sf.
|
|
@ -1,8 +0,0 @@
|
|||
// GALAXY INCLUDE FILE: RANDOM GALAXY SCENE FILE
|
||||
// *********************************************
|
||||
// Use this file to easily render many different (and unique) galaxy
|
||||
// scenes. For more information, see Rand.ini
|
||||
|
||||
#declare galaxy_seed = (clock - .5) * 2e5;
|
||||
#declare debug_options = true;
|
||||
#include "GALAXY.INC"
|
|
@ -1,25 +0,0 @@
|
|||
*************************************************
|
||||
GALAXY INCLUDE FILE FOR PERSISTENCE OF VISION 3.x
|
||||
*************************************************
|
||||
|
||||
Included files:
|
||||
|
||||
Galaxy.inc - Galaxy include file for POV-Ray 3.x
|
||||
Galaxy.bg - Galaxy backgrounds file for POV-Ray 3.x
|
||||
Galaxy.obj - Galaxy objects file for POV-Ray 3.x
|
||||
Galaxy.sf - Galaxy starfield file for POV-Ray 3.x
|
||||
Galaxy.htm - Instructions for Galaxy.*
|
||||
Readme.txt - This file
|
||||
|
||||
AllObjs.pov - Samples of all galaxy objects
|
||||
Trifid.pov - Example of custom galaxy scene
|
||||
Rand.pov - Samples of random galaxy scenes
|
||||
Rand.ini - INI file for use with Rand.pov
|
||||
DnmcOpts.pov - Dynamic galaxy options animation
|
||||
|
||||
See Galaxy.htm for full instructions regarding installation, usage,
|
||||
troubleshooting, copyright, legal and contact information, etc.
|
||||
|
||||
All the included *.pov files use Galaxy.inc and/or Galaxy.bg, Galaxy.obj,
|
||||
and Galaxy.sf. Before rendering any of these files, follow the
|
||||
instructions in Galaxy.htm to properly install the include files.
|
|
@ -1,45 +0,0 @@
|
|||
// GALAXY INCLUDE FILE: CUSTOM GALAXY SCENE
|
||||
// ****************************************
|
||||
// This scene shows how Galaxy.obj and Galaxy.sf can be used to build
|
||||
// custom galaxy scenes, piece by piece.
|
||||
//
|
||||
// Recommended resolution: 640 x 480, anti-aliasing on
|
||||
|
||||
// STARFIELD
|
||||
#declare star_count = 2000;
|
||||
#declare star_scale = .5;
|
||||
#include "GALAXY.SF"
|
||||
|
||||
#declare galaxy_seed = 1;
|
||||
#declare star_count = 500;
|
||||
#declare star_type = 3;
|
||||
#declare star_colour = <1, .9, .7>;
|
||||
#declare star_scale = 1.5;
|
||||
#include "GALAXY.SF"
|
||||
|
||||
// PINK NEBULA
|
||||
#declare galaxy_colour1 = <1.2, 1, 1.1>;
|
||||
#declare galaxy_colour2 = <1, .3, .6>;
|
||||
#declare galaxy_pattern_origin = x * 1;
|
||||
#declare galaxy_turb_origin = x * -4;
|
||||
#declare galaxy_object_name = "Nebula3"
|
||||
#declare galaxy_object_scale = 1.75;
|
||||
#declare galaxy_object_position = <-5, 5, 0>;
|
||||
#declare galaxy_cluster_name = ""
|
||||
#include "GALAXY.OBJ"
|
||||
|
||||
// BLUE NEBULA
|
||||
#declare galaxy_colour1 = <.5, .9, 1.2>;
|
||||
#declare galaxy_colour2 = <.1, .3, .5>;
|
||||
#declare galaxy_pattern_origin = x * -20;
|
||||
#declare galaxy_object_name = "Nebula2"
|
||||
#declare galaxy_object_scale = 1.2;
|
||||
#declare galaxy_object_position = <10, -12, 0>;
|
||||
#include "GALAXY.OBJ"
|
||||
|
||||
// LARGE STAR
|
||||
#declare galaxy_object_name = "Star1"
|
||||
#declare galaxy_colour1 = <1.5, 1.5, 1.5>;
|
||||
#declare galaxy_object_scale = 1;
|
||||
#declare galaxy_object_position = <17, -10, 0>;
|
||||
#include "GALAXY.OBJ"
|
|
@ -1,35 +0,0 @@
|
|||
version 5.0
|
||||
set nocompatible
|
||||
let cpo_save=&cpo
|
||||
set cpo=B
|
||||
map! <xHome> <Home>
|
||||
map! <xEnd> <End>
|
||||
map! <S-xF4> <S-F4>
|
||||
map! <S-xF3> <S-F3>
|
||||
map! <S-xF2> <S-F2>
|
||||
map! <S-xF1> <S-F1>
|
||||
map! <xF4> <F4>
|
||||
map! <xF3> <F3>
|
||||
map! <xF2> <F2>
|
||||
map! <xF1> <F1>
|
||||
map <xHome> <Home>
|
||||
map <xEnd> <End>
|
||||
map <S-xF4> <S-F4>
|
||||
map <S-xF3> <S-F3>
|
||||
map <S-xF2> <S-F2>
|
||||
map <S-xF1> <S-F1>
|
||||
map <xF4> <F4>
|
||||
map <xF3> <F3>
|
||||
map <xF2> <F2>
|
||||
map <xF1> <F1>
|
||||
map! }I\begin{yyplcwendO
|
||||
map! >I<yypa/O
|
||||
let &cpo=cpo_save
|
||||
unlet cpo_save
|
||||
set autoindent
|
||||
set exrc
|
||||
set number
|
||||
set ruler
|
||||
set shiftwidth=4
|
||||
set showmatch
|
||||
set textwidth=72
|
|
@ -1,27 +0,0 @@
|
|||
# what's where?
|
||||
include GNUmakevars
|
||||
|
||||
|
||||
all: \
|
||||
test-buckyball.jpg \
|
||||
|
||||
|
||||
|
||||
%.ppm: %.pov
|
||||
$(POVRAY) +L$(POVINC) +V -I$< +FP
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
|
||||
test-buckyball.ppm: test-buckyball.pov buckyball.pov
|
||||
|
||||
|
||||
%.gif: %.ppm
|
||||
ppmquant 256 $< | ppmtogif > $@
|
||||
|
||||
%.jpg: %.ppm
|
||||
cjpeg $< > $@
|
||||
|
||||
www/%: %
|
||||
cp $< $@
|
|
@ -1,102 +0,0 @@
|
|||
#include "colors.inc"
|
||||
|
||||
#declare r5 = 0.5 / sin (radians(36));
|
||||
#declare rho5 = 0.5 * tan (radians(54));
|
||||
#declare rho6 = 0.5 * tan (radians(60));
|
||||
#declare v1 = 90 - degrees(asin(rho5/rho6));
|
||||
#debug concat("v1 = ", str(v1, 0, 5), "\n")
|
||||
#declare a = rho6 * cos(radians(v1)) + r5;
|
||||
#declare b = 1;
|
||||
#declare c = sqrt(a*a + b*b);
|
||||
#declare d = rho6 * sin(radians(v1));
|
||||
#declare v2 = 2 * degrees (asin(d/(c-r5)));
|
||||
#debug concat("v2 = ", str(v2, 0, 5), "\n")
|
||||
#declare e = sin(radians(72));
|
||||
#debug concat("e = ", str(e, 0, 5), "\n")
|
||||
#declare f = e * sin(radians(v1));
|
||||
#debug concat("f = ", str(f, 0, 5), "\n")
|
||||
#declare v3 = degrees (asin(f/rho6)) + v1;
|
||||
#debug concat("v3 = ", str(v3, 0, 5), "\n")
|
||||
|
||||
|
||||
#declare buckyball =
|
||||
intersection {
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <1, 0, 0, 0.5> }
|
||||
}
|
||||
#declare i = 0;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <1, 1, 0, 0.5> }
|
||||
rotate <0, 0, v1>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
#declare i = 36;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <0, 1, 0, 0.5> }
|
||||
rotate <0, 0, v2>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
#declare i = 0;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <0, 1, 1, 0.5> }
|
||||
rotate <0, 0, v3>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
#declare i = 36;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <0, 0, 1, 0.5> }
|
||||
rotate <0, 0, 180 - v3>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
#declare i = 0;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <1, 0, 1, 0.5> }
|
||||
rotate <0, 0, 180-v2>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
#declare i = 36;
|
||||
#while (i < 360)
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <1, 0, 0, 0.5> }
|
||||
rotate <0, 0, 180-v1>
|
||||
rotate <0, i, 0>
|
||||
}
|
||||
#declare i = i + 72;
|
||||
#end
|
||||
|
||||
plane {
|
||||
<0, 1, 0> 1
|
||||
pigment { color rgbf <1, 1, 0, 0.5> }
|
||||
rotate <0, 0, 180>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
+A
|
||||
+QR
|
||||
+HTP
|
||||
+fp +w800 +h600
|
||||
display_gamma = 2.2
|
|
@ -1,113 +0,0 @@
|
|||
#include "colors.inc"
|
||||
#include "buckyball.pov"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
}
|
||||
|
||||
light_source {
|
||||
<2000, 2000, 2000>
|
||||
color White
|
||||
}
|
||||
|
||||
|
||||
#declare Camera_Ortho_pl = 0;
|
||||
#declare Camera_Ortho_v1 = 0;
|
||||
#declare Camera_Ortho_v2 = 0;
|
||||
#declare Camera_Ortho_v3 = 0;
|
||||
#declare Camera_Ortho_eq = 0;
|
||||
#declare Camera_Persp = 1;
|
||||
|
||||
|
||||
#if (Camera_Ortho_pl)
|
||||
camera {
|
||||
location <5, 0, 0>
|
||||
look_at <0, 0, 0>
|
||||
rotate <0, 0, 90>
|
||||
angle 40
|
||||
orthographic
|
||||
|
||||
}
|
||||
#end
|
||||
#if (Camera_Ortho_v1)
|
||||
camera {
|
||||
location <5, 0, 0>
|
||||
look_at <0, 0, 0>
|
||||
rotate <0, 0, 90>
|
||||
rotate <0, 0, v1>
|
||||
rotate <0, 0, 0>
|
||||
angle 40
|
||||
orthographic
|
||||
|
||||
}
|
||||
#end
|
||||
#if (Camera_Ortho_v2)
|
||||
camera {
|
||||
location <5, 0, 0>
|
||||
look_at <0, 0, 0>
|
||||
rotate <0, 0, 90>
|
||||
rotate <0, 0, v2>
|
||||
rotate <0, 36, 0>
|
||||
angle 40
|
||||
orthographic
|
||||
|
||||
}
|
||||
#end
|
||||
#if (Camera_Ortho_v3)
|
||||
camera {
|
||||
location <5, 0, 0>
|
||||
look_at <0, 0, 0>
|
||||
rotate <0, 0, 90>
|
||||
rotate <0, 0, v3>
|
||||
rotate <0, 0, 0>
|
||||
angle 40
|
||||
orthographic
|
||||
|
||||
}
|
||||
#end
|
||||
#if (Camera_Ortho_eq)
|
||||
camera {
|
||||
location <5, 0, 0>
|
||||
look_at <0, 0, 0>
|
||||
angle 40
|
||||
orthographic
|
||||
|
||||
}
|
||||
#end
|
||||
|
||||
#if (Camera_Persp)
|
||||
camera {
|
||||
location <5, 4, 3>
|
||||
look_at <0, 0, 0>
|
||||
angle 40
|
||||
|
||||
}
|
||||
#end
|
||||
|
||||
|
||||
object {
|
||||
buckyball
|
||||
}
|
||||
|
||||
|
||||
#if (1)
|
||||
plane {
|
||||
<1, 0, 0>, -10
|
||||
pigment {
|
||||
checker color White*0.7, color White*0.5
|
||||
}
|
||||
}
|
||||
plane {
|
||||
<0, 1, 0>, -10
|
||||
pigment {
|
||||
checker color White*0.7, color White*0.5
|
||||
}
|
||||
}
|
||||
plane {
|
||||
<0, 0, 1>, -10
|
||||
pigment {
|
||||
checker color White*0.7, color White*0.5
|
||||
}
|
||||
}
|
||||
#end
|
|
@ -1,27 +0,0 @@
|
|||
# what's where?
|
||||
include GNUmakevars
|
||||
|
||||
|
||||
all: \
|
||||
menger.png \
|
||||
|
||||
|
||||
|
||||
%.png: %.pov
|
||||
$(POVRAY) +L$(POVINC) +V -I$< +FN
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
|
||||
menger.png: menger.pov
|
||||
|
||||
|
||||
%.gif: %.ppm
|
||||
ppmquant 256 $< | ppmtogif > $@
|
||||
|
||||
%.jpg: %.ppm
|
||||
cjpeg -sample 1x1,1x1,1x1 $< > $@
|
||||
|
||||
www/%: %
|
||||
cp $< $@
|
|
@ -1,85 +0,0 @@
|
|||
#include "colors.inc"
|
||||
#include "glass.inc"
|
||||
|
||||
#declare Eps = 1E-6;
|
||||
|
||||
#macro menger_level(C1, C2, Lev)
|
||||
#if (Lev > 0)
|
||||
#local dx = 0;
|
||||
#while (dx < 3)
|
||||
#local dy = 0;
|
||||
#while (dy < 3)
|
||||
#local dz = 0;
|
||||
#while (dz < 3)
|
||||
|
||||
#if ((dx = 1) + (dy = 1) + (dz = 1) < 2)
|
||||
|
||||
menger_level(<C1.x + (C2.x - C1.x)*dx/3,
|
||||
C1.y + (C2.y - C1.y)*dy/3,
|
||||
C1.z + (C2.z - C1.z)*dz/3>,
|
||||
<C1.x + (C2.x - C1.x)*(dx+1)/3,
|
||||
C1.y + (C2.y - C1.y)*(dy+1)/3,
|
||||
C1.z + (C2.z - C1.z)*(dz+1)/3>,
|
||||
Lev-1)
|
||||
|
||||
#end
|
||||
|
||||
#local dz = dz + 1;
|
||||
#end
|
||||
|
||||
#local dy = dy + 1;
|
||||
#end
|
||||
|
||||
#local dx = dx + 1;
|
||||
#end
|
||||
#else
|
||||
box {
|
||||
C1 + Eps, C2 - Eps
|
||||
}
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
union {
|
||||
menger_level(<-1, -1, -1>, <1, 1, 1>, 3)
|
||||
// texture { pigment { color rgb <1, 1, 1> }}
|
||||
texture {
|
||||
finish { F_Glass4 }
|
||||
pigment { color rgbf <0.8, 0.6, 0.6, 0.75> }
|
||||
}
|
||||
interior {
|
||||
ior 1.5
|
||||
caustics 1.0
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
max_trace_level 15
|
||||
}
|
||||
|
||||
light_source {
|
||||
<2000, 3000, 1000>
|
||||
color White
|
||||
}
|
||||
|
||||
|
||||
camera {
|
||||
location <5, 4, 3>
|
||||
look_at <0, 0, 0>
|
||||
angle 40
|
||||
|
||||
}
|
||||
|
||||
plane {
|
||||
<0, 1, 0>, -1
|
||||
pigment {
|
||||
hexagon
|
||||
pigment { color <1, 0.5, 0.5> }
|
||||
pigment { color <0.5, 1, 0.5> }
|
||||
pigment { color <0.5, 0.5, 1> }
|
||||
scale 0.1
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
+A
|
||||
+Q9
|
||||
+HTP
|
||||
+fp +w800 +h600
|
||||
display_gamma = 2.2
|
|
@ -1,27 +0,0 @@
|
|||
# what's where?
|
||||
include GNUmakevars
|
||||
|
||||
|
||||
all: \
|
||||
test-glas.jpg \
|
||||
|
||||
|
||||
|
||||
%.ppm: %.pov
|
||||
$(POVRAY) +L$(POVINC) +V -I$< +FP
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
|
||||
test-glas.ppm: test-glas.pov glas.pov
|
||||
|
||||
|
||||
%.gif: %.ppm
|
||||
ppmquant 256 $< | ppmtogif > $@
|
||||
|
||||
%.jpg: %.ppm
|
||||
cjpeg $< > $@
|
||||
|
||||
www/%: %
|
||||
cp $< $@
|
|
@ -1,44 +0,0 @@
|
|||
#include "glass.inc"
|
||||
|
||||
#declare glas =
|
||||
union {
|
||||
merge {
|
||||
difference {
|
||||
cylinder {
|
||||
<0, 0, 0>, <0, 20, 0>, 3
|
||||
}
|
||||
cylinder {
|
||||
<0, 1, 0>, <0, 21, 0>, 2.8
|
||||
}
|
||||
}
|
||||
torus {
|
||||
2.9, 0.1
|
||||
translate <0, 20, 0>
|
||||
}
|
||||
//texture {T_Glass3 }
|
||||
texture {T_Old_Glass }
|
||||
interior {
|
||||
ior 1.5
|
||||
caustics 1.0
|
||||
}
|
||||
|
||||
}
|
||||
cylinder {
|
||||
<0, 1, 0> <0, 10, 0>, 2.8
|
||||
texture {
|
||||
pigment {
|
||||
rgbf <1, 1.0, 1.0, 0.0>
|
||||
}
|
||||
finish {
|
||||
reflection 0.3
|
||||
caustics 1.0
|
||||
}
|
||||
}
|
||||
interior {
|
||||
ior 1.33
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
+A
|
||||
+QR
|
||||
+HTP
|
||||
+fp +w400 +h300
|
||||
display_gamma = 2.2
|
|
@ -1,66 +0,0 @@
|
|||
#include "colors.inc"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
}
|
||||
|
||||
light_source {
|
||||
<2000, 2000, 2000>
|
||||
color White
|
||||
}
|
||||
|
||||
|
||||
#declare Camera_Totale = 1;
|
||||
//#declare Camera_Frosch = 1;
|
||||
//#declare Camera_Triebwerk = 1;
|
||||
//#declare Camera_Pol = 1;
|
||||
|
||||
#ifdef (Camera_Frosch)
|
||||
camera {
|
||||
location <0, 2, 40>
|
||||
look_at <0, 8, 0>
|
||||
angle 40
|
||||
}
|
||||
#end
|
||||
|
||||
#ifdef (Camera_Pol)
|
||||
camera {
|
||||
location <1, 4700, 0>
|
||||
look_at <0, 1800, 0>
|
||||
angle 40
|
||||
}
|
||||
#end
|
||||
|
||||
#ifdef (Camera_Triebwerk)
|
||||
camera {
|
||||
location <1650, 1700, 0>
|
||||
look_at <650, 1500, 0>
|
||||
}
|
||||
#end
|
||||
|
||||
#ifdef (Camera_Totale)
|
||||
camera {
|
||||
location <20, 30, -40>
|
||||
look_at <0, 10, 0>
|
||||
angle 40
|
||||
|
||||
}
|
||||
#end
|
||||
|
||||
#include "glas.pov"
|
||||
|
||||
object {
|
||||
glas
|
||||
}
|
||||
|
||||
|
||||
#if (1)
|
||||
background { color rgb<0.2, 0.4, 0.8> }
|
||||
plane {
|
||||
<0, 1, 0>, 0
|
||||
pigment {
|
||||
checker color White*0.7, color White*0.5
|
||||
}
|
||||
}
|
||||
#end
|
|
@ -1,19 +0,0 @@
|
|||
include GNUmakevars
|
||||
|
||||
all: \
|
||||
test-kopf.ppm \
|
||||
test-hand.ppm \
|
||||
test-torso.ppm \
|
||||
test-mensch.ppm \
|
||||
|
||||
|
||||
%.ppm: %.pov
|
||||
$(POVRAY) +V -I$< +L$(POVINC) +FP
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
test-kopf.ppm: test-kopf.pov kopf.pov
|
||||
test-hand.ppm: test-hand.pov hand.pov
|
||||
test-torso.ppm: test-torso.pov torso.pov
|
||||
test-mensch.ppm: test-mensch.pov mensch.pov bein.inc
|
113
mensch/bein.inc
|
@ -1,113 +0,0 @@
|
|||
// backen
|
||||
sphere {
|
||||
<0, 0, 0>
|
||||
1/BR
|
||||
BS
|
||||
scale <R_AB_X, R_AB_Y, R_AB_Z>
|
||||
translate <K_AB_X, K_AB_Y, K_AB_Z>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
|
||||
// oberschenkel
|
||||
cylinder {
|
||||
<0, 0, 0>
|
||||
<0, -L_OS, 0>
|
||||
R_OK/BR
|
||||
BS
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
sphere {
|
||||
<0, 0, 0>
|
||||
1/BR
|
||||
BS
|
||||
scale <R_OS, -L_OS/2, R_OS>
|
||||
translate <0, -L_OS/2, 0>
|
||||
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
|
||||
// knie
|
||||
sphere {
|
||||
<0, 0, 0>
|
||||
1/BR,
|
||||
BS
|
||||
scale <R_K_X, R_K_Y, R_K_Z>
|
||||
translate <0, 0, -R_OK>
|
||||
rotate <A_US_X/2, 0, 0>
|
||||
rotate <0, A_US_Y/2, 0>
|
||||
rotate <0, 0, A_US_Z/2>
|
||||
translate <0, -L_OS, 0>
|
||||
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
|
||||
// unterschenkel
|
||||
cylinder {
|
||||
<0, 0, 0>
|
||||
<0, -L_US, 0>
|
||||
R_UK/BR
|
||||
BS
|
||||
rotate <A_US_X, 0, 0>
|
||||
rotate <0, A_US_Y, 0>
|
||||
rotate <0, 0, A_US_Z>
|
||||
translate <0, -L_OS, 0>
|
||||
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
sphere {
|
||||
<0, 0, 0>
|
||||
1/BR
|
||||
BS
|
||||
scale <0.070, 0.100, 0.050>
|
||||
translate <0, -0.100, 0.030>
|
||||
rotate <A_US_X, 0, 0>
|
||||
rotate <0, A_US_Y, 0>
|
||||
rotate <0, 0, A_US_Z>
|
||||
translate <0, -L_OS, 0>
|
||||
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
|
||||
// fuß
|
||||
cylinder {
|
||||
<0, H_FERSE, L_FERSE>
|
||||
<0, H_MFUSS, -L_MFUSS>
|
||||
R_FERSE/BR
|
||||
BS
|
||||
rotate <A_FUSS_X, 0, 0>
|
||||
rotate <0, A_FUSS_Y, 0>
|
||||
rotate <0, 0, A_FUSS_Z>
|
||||
translate <0, -L_US, 0>
|
||||
|
||||
rotate <A_US_X, 0, 0>
|
||||
rotate <0, A_US_Y, 0>
|
||||
rotate <0, 0, A_US_Z>
|
||||
translate <0, -L_OS, 0>
|
||||
|
||||
rotate <A_OS_X, 0, 0>
|
||||
rotate <0, A_OS_Y, 0>
|
||||
rotate <0, 0, A_OS_Z>
|
||||
translate <R_BECKEN, 0, 0>
|
||||
scale <LR, 1, 1>
|
||||
}
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
// Mensch
|
||||
// Bounding-Box: <-0.50, 0, -0.20>, <0.50, 1.75, 0.20>
|
||||
// Blickrichtung -z
|
||||
|
||||
#declare BR = .65
|
||||
#declare BS = 3
|
||||
#declare BD = BS*pow((1-pow(BR,2)),2)
|
||||
|
||||
#declare R_BECKEN = 0.100
|
||||
#declare H_BECKEN = 0.800
|
||||
#declare R_AB_X = 0.100
|
||||
#declare R_AB_Y = 0.100
|
||||
#declare R_AB_Z = 0.070
|
||||
#declare K_AB_X = 0.080
|
||||
#declare K_AB_Y = 0.030
|
||||
#declare K_AB_Z = 0.020
|
||||
#declare L_OS = 0.400
|
||||
#declare R_OS = 0.080
|
||||
#declare R_OK = 0.040
|
||||
#declare A_OS_X = 0
|
||||
#declare A_OS_Y = 0
|
||||
#declare A_OS_Z = 0
|
||||
#declare R_K_X = 0.020
|
||||
#declare R_K_Y = 0.040
|
||||
#declare R_K_Z = 0.020
|
||||
#declare L_US = 0.320
|
||||
#declare R_UK = 0.040
|
||||
#declare A_US_X = -0 // always use negative values!
|
||||
#declare A_US_Y = 0 // should be 0
|
||||
#declare A_US_Z = 0 // should be 0
|
||||
#declare L_FERSE = 0.030
|
||||
#declare H_FERSE = -0.050
|
||||
#declare R_FERSE = 0.030
|
||||
#declare L_MFUSS = 0.140
|
||||
#declare H_MFUSS = -0.060
|
||||
#declare L_ZEHEN = 0.070
|
||||
#declare A_FUSS_X = 0
|
||||
#declare A_FUSS_Y = 0
|
||||
#declare A_FUSS_Z = 0 // should be about 0
|
||||
|
||||
#declare K_WSU_Z = 0.050
|
||||
#declare K_WSO_Z = 0.080
|
||||
#declare K_WSO_Y = 0.350
|
||||
|
||||
#declare K_BU_Z = 0.000
|
||||
#declare K_BO_Z = 0.000
|
||||
#declare K_BO_Y = 0.350
|
||||
#declare R_B_X = 0.100
|
||||
#declare R_B_Z = 0.070
|
||||
|
||||
#declare K_RU_X = 0.050
|
||||
#declare K_RU_Y = 0.100
|
||||
#declare K_RU_Z = 0.000
|
||||
#declare K_RO_X = 0.130
|
||||
#declare K_RO_Y = 0.450
|
||||
#declare K_RO_Z = 0.050
|
||||
#declare R_R_X = 0.080
|
||||
#declare R_R_Y = 0.020
|
||||
#declare R_R_Z = 0.060
|
||||
#declare A_R_X = -5
|
||||
#declare A_R_Z = 10
|
||||
|
||||
#declare R_N_X = 0.200
|
||||
#declare R_N_Y = 0.040
|
||||
#declare R_N_Z = 0.050
|
||||
#declare K_N_Y = 0.430
|
||||
#declare K_N_Z = 0.040
|
||||
|
||||
#declare K_HU_X = 0.000
|
||||
#declare K_HU_Y = 0.450
|
||||
#declare K_HU_Z = 0.050
|
||||
#declare K_HO_X = 0.000
|
||||
#declare K_HO_Y = 0.550
|
||||
#declare K_HO_Z = 0.050
|
||||
#declare R_H_X = 0.050
|
||||
#declare R_H_Y = 0.050
|
||||
#declare R_H_Z = 0.060
|
||||
#declare A_H_X = 0
|
||||
#declare A_H_Z = 0
|
||||
|
||||
|
||||
#declare mensch =
|
||||
blob {
|
||||
threshold BD
|
||||
|
||||
|
||||
// linke seite
|
||||
#declare LR = 1
|
||||
#include "bein.inc"
|
||||
|
||||
// rechte seite
|
||||
#declare LR = -1
|
||||
#include "bein.inc"
|
||||
|
||||
|
||||
/*
|
||||
// wirbelsäule
|
||||
cylinder {
|
||||
<0, 0, K_WSU_Z>
|
||||
<0, K_WSO_Y, K_WSO_Z>
|
||||
0.02/BR
|
||||
BS
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// bauch
|
||||
cylinder {
|
||||
<0, 0, K_BU_Z>
|
||||
<0, K_BO_Y, K_BO_Z>
|
||||
R_B_Z/BR
|
||||
BS
|
||||
scale <R_B_X/R_B_Z, 1, 1>
|
||||
}
|
||||
|
||||
// rücken
|
||||
cylinder {
|
||||
<-0, K_RU_Y, 0>
|
||||
<-0, K_RO_Y, 0>
|
||||
R_R_Y/BR
|
||||
BS
|
||||
scale <R_R_X/R_R_Y, R_R_Y/R_R_Y, R_R_Z/R_R_Y>
|
||||
rotate <-A_R_X, 0>
|
||||
rotate <0, 0, -A_R_Z>
|
||||
translate <+K_RU_X, 0, K_RU_Z>
|
||||
}
|
||||
cylinder {
|
||||
<-0, K_RU_Y, 0>
|
||||
<-0, K_RO_Y, 0>
|
||||
R_R_Y/BR
|
||||
BS
|
||||
scale <R_R_X/R_R_Y, R_R_Y/R_R_Y, R_R_Z/R_R_Y>
|
||||
rotate <-A_R_X, 0>
|
||||
rotate <0, 0, A_R_Z>
|
||||
translate <-K_RU_X, 0, K_RU_Z>
|
||||
}
|
||||
|
||||
#if (1)
|
||||
// nacken
|
||||
sphere {
|
||||
<0, 0, 0>
|
||||
1/BR
|
||||
BS
|
||||
scale <R_N_X, R_N_Y, R_N_Z>
|
||||
translate <0, K_N_Y, K_N_Z>
|
||||
}
|
||||
#end
|
||||
|
||||
// hals
|
||||
cylinder {
|
||||
<-0, K_HU_Y, 0>
|
||||
<-0, K_HO_Y, 0>
|
||||
R_H_Y/BR
|
||||
BS
|
||||
scale <R_H_X/R_H_Y, R_H_Y/R_H_Y, R_H_Z/R_H_Y>
|
||||
rotate <-A_H_X, 0>
|
||||
rotate <0, 0, A_H_Z>
|
||||
translate <-K_HU_X, 0, K_HU_Z>
|
||||
texture { pigment { color Red } }
|
||||
}
|
||||
|
||||
texture { pigment { color White } }
|
||||
translate <0, H_BECKEN, 0>
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
#include "colors.inc"
|
||||
#include "shapes.inc"
|
||||
#include "textures.inc"
|
||||
#include "metals.inc"
|
||||
#include "stones.inc"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
}
|
||||
light_source {
|
||||
<-200, 200, -200>
|
||||
color White
|
||||
}
|
||||
light_source {
|
||||
<200, 200, -200>
|
||||
color Red
|
||||
}
|
||||
light_source {
|
||||
<200, 200, 200>
|
||||
color Green
|
||||
}
|
||||
light_source {
|
||||
<-200, 200, 200>
|
||||
color Blue
|
||||
}
|
||||
camera {
|
||||
location <-0.5, 0, 0.0>
|
||||
look_at <-0, 0, 0>
|
||||
rotate <0, 30*clock, 0>
|
||||
}
|
||||
|
||||
#include "kopf.pov"
|
||||
|
||||
object { kopf }
|
|
@ -1,38 +0,0 @@
|
|||
#include "colors.inc"
|
||||
#include "shapes.inc"
|
||||
#include "textures.inc"
|
||||
#include "metals.inc"
|
||||
#include "stones.inc"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
}
|
||||
light_source {
|
||||
<-200, 200, -200>
|
||||
color White
|
||||
}
|
||||
|
||||
camera {
|
||||
location <-2, 1.7, 2>
|
||||
look_at <-0, 0.9, 0>
|
||||
rotate <0, 30*clock, 0>
|
||||
angle 45
|
||||
}
|
||||
|
||||
#include "mensch.pov"
|
||||
|
||||
object { mensch }
|
||||
|
||||
plane {
|
||||
<0, 1, 0>
|
||||
0
|
||||
texture {
|
||||
pigment {
|
||||
checker
|
||||
color <0.5, 0.5, 1>
|
||||
color White
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
# what's where?
|
||||
include GNUmakevars
|
||||
|
||||
|
||||
all: \
|
||||
test-ag-schacht.png \
|
||||
|
||||
|
||||
%.ppm: %.pov
|
||||
$(POVRAY) +W$(WIDTH) +H$(HEIGHT) +V -I$< +L$(POVINC) +L../../lib/ +D +FP
|
||||
|
||||
%.png: %.pov
|
||||
$(POVRAY) +V -I$< +L$(POVINC) +L../../lib/ +D +FN
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
|
||||
|
||||
test-ag-schacht.png: test-ag-schacht.pov \
|
||||
ag-schacht.pov
|
||||
|
||||
|
||||
%.gif: %.ppm
|
||||
ppmquant 256 $< | ppmtogif > $@
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
$Id: T_arkonstahl.pov,v 1.1 2000/06/28 22:13:00 hjp Exp $
|
||||
|
||||
Textur für Arkonstahl.
|
||||
|
||||
Abgeleitet von Terkonit-Textur von
|
||||
Harald Ottacher
|
||||
ottacher@iwf.tu-graz.ac.at
|
||||
http://www.hjp.at/pr/3d/kr100/
|
||||
|
||||
*/
|
||||
#declare T_arkonstahl =
|
||||
texture {
|
||||
pigment { color red 0.4 green 0.4 blue 0.8}
|
||||
finish {
|
||||
metallic
|
||||
ambient 0.0
|
||||
diffuse 0.7
|
||||
brilliance 1
|
||||
reflection 0.1
|
||||
specular 0.7
|
||||
roughness 1/60
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,141 +0,0 @@
|
|||
#include "T_arkonstahl.pov"
|
||||
#include "section.povinc"
|
||||
|
||||
#declare RHA = 750;
|
||||
#declare RHI = 745;
|
||||
#declare RAG = 5;
|
||||
#declare DAG = 0.2;
|
||||
#declare D = 1;
|
||||
#declare Eps = 1E-6;
|
||||
|
||||
#declare HLeucht = 3;
|
||||
#declare HLeuchtKap = 0.2;
|
||||
#declare RLeucht = 0.04;
|
||||
|
||||
|
||||
#declare ag_schacht =
|
||||
union {
|
||||
difference {
|
||||
sphere {
|
||||
<0, 0, 0>, RHA
|
||||
}
|
||||
sphere {
|
||||
<0, 0, 0>, RHI
|
||||
}
|
||||
texture { T_arkonstahl }
|
||||
}
|
||||
|
||||
#local A = 0;
|
||||
#while (A < 360)
|
||||
object {
|
||||
section (
|
||||
difference {
|
||||
cylinder {
|
||||
<0, -RHA, 0>,
|
||||
<0, RHA, 0>,
|
||||
RAG + DAG
|
||||
}
|
||||
cylinder {
|
||||
<0, -(RHA+Eps), 0>,
|
||||
<0, RHA+Eps, 0>,
|
||||
RAG
|
||||
}
|
||||
}
|
||||
A-10, A+10
|
||||
)
|
||||
texture { T_arkonstahl }
|
||||
}
|
||||
#local A = A + 60;
|
||||
#end
|
||||
#local H = 700;
|
||||
|
||||
#while (H < RHA)
|
||||
#local R = sqrt(RHA*RHA - H * H);
|
||||
union {
|
||||
difference {
|
||||
cylinder {
|
||||
<0, H - D/2, 0>,
|
||||
<0, H + D/2, 0>,
|
||||
R
|
||||
}
|
||||
cylinder {
|
||||
<0, H - D/2 - Eps, 0>,
|
||||
<0, H + D/2 + Eps, 0>,
|
||||
RAG
|
||||
}
|
||||
texture { T_arkonstahl }
|
||||
|
||||
}
|
||||
#local A = 0;
|
||||
#while (A < 360)
|
||||
union {
|
||||
union {
|
||||
cylinder {
|
||||
<0, H - HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
<0, H - HLeucht/2 - (HLeuchtKap - RLeucht/2) , RAG - RLeucht * 1.5>,
|
||||
RLeucht
|
||||
}
|
||||
cylinder {
|
||||
<0, H - HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
<0, H - HLeucht/2 - HLeuchtKap , RAG - RLeucht * 1.5>,
|
||||
RLeucht/2
|
||||
}
|
||||
torus {
|
||||
RLeucht/2, RLeucht/2
|
||||
translate <0, H - HLeucht/2 - (HLeuchtKap - RLeucht/2) , RAG - RLeucht * 1.5>
|
||||
}
|
||||
cylinder {
|
||||
<0, HLeucht/2 - HLeuchtKap/2, RAG - RLeucht * 1.5>,
|
||||
<0, HLeucht/2 - HLeuchtKap/2, RAG>,
|
||||
RLeucht
|
||||
|
||||
}
|
||||
texture { T_arkonstahl }
|
||||
}
|
||||
union {
|
||||
cylinder {
|
||||
<0, H + HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
<0, H + HLeucht/2 + (HLeuchtKap - RLeucht/2) , RAG - RLeucht * 1.5>,
|
||||
RLeucht
|
||||
}
|
||||
cylinder {
|
||||
<0, H + HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
<0, H + HLeucht/2 + HLeuchtKap , RAG - RLeucht * 1.5>,
|
||||
RLeucht/2
|
||||
}
|
||||
torus {
|
||||
RLeucht/2, RLeucht/2
|
||||
translate <0, H + HLeucht/2 + (HLeuchtKap - RLeucht/2) , RAG - RLeucht * 1.5>
|
||||
}
|
||||
cylinder {
|
||||
<0, HLeucht/2 + HLeuchtKap/2, RAG - RLeucht * 1.5>,
|
||||
<0, HLeucht/2 + HLeuchtKap/2, RAG>,
|
||||
RLeucht
|
||||
|
||||
}
|
||||
texture { T_arkonstahl }
|
||||
}
|
||||
cylinder {
|
||||
<0, H - HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
<0, H + HLeucht/2, RAG - RLeucht * 1.5>,
|
||||
RLeucht
|
||||
texture {
|
||||
pigment {
|
||||
color <1-sin(radians(A))*0.2,
|
||||
1-sin(radians(A+120))*0.2,
|
||||
1-sin(radians(A+240))*0.2>
|
||||
}
|
||||
finish {
|
||||
ambient 16
|
||||
}
|
||||
}
|
||||
}
|
||||
rotate <0, A, 0>
|
||||
}
|
||||
#local A = A + 60;
|
||||
#end
|
||||
}
|
||||
#local H = H + 5;
|
||||
#end
|
||||
}
|
||||
|
Before Width: | Height: | Size: 56 KiB |
|
@ -1,6 +0,0 @@
|
|||
+MB5
|
||||
+QR
|
||||
-A
|
||||
+HTN
|
||||
+fp +w640 +h480 +d1
|
||||
display_gamma = 2.2
|
Before Width: | Height: | Size: 151 KiB |
|
@ -1,39 +0,0 @@
|
|||
#version unofficial MegaPov 0.5;
|
||||
#include "colors.inc"
|
||||
#include "shapes.inc"
|
||||
#include "textures.inc"
|
||||
#include "metals.inc"
|
||||
#include "stones.inc"
|
||||
|
||||
#include "ag-schacht.pov"
|
||||
|
||||
|
||||
#default {finish {ambient 0.1 diffuse 0.3 brilliance 0}}
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.1, 0.1, 0.1>
|
||||
radiosity {
|
||||
pretrace_start 0.04
|
||||
pretrace_end 0.005
|
||||
count 300
|
||||
recursion_limit 3
|
||||
nearest_count 10
|
||||
error_bound 0.3
|
||||
low_error_factor 1
|
||||
//adc_bailout 1
|
||||
}
|
||||
}
|
||||
|
||||
#local CP = <0, 740+D+1.7, RAG*0.8>;
|
||||
camera {
|
||||
location CP
|
||||
look_at <-0, 0, 0>
|
||||
angle 32
|
||||
}
|
||||
|
||||
object {
|
||||
ag_schacht
|
||||
}
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# what's where?
|
||||
include GNUmakevars
|
||||
|
||||
|
||||
all: \
|
||||
einparken.png \
|
||||
|
||||
%.jpg: %.png
|
||||
cjpeg $< > $@
|
||||
|
||||
%.png: %.pov
|
||||
$(POVRAY) +L$(POVINC) +V -I$< +FN
|
||||
|
||||
%.pov: make%
|
||||
$< > $@
|
||||
|
||||
einparken.png: einparken.pov ../sol/sz.pov
|
||||
|
Before Width: | Height: | Size: 406 KiB |
|
@ -1,69 +0,0 @@
|
|||
#include "colors.inc"
|
||||
#include "shapes.inc"
|
||||
#include "textures.inc"
|
||||
#include "metals.inc"
|
||||
#include "stones.inc"
|
||||
|
||||
global_settings {
|
||||
assumed_gamma 1.0
|
||||
ambient_light rgb<0.5, 0.5, 0.5>
|
||||
}
|
||||
background { color rgb<0.2, 0.4, 0.8> }
|
||||
light_source {
|
||||
<200000, 200000, 200000>
|
||||
color White
|
||||
}
|
||||
|
||||
#declare Camera_Totale = 1;
|
||||
|
||||
#ifdef (Camera_Triebwerk)
|
||||
camera {
|
||||
location <1650, 1700, 0>
|
||||
look_at <1250, 1300, 0>
|
||||
}
|
||||
#end
|
||||
|
||||
#ifdef (Camera_Totale)
|
||||
camera {
|
||||
angle 40
|
||||
location <15000, 5000, 5000>
|
||||
look_at <0, 1300, 0>
|
||||
}
|
||||
#end
|
||||
|
||||
#declare Landestuetzen_ausgefahren = 1;
|
||||
|
||||
#include "sz.pov"
|
||||
|
||||
object {
|
||||
SZ
|
||||
rotate <180, 0, 0>
|
||||
translate <0, 1250, 0>
|
||||
}
|
||||
|
||||
#local X = -5;
|
||||
#while (X <= 5)
|
||||
#local Z = -5;
|
||||
#while (Z <= 5)
|
||||
|
||||
#if (X != 0 | Z != 0)
|
||||
object {
|
||||
SZ
|
||||
translate <X*4000, 1280, Z*4000>
|
||||
}
|
||||
#end
|
||||
|
||||
#local Z = Z + 1;
|
||||
#end
|
||||
|
||||
#local X = X + 1;
|
||||
#end
|
||||
|
||||
|
||||
plane {
|
||||
<0, 1, 0>, 0.3
|
||||
pigment {
|
||||
checker color White*0.7, color White*0.5
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
+HTP
|
||||
+fp +w800 +h600
|
||||
display_gamma = 2.2
|
||||
+L../roboter
|
||||
+L../../blbman40
|
||||
+L../../galaxy
|
||||
+L../sol
|
||||
+D
|
||||
+QR
|
|
@ -1,2 +0,0 @@
|
|||
*.ppm
|
||||
*.jpg
|
|
@ -1,32 +0,0 @@
|
|||
version 5.0
|
||||
set nocompatible
|
||||
let cpo_save=&cpo
|
||||
set cpo=B
|
||||
map! <xHome> <Home>
|
||||
map! <xEnd> <End>
|
||||
map! <S-xF4> <S-F4>
|
||||
map! <S-xF3> <S-F3>
|
||||
map! <S-xF2> <S-F2>
|
||||
map! <S-xF1> <S-F1>
|
||||
map! <xF4> <F4>
|
||||
map! <xF3> <F3>
|
||||
map! <xF2> <F2>
|
||||
map! <xF1> <F1>
|
||||
map <xHome> <Home>
|
||||
map <xEnd> <End>
|
||||
map <S-xF4> <S-F4>
|
||||
map <S-xF3> <S-F3>
|
||||
map <S-xF2> <S-F2>
|
||||
map <S-xF1> <S-F1>
|
||||
map <xF4> <F4>
|
||||
map <xF3> <F3>
|
||||
map <xF2> <F2>
|
||||
map <xF1> <F1>
|
||||
let &cpo=cpo_save
|
||||
unlet cpo_save
|
||||
set autoindent
|
||||
set exrc
|
||||
set number
|
||||
set shiftwidth=4
|
||||
set showmatch
|
||||
set nowrap
|
Before Width: | Height: | Size: 45 B |
Before Width: | Height: | Size: 73 B |
Before Width: | Height: | Size: 45 B |
Before Width: | Height: | Size: 89 B |