Add initial prototype.

This commit is contained in:
Rod Kay
2022-07-31 17:34:54 +10:00
commit 54a53b2ac0
1421 changed files with 358874 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -0,0 +1,75 @@
# Blender v2.58 (sub 0) OBJ File: '619.blend'
# www.blender.org
mtllib button.mtl
o Mesh_Cube.001
v -0.5 0.5 1.093806
v -0.5 0.5 1.093806
v -0.5 0.5 1.206992
v -0.5 0.5 1.093806
v -0.5 0.5 1.093806
v 0.5 -0.5 1.093806
v -0.5 -0.5 1.093806
v 0.5 0.5 1.093807
v 0.5 0.5 1.206992
v -0.5 -0.5 1.093806
v -0.5 -0.5 1.206992
v 0.5 -0.5 1.093806
v 0.5 -0.5 1.093806
v 0.5 -0.5 1.093806
v 0.5 -0.5 1.206992
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.060926 0.000000
vt 0.899428 -0.000000
vt 0.986771 0.868468
vt 0.036946 0.036946
vt 1.000000 0.100572
vt 1.000000 0.939074
vt 0.934764 0.934764
vt 0.000000 0.036946
vt 0.565930 0.036946
vt 0.565928 0.934763
vt 0.000000 0.934763
vt 0.986772 0.868468
vt 1.000000 0.094340
vt 1.000000 0.880876
vt 0.119123 -0.000001
vt 0.905660 0.000000
vt 0.999999 0.100572
vt 1.000000 0.939077
vt 1.000000 0.036946
vt 1.000000 0.934764
vt 0.939074 1.000000
vt 0.100572 1.000000
vt 0.434073 0.934763
vt 0.434071 0.036946
vt 0.036946 -0.000000
vt 0.934763 -0.000000
vt 0.934763 1.000000
vt 0.036946 1.000000
vn -0.000000 1.000000 0.000001
vn 0.000000 -0.000000 -1.000000
vn -0.707107 -0.000000 0.707107
vn 0.000001 0.000000 -1.000000
vn 0.707105 0.000000 0.707109
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000001
usemtl Material.001
s off
f 1/1/1 2/2/1 3/3/1
f 4/1/1 3/3/1 5/4/1
f 4/1/1 1/2/1 3/3/1
f 7/5/2 1/6/2 6/7/2
f 8/1/1 5/2/1 3/3/1 9/4/1
f 2/8/2 1/9/2 7/10/2 10/11/2
f 3/12/3 2/13/3 10/14/3 11/15/3
f 6/16/2 1/6/2 4/17/2 12/18/2
f 12/19/2 4/20/2 5/21/2 13/22/2
f 8/23/4 14/24/4 13/25/4 5/26/4
f 14/27/5 8/28/5 9/23/5 15/24/5
f 3/29/6 11/30/6 15/31/6 9/32/6
f 6/1/7 12/2/7 15/3/7 11/4/7
f 7/1/7 6/2/7 11/3/7 10/4/7
f 13/1/7 14/2/7 15/3/7 12/4/7

View File

@@ -0,0 +1,473 @@
A brief overview of bone joints follows:
<node layer="L1" sid="MasterFloor" type="JOINT" id="MasterFloor" name="MasterFloor">
<translate sid="translate"> -0.0000 0.0432 -7.4806 </translate>
<node sid="Root" type="JOINT" id="Root" name="Root">
<translate sid="translate"> 0.0000 -0.1259 8.5236 </translate>
<node sid="Hips" type="JOINT" id="Hips" name="Hips">
<translate sid="translate"> 0.0000 -0.0230 0.8049 </translate>
<node sid="UpLeg_L" type="JOINT" id="UpLeg_L" name="UpLeg_L">
<translate sid="translate"> 0.9739 -0.0255 -1.1278 </translate>
<node sid="LoLeg_L" type="JOINT" id="LoLeg_L" name="LoLeg_L">
<translate sid="translate"> -0.1523 -0.0696 -4.1615 </translate>
<node sid="Foot_L" type="JOINT" id="Foot_L" name="Foot_L">
<translate sid="translate"> -0.1247 0.2440 -4.0392 </translate>
<node sid="Toe_L" type="JOINT" id="Toe_L" name="Toe_L">
<translate sid="translate"> 0.0230 -1.1556 -0.6581 </translate>
</node>
</node>
</node>
</node>
<node sid="UpLeg_R" type="JOINT" id="UpLeg_R" name="UpLeg_R">
<translate sid="translate"> -0.9739 -0.0255 -1.1278 </translate>
<node sid="LoLeg_R" type="JOINT" id="LoLeg_R" name="LoLeg_R">
<translate sid="translate"> 0.1523 -0.0696 -4.1615 </translate>
<node sid="Foot_R" type="JOINT" id="Foot_R" name="Foot_R">
<translate sid="translate"> 0.1247 0.2440 -4.0392 </translate>
<node sid="Toe_R" type="JOINT" id="Toe_R" name="Toe_R">
<translate sid="translate"> -0.0230 -1.1556 -0.6581 </translate>
</node>
</node>
</node>
</node>
</node>
<node sid="Spine1" type="JOINT" id="Spine1" name="Spine1">
<translate sid="translate"> 0.0000 -0.0230 0.8049 </translate>
<node sid="Spine2" type="JOINT" id="Spine2" name="Spine2">
<translate sid="translate"> 0.0000 0.3031 1.0547 </translate>
<node sid="Spine3" type="JOINT" id="Spine3" name="Spine3">
<translate sid="translate"> 0.0000 0.6051 1.1926 </translate>
<node sid="Neck" type="JOINT" id="Neck" name="Neck">
<translate sid="translate"> 0.0000 -0.2067 1.8849 </translate>
<node sid="Head" type="JOINT" id="Head" name="Head">
<translate sid="translate"> 0.0000 -0.1187 1.1006 </translate>
<node sid="Jaw" type="JOINT" id="Jaw" name="Jaw">
<translate sid="translate"> 0.0000 -0.4814 0.0431 </translate>
<node sid="TongueBase" type="JOINT" id="TongueBase" name="TongueBase">
<translate sid="translate"> 0.0000 -0.0423 -0.3259 </translate>
<node sid="TongueMid" type="JOINT" id="TongueMid" name="TongueMid">
<translate sid="translate"> 0.0000 -0.2762 0.0587 </translate>
<node sid="TongueTip" type="JOINT" id="TongueTip" name="TongueTip">
<translate sid="translate"> 0.0000 -0.2279 -0.0161 </translate>
</node>
</node>
</node>
</node>
<node sid="Eye_R" type="JOINT" id="Eye_R" name="Eye_R">
<translate sid="translate"> -0.2990 -1.0292 0.4165 </translate>
</node>
<node sid="Eye_L" type="JOINT" id="Eye_L" name="Eye_L">
<translate sid="translate"> 0.2990 -1.0292 0.4165 </translate>
</node>
<node sid="UpLid_R" type="JOINT" id="UpLid_R" name="UpLid_R">
<translate sid="translate"> -0.2990 -1.0292 0.4165 </translate>
</node>
<node sid="LoLid_R" type="JOINT" id="LoLid_R" name="LoLid_R">
<translate sid="translate"> -0.2990 -1.0292 0.4165 </translate>
</node>
<node sid="UpLid_L" type="JOINT" id="UpLid_L" name="UpLid_L">
<translate sid="translate"> 0.2990 -1.0292 0.4165 </translate>
</node>
<node sid="LoLid_L" type="JOINT" id="LoLid_L" name="LoLid_L">
<translate sid="translate"> 0.2990 -1.0292 0.4165 </translate>
</node>
</node>
</node>
<node sid="Clavicle_L" type="JOINT" id="Clavicle_L" name="Clavicle_L">
<translate sid="translate"> 0.2947 -1.0762 1.1652 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="UpArm_L" type="JOINT" id="UpArm_L" name="UpArm_L">
<translate sid="translate"> 1.3995 0.7593 0.0424 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="LoArm_L" type="JOINT" id="LoArm_L" name="LoArm_L">
<translate sid="translate"> 2.3958 -0.0513 -0.1305 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Hand_L" type="JOINT" id="Hand_L" name="Hand_L">
<translate sid="translate"> 2.3059 -0.1267 0.1417 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Wrist-1_L" type="JOINT" id="Wrist-1_L" name="Wrist-1_L">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Palm-2_L" type="JOINT" id="Palm-2_L" name="Palm-2_L">
<translate sid="translate"> 0.2824 -0.1006 -0.1787 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-1_L" type="JOINT" id="Finger-2-1_L" name="Finger-2-1_L">
<translate sid="translate"> 0.4847 -0.2007 0.2459 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-2_L" type="JOINT" id="Finger-2-2_L" name="Finger-2-2_L">
<translate sid="translate"> 0.3571 -0.0416 -0.0491 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-3_L" type="JOINT" id="Finger-2-3_L" name="Finger-2-3_L">
<translate sid="translate"> 0.2663 -0.0291 -0.0153 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
<node sid="Palm-3_L" type="JOINT" id="Palm-3_L" name="Palm-3_L">
<translate sid="translate"> 0.2824 -0.1006 -0.1787 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-1_L" type="JOINT" id="Finger-3-1_L" name="Finger-3-1_L">
<translate sid="translate"> 0.5167 0.0092 0.2613 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-2_L" type="JOINT" id="Finger-3-2_L" name="Finger-3-2_L">
<translate sid="translate"> 0.3783 -0.0072 0.0061 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-3_L" type="JOINT" id="Finger-3-3_L" name="Finger-3-3_L">
<translate sid="translate"> 0.3510 -0.0128 -0.0527 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
<node sid="Wrist-2_L" type="JOINT" id="Wrist-2_L" name="Wrist-2_L">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Palm-4_L" type="JOINT" id="Palm-4_L" name="Palm-4_L">
<translate sid="translate"> 0.2877 0.1215 -0.1543 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-1_L" type="JOINT" id="Finger-4-1_L" name="Finger-4-1_L">
<translate sid="translate"> 0.5191 0.0274 0.1788 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-2_L" type="JOINT" id="Finger-4-2_L" name="Finger-4-2_L">
<translate sid="translate"> 0.3004 0.0122 -0.0036 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-3_L" type="JOINT" id="Finger-4-3_L" name="Finger-4-3_L">
<translate sid="translate"> 0.3113 -0.0155 -0.0167 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
<node sid="Palm-5_L" type="JOINT" id="Palm-5_L" name="Palm-5_L">
<translate sid="translate"> 0.2877 0.1215 -0.1543 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-1_L" type="JOINT" id="Finger-5-1_L" name="Finger-5-1_L">
<translate sid="translate"> 0.4320 0.2031 0.1388 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-2_L" type="JOINT" id="Finger-5-2_L" name="Finger-5-2_L">
<translate sid="translate"> 0.3115 0.0540 -0.0610 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-3_L" type="JOINT" id="Finger-5-3_L" name="Finger-5-3_L">
<translate sid="translate"> 0.1858 0.0091 -0.0185 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
<node sid="Palm-1_L" type="JOINT" id="Palm-1_L" name="Palm-1_L">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-1_L" type="JOINT" id="Finger-1-1_L" name="Finger-1-1_L">
<translate sid="translate"> 0.1964 -0.2741 -0.1517 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-2_L" type="JOINT" id="Finger-1-2_L" name="Finger-1-2_L">
<translate sid="translate"> 0.4060 -0.2236 -0.1020 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-3_L" type="JOINT" id="Finger-1-3_L" name="Finger-1-3_L">
<translate sid="translate"> 0.2557 -0.0491 -0.0086 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node sid="Clavicle_R" type="JOINT" id="Clavicle_R" name="Clavicle_R">
<translate sid="translate"> -0.2947 -1.0762 1.1652 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="UpArm_R" type="JOINT" id="UpArm_R" name="UpArm_R">
<translate sid="translate"> -1.3995 0.7593 0.0424 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="LoArm_R" type="JOINT" id="LoArm_R" name="LoArm_R">
<translate sid="translate"> -2.3958 -0.0513 -0.1305 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Hand_R" type="JOINT" id="Hand_R" name="Hand_R">
<translate sid="translate"> -2.3059 -0.1267 0.1417 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Wrist-1_R" type="JOINT" id="Wrist-1_R" name="Wrist-1_R">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Palm-2_R" type="JOINT" id="Palm-2_R" name="Palm-2_R">
<translate sid="translate"> -0.2824 -0.1006 -0.1787 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-1_R" type="JOINT" id="Finger-2-1_R" name="Finger-2-1_R">
<translate sid="translate"> -0.4847 -0.2007 0.2459 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-2_R" type="JOINT" id="Finger-2-2_R" name="Finger-2-2_R">
<translate sid="translate"> -0.3571 -0.0416 -0.0491 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-2-3_R" type="JOINT" id="Finger-2-3_R" name="Finger-2-3_R">
<translate sid="translate"> -0.2663 -0.0291 -0.0153 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
<node sid="Palm-3_R" type="JOINT" id="Palm-3_R" name="Palm-3_R">
<translate sid="translate"> -0.2824 -0.1006 -0.1787 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-1_R" type="JOINT" id="Finger-3-1_R" name="Finger-3-1_R">
<translate sid="translate"> -0.5167 0.0092 0.2613 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-2_R" type="JOINT" id="Finger-3-2_R" name="Finger-3-2_R">
<translate sid="translate"> -0.3783 -0.0072 0.0061 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-3-3_R" type="JOINT" id="Finger-3-3_R" name="Finger-3-3_R">
<translate sid="translate"> -0.3510 -0.0128 -0.0527 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
<node sid="Wrist-2_R" type="JOINT" id="Wrist-2_R" name="Wrist-2_R">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Palm-4_R" type="JOINT" id="Palm-4_R" name="Palm-4_R">
<translate sid="translate"> -0.2877 0.1215 -0.1543 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-1_R" type="JOINT" id="Finger-4-1_R" name="Finger-4-1_R">
<translate sid="translate"> -0.5191 0.0274 0.1788 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-2_R" type="JOINT" id="Finger-4-2_R" name="Finger-4-2_R">
<translate sid="translate"> -0.3004 0.0122 -0.0036 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-4-3_R" type="JOINT" id="Finger-4-3_R" name="Finger-4-3_R">
<translate sid="translate"> -0.3113 -0.0155 -0.0167 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
<node sid="Palm-5_R" type="JOINT" id="Palm-5_R" name="Palm-5_R">
<translate sid="translate"> -0.2877 0.1215 -0.1543 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-1_R" type="JOINT" id="Finger-5-1_R" name="Finger-5-1_R">
<translate sid="translate"> -0.4320 0.2031 0.1388 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-2_R" type="JOINT" id="Finger-5-2_R" name="Finger-5-2_R">
<translate sid="translate"> -0.3115 0.0540 -0.0610 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-5-3_R" type="JOINT" id="Finger-5-3_R" name="Finger-5-3_R">
<translate sid="translate"> -0.1858 0.0091 -0.0185 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
<node sid="Palm-1_R" type="JOINT" id="Palm-1_R" name="Palm-1_R">
<translate sid="translate"> 0.0000 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-1_R" type="JOINT" id="Finger-1-1_R" name="Finger-1-1_R">
<translate sid="translate"> -0.1964 -0.2741 -0.1517 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-2_R" type="JOINT" id="Finger-1-2_R" name="Finger-1-2_R">
<translate sid="translate"> -0.4060 -0.2236 -0.1020 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
<node sid="Finger-1-3_R" type="JOINT" id="Finger-1-3_R" name="Finger-1-3_R">
<translate sid="translate"> -0.2557 -0.0491 -0.0086 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node sid="Wrist_L" type="JOINT" id="Wrist_L" name="Wrist_L">
<translate sid="translate"> 6.3959 0.2643 12.7945 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
<node sid="Wrist_R" type="JOINT" id="Wrist_R" name="Wrist_R">
<translate sid="translate"> -6.3959 0.2643 12.7945 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
<node sid="Ankle_L" type="JOINT" id="Ankle_L" name="Ankle_L">
<translate sid="translate"> 0.6970 -0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
<node sid="Ankle_R" type="JOINT" id="Ankle_R" name="Ankle_R">
<translate sid="translate"> -0.6970 0.0000 0.0000 </translate>
<rotate sid="rotateZ">0 0 1 0.0</rotate>
<rotate sid="rotateY">0 1 0 0.0</rotate>
<rotate sid="rotateX">1 0 0 0.0</rotate>
<scale sid="scale">1.0 1.0 1.0</scale>
</node>
</node>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.55.0 r-UNKNOWN-</authoring_tool>
</contributor>
<created>2010-11-28T13:09:56</created>
<modified>2010-11-28T13:09:56</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_cameras>
<camera id="Camera-camera" name="Camera">
<optics>
<technique_common>
<perspective>
<xfov>49.13434</xfov>
<aspect_ratio>1.777778</aspect_ratio>
<znear>0.099999964237</znear>
<zfar>100</zfar>
</perspective>
</technique_common>
</optics>
</camera>
</library_cameras>
<library_lights>
<light id="Lamp-light" name="Lamp">
<technique_common>
<point>
<color>1 1 1</color>
<constant_attenuation>1</constant_attenuation>
<linear_attenuation>0</linear_attenuation>
<quadratic_attenuation>5.55556e-4</quadratic_attenuation>
</point>
</technique_common>
</light>
</library_lights>
<library_images/>
<library_effects>
<effect id="Material-effect">
<profile_COMMON>
<technique sid="common">
<lambert>
<emission>
<color>0 0 0 1</color>
</emission>
<ambient>
<color>0 0 0 1</color>
</ambient>
<diffuse>
<color>0.6400000453 0.6400000453 0.6400000453 1</color>
</diffuse>
<index_of_refraction>
<float>1</float>
</index_of_refraction>
</lambert>
<extra/>
</technique>
<extra>
<technique profile="GOOGLEEARTH">
<show_double_sided>1</show_double_sided>
</technique>
</extra>
</profile_COMMON>
<extra><technique profile="MAX3D"><double_sided>1</double_sided></technique></extra>
</effect>
</library_effects>
<library_materials>
<material id="Material" name="Material">
<instance_effect url="#Material-effect"/>
</material>
</library_materials>
<library_geometries>
<geometry id="Cube-mesh">
<mesh>
<source id="Cube-mesh-positions">
<float_array id="Cube-mesh-positions-array" count="24">1 0.999999940395 -1 1 -1 -1 -1 -0.999999821186 -1 -0.999999642372 1 -1 1 0.999999463558 1 0.999999344348 -1.000001 1 -1 -0.999999642372 1 -0.999999940395 1 1</float_array>
<technique_common>
<accessor source="#Cube-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube-mesh-normals">
<float_array id="Cube-mesh-normals-array" count="18">0 0 -1 0 0 1 1 -2.83122e-7 0 -2.83122e-7 -1 0 -1 2.23517e-7 -1.3411e-7 2.38419e-7 1 2.08616e-7</float_array>
<technique_common>
<accessor source="#Cube-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube-mesh-vertices">
<input semantic="POSITION" source="#Cube-mesh-positions"/>
</vertices>
<polylist material="Material" count="6">
<input semantic="VERTEX" source="#Cube-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube-mesh-normals" offset="1"/>
<vcount>4 4 4 4 4 4 </vcount>
<p>0 0 1 0 2 0 3 0 4 1 7 1 6 1 5 1 0 2 4 2 5 2 1 2 1 3 5 3 6 3 2 3 2 4 6 4 7 4 3 4 4 5 0 5 3 5 7 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_animations/>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_geometry url="#Cube-mesh">
<bind_material>
<technique_common>
<instance_material symbol="Material" target="#Material"/>
</technique_common>
</bind_material>
</instance_geometry>
</node>
<node id="Lamp" type="NODE">
<translate sid="location">4.076245 1.005454 5.903862</translate>
<rotate sid="rotationZ">0 0 1 106.9363</rotate>
<rotate sid="rotationY">0 1 0 3.163707</rotate>
<rotate sid="rotationX">1 0 0 37.26105</rotate>
<scale sid="scale">1 1 1</scale>
<instance_light url="#Lamp-light"/>
</node>
<node id="Camera" type="NODE">
<translate sid="location">7.481132 -6.50764 5.343665</translate>
<rotate sid="rotationZ">0 0 1 46.69194</rotate>
<rotate sid="rotationY">0 1 0 0.619767916163</rotate>
<rotate sid="rotationX">1 0 0 63.55929</rotate>
<scale sid="scale">1 1 1</scale>
<instance_camera url="#Camera-camera"/>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,774 @@
# Blender v2.63 (sub 0) OBJ File: 'unit_capsule.blend'
# www.blender.org
o Mball_Meta
v -1.800000 0.800320 0.200000
v -1.969880 0.600000 0.200000
v -1.969880 0.600000 -0.200000
v -1.800000 0.800320 -0.200000
v -1.800000 0.600000 -0.557515
v -1.800000 0.557515 -0.600000
v -2.121196 0.200000 -0.200000
v -1.969881 0.200000 -0.600000
v -2.121196 -0.200000 -0.200000
v -1.969881 -0.200000 -0.600000
v -1.800000 -0.557515 -0.600000
v -1.969880 -0.600000 -0.200000
v -1.800000 -0.600000 -0.557515
v -1.800000 -0.800320 -0.200000
v -1.800000 -0.800320 0.200000
v -1.969880 -0.600000 0.200000
v -1.800000 -0.600000 0.557515
v -1.800000 -0.557515 0.600000
v -2.121196 -0.200000 0.200000
v -1.969881 -0.200000 0.600000
v -2.121196 0.200000 0.200000
v -1.969881 0.200000 0.600000
v -1.800000 -0.200000 0.800320
v -1.800000 0.200000 0.800320
v -1.800000 0.557515 0.600000
v -1.773261 0.600000 0.600000
v -1.400000 0.600000 0.895570
v -1.400000 0.364323 1.000000
v -1.516304 0.200000 1.000000
v -1.400000 0.895570 0.600000
v -1.516304 1.000000 0.200000
v -1.400000 1.000000 0.364323
v -1.800000 0.600000 0.557515
v -1.400000 1.070014 0.200000
v -1.516304 1.000000 -0.200000
v -1.400000 1.070014 -0.200000
v -1.400000 1.000000 -0.364323
v -1.000000 1.000000 -0.557515
v -1.000000 1.150200 -0.200000
v -1.400000 0.895570 -0.600000
v -1.000000 0.981045 -0.600000
v -1.400000 0.600000 -0.895570
v -1.000000 0.600000 -0.981045
v -1.400000 0.364323 -1.000000
v -1.000000 0.557515 -1.000000
v -1.400000 0.200000 -1.070014
v -1.000000 0.200000 -1.150200
v -1.400000 -0.200000 -1.070014
v -1.000000 -0.200000 -1.150200
v -1.400000 -0.364323 -1.000000
v -1.000000 -0.557515 -1.000000
v -1.400000 -0.600000 -0.895570
v -1.000000 -0.600000 -0.981045
v -1.400000 -0.895570 -0.600000
v -1.000000 -0.981045 -0.600000
v -1.400000 -1.000000 -0.364323
v -1.000000 -1.000000 -0.557515
v -1.400000 -1.070014 -0.200000
v -1.000000 -1.150200 -0.200000
v -1.400000 -1.070014 0.200000
v -1.000000 -1.150200 0.200000
v -1.400000 -1.000000 0.364323
v -1.000000 -1.000000 0.557515
v -1.400000 -0.895570 0.600000
v -1.000000 -0.981045 0.600000
v -1.400000 -0.600000 0.895570
v -1.000000 -0.600000 0.981045
v -1.400000 -0.364323 1.000000
v -1.000000 -0.557515 1.000000
v -1.400000 -0.200000 1.070014
v -1.000000 -0.200000 1.150200
v -1.400000 0.200000 1.070014
v -1.000000 0.200000 1.150200
v -1.000000 0.557515 1.000000
v -0.600000 0.557515 1.000000
v -0.600000 0.200000 1.150200
v -1.000000 0.600000 0.981045
v -0.600000 0.600000 0.981045
v -1.000000 0.981045 0.600000
v -0.600000 0.981045 0.600000
v -1.000000 1.000000 0.557515
v -0.600000 1.000000 0.557515
v -1.000000 1.150200 0.200000
v -0.600000 1.150200 0.200000
v -0.600000 1.150200 -0.200000
v -0.200000 0.981045 0.600000
v -0.200000 0.600000 0.981045
v 0.200000 0.981045 0.600000
v 0.200000 0.600000 0.981045
v -0.200000 0.557515 1.000000
v 0.200000 0.557515 1.000000
v 0.200000 0.200000 1.150200
v -0.200000 0.200000 1.150200
v -0.200000 -0.200000 1.150200
v 0.200000 -0.200000 1.150200
v -0.200000 -0.557515 1.000000
v 0.200000 -0.557515 1.000000
v 0.200000 -0.600000 0.981045
v -0.200000 -0.600000 0.981045
v -0.200000 -0.981045 0.600000
v 0.200000 -0.981045 0.600000
v 0.200000 -1.000000 0.557515
v -0.200000 -1.000000 0.557515
v 0.600000 -0.981045 0.600000
v 0.600000 -1.000000 0.557515
v 0.200000 -1.150200 0.200000
v 0.600000 -1.150200 0.200000
v 0.600000 -1.150200 -0.200000
v 0.200000 -1.150200 -0.200000
v 0.600000 -1.000000 -0.557515
v 0.200000 -1.000000 -0.557515
v 0.200000 -0.981045 -0.600000
v 0.600000 -0.981045 -0.600000
v 0.600000 -0.600000 -0.981045
v 0.200000 -0.600000 -0.981045
v 0.200000 -0.557515 -1.000000
v 0.600000 -0.557515 -1.000000
v 0.600000 -0.200000 -1.150200
v 0.200000 -0.200000 -1.150200
v 0.600000 0.200000 -1.150200
v 0.200000 0.200000 -1.150200
v 0.200000 0.557515 -1.000000
v 0.600000 0.557515 -1.000000
v 0.600000 0.600000 -0.981045
v 0.200000 0.600000 -0.981045
v 0.200000 0.981045 -0.600000
v 0.600000 0.981045 -0.600000
v 0.600000 1.000000 -0.557515
v 0.200000 1.000000 -0.557515
v 0.200000 1.150200 -0.200000
v 0.600000 1.150200 -0.200000
v 0.200000 1.150200 0.200000
v 0.600000 1.150200 0.200000
v 0.600000 1.000000 0.557515
v 0.200000 1.000000 0.557515
v 0.600000 0.981045 0.600000
v 1.000000 1.000000 0.557515
v 1.000000 0.981045 0.600000
v 1.000000 0.600000 0.981045
v 0.600000 0.600000 0.981045
v 0.600000 0.557515 1.000000
v 1.000000 0.557515 1.000000
v 1.000000 0.200000 1.150200
v 0.600000 0.200000 1.150200
v 0.600000 -0.200000 1.150200
v 1.000000 -0.200000 1.150200
v 0.600000 -0.557515 1.000000
v 1.000000 -0.557515 1.000000
v 1.000000 -0.600000 0.981045
v 0.600000 -0.600000 0.981045
v 1.000000 -0.981045 0.600000
v 1.400000 -0.600000 0.895570
v 1.400000 -0.895570 0.600000
v 1.400000 -1.000000 0.364323
v 1.000000 -1.000000 0.557515
v 1.773261 -0.600000 0.600000
v 1.800000 -0.600000 0.557515
v 1.800000 -0.800320 0.200000
v 1.516304 -1.000000 0.200000
v 1.800000 -0.557515 0.600000
v 1.400000 -0.364323 1.000000
v 1.516304 -0.200000 1.000000
v 1.800000 -0.200000 0.800320
v 1.516304 0.200000 1.000000
v 1.800000 0.200000 0.800320
v 1.400000 0.364323 1.000000
v 1.400000 0.600000 0.895570
v 1.773261 0.600000 0.600000
v 1.800000 0.557515 0.600000
v 1.400000 0.895570 0.600000
v 1.400000 0.200000 1.070014
v 1.969881 0.200000 0.600000
v 1.800000 0.600000 0.557515
v 1.969880 0.600000 0.200000
v 2.121196 0.200000 0.200000
v 1.800000 0.800320 0.200000
v 1.800000 0.800320 -0.200000
v 1.969880 0.600000 -0.200000
v 1.800000 0.600000 -0.557515
v 1.800000 0.557515 -0.600000
v 1.969881 0.200000 -0.600000
v 2.121196 0.200000 -0.200000
v 2.121196 -0.200000 -0.200000
v 1.969881 -0.200000 -0.600000
v 1.800000 -0.557515 -0.600000
v 1.800000 -0.600000 -0.557515
v 1.969880 -0.600000 -0.200000
v 1.800000 -0.800320 -0.200000
v 1.969880 -0.600000 0.200000
v 1.400000 -0.895570 -0.600000
v 1.400000 -1.000000 -0.364323
v 1.516304 -1.000000 -0.200000
v 1.773261 -0.600000 -0.600000
v 1.400000 -1.070014 -0.200000
v 1.000000 -1.150200 -0.200000
v 1.000000 -1.000000 -0.557515
v 1.400000 -0.600000 -0.895570
v 1.400000 -0.364323 -1.000000
v 1.800000 -0.200000 -0.800320
v 1.516304 -0.200000 -1.000000
v 1.800000 0.200000 -0.800320
v 1.516304 0.200000 -1.000000
v 1.400000 0.364323 -1.000000
v 1.773261 0.600000 -0.600000
v 1.400000 0.600000 -0.895570
v 1.400000 0.895570 -0.600000
v 1.400000 0.200000 -1.070014
v 1.400000 -0.200000 -1.070014
v 1.000000 -0.981045 -0.600000
v 1.000000 -0.600000 -0.981045
v 1.516304 1.000000 -0.200000
v 1.400000 1.000000 -0.364323
v 1.400000 1.070014 -0.200000
v 1.400000 1.070014 0.200000
v 1.516304 1.000000 0.200000
v 1.400000 1.000000 0.364323
v 1.000000 1.150200 0.200000
v 1.000000 1.150200 -0.200000
v 1.000000 1.000000 -0.557515
v 1.000000 0.981045 -0.600000
v 1.400000 -0.200000 1.070014
v 1.969881 -0.200000 0.600000
v -0.200000 1.150200 -0.200000
v -0.200000 1.000000 -0.557515
v -0.600000 1.000000 -0.557515
v -0.600000 0.981045 -0.600000
v -0.200000 0.981045 -0.600000
v -0.200000 -0.981045 -0.600000
v -0.200000 -0.600000 -0.981045
v -0.600000 -0.981045 -0.600000
v -0.600000 -0.600000 -0.981045
v -0.600000 -1.000000 -0.557515
v -0.200000 -1.000000 -0.557515
v -0.600000 -1.150200 -0.200000
v -0.200000 -1.150200 -0.200000
v 1.000000 -1.150200 0.200000
v -0.600000 -0.981045 0.600000
v -0.600000 -1.000000 0.557515
v -0.600000 -0.600000 0.981045
v -0.600000 -0.557515 1.000000
v -0.600000 -0.200000 1.150200
v -1.516304 -0.200000 1.000000
v -1.773261 -0.600000 0.600000
v -0.600000 -1.150200 0.200000
v -1.516304 -1.000000 0.200000
v -1.516304 -1.000000 -0.200000
v -1.773261 -0.600000 -0.600000
v -0.600000 -0.557515 -1.000000
v -0.600000 -0.200000 -1.150200
v -0.600000 0.200000 -1.150200
v -0.600000 0.557515 -1.000000
v -0.600000 0.600000 -0.981045
v -1.773261 0.600000 -0.600000
v -1.516304 0.200000 -1.000000
v -1.516304 -0.200000 -1.000000
v -1.800000 -0.200000 -0.800320
v -1.800000 0.200000 -0.800320
v -0.200000 -1.150200 0.200000
v -0.200000 1.150200 0.200000
v -0.200000 1.000000 0.557515
v -0.200000 -0.200000 -1.150200
v -0.200000 0.200000 -1.150200
v -0.200000 -0.557515 -1.000000
v -0.200000 0.557515 -1.000000
v -0.200000 0.600000 -0.981045
v 1.400000 -1.070014 0.200000
v 2.121196 -0.200000 0.200000
v 1.000000 -0.200000 -1.150200
v 1.000000 0.200000 -1.150200
v 1.000000 -0.557515 -1.000000
v 1.000000 0.557515 -1.000000
v 1.000000 0.600000 -0.981045
vn -0.659597 0.728843 0.183477
vn -0.659597 0.728843 -0.183477
vn -0.850337 0.491104 -0.188971
vn -0.847621 0.499496 0.178869
vn -0.732719 0.541581 -0.412000
vn -0.966216 0.182501 -0.181890
vn -0.729942 0.381756 -0.566942
vn -0.850795 0.191351 -0.489364
vn -0.848079 -0.178320 -0.498917
vn -0.966369 -0.181768 -0.181768
vn -0.847621 -0.499496 -0.178869
vn -0.726707 -0.388348 -0.566637
vn -0.719321 -0.561998 -0.408246
vn -0.659597 -0.728843 -0.183477
vn -0.850337 -0.491104 0.188971
vn -0.659597 -0.728843 0.183477
vn -0.732719 -0.541581 0.412000
vn -0.966216 -0.182501 0.181890
vn -0.729942 -0.381756 0.566942
vn -0.850795 -0.191351 0.489364
vn -0.848079 0.178320 0.498917
vn -0.966369 0.181768 0.181768
vn -0.655629 0.191717 0.730308
vn -0.655629 -0.191717 0.730308
vn -0.726707 0.388348 0.566637
vn -0.369396 0.385632 0.845454
vn -0.362957 0.521683 0.772057
vn -0.616260 0.542253 0.571093
vn -0.543168 0.194830 0.816675
vn -0.351543 0.770226 0.532090
vn -0.358592 0.854244 0.376324
vn -0.539201 0.823176 0.177709
vn -0.719321 0.561998 0.408246
vn -0.349284 0.918699 0.184210
vn -0.349284 0.918699 -0.184210
vn -0.539201 0.823176 -0.177709
vn -0.358592 0.854244 -0.376324
vn -0.096133 0.976104 -0.194739
vn -0.094699 0.913083 -0.396558
vn -0.087039 0.824763 -0.558702
vn -0.351543 0.770226 -0.532090
vn -0.087039 0.558702 -0.824763
vn -0.362957 0.521683 -0.772057
vn -0.094699 0.396558 -0.913083
vn -0.369396 0.385632 -0.845454
vn -0.096133 0.194739 -0.976104
vn -0.349284 0.184210 -0.918699
vn -0.096133 -0.194739 -0.976104
vn -0.349284 -0.184210 -0.918699
vn -0.094699 -0.396558 -0.913083
vn -0.369396 -0.385632 -0.845454
vn -0.087039 -0.558702 -0.824763
vn -0.362957 -0.521683 -0.772057
vn -0.087039 -0.824763 -0.558702
vn -0.351543 -0.770226 -0.532090
vn -0.094699 -0.913083 -0.396558
vn -0.358592 -0.854244 -0.376324
vn -0.096133 -0.976104 -0.194739
vn -0.349284 -0.918699 -0.184210
vn -0.096133 -0.976104 0.194739
vn -0.349284 -0.918699 0.184210
vn -0.094699 -0.913083 0.396558
vn -0.358592 -0.854244 0.376324
vn -0.087039 -0.824763 0.558702
vn -0.351543 -0.770226 0.532090
vn -0.087039 -0.558702 0.824763
vn -0.362957 -0.521683 0.772057
vn -0.094699 -0.396558 0.913083
vn -0.369396 -0.385632 0.845454
vn -0.096133 -0.194739 0.976104
vn -0.349284 -0.184210 0.918699
vn -0.096133 0.194739 0.976104
vn -0.349284 0.184210 0.918699
vn -0.094699 0.396558 0.913083
vn 0.000000 0.197546 0.980285
vn 0.000000 0.397382 0.917631
vn 0.000000 0.566698 0.823878
vn -0.087039 0.558702 0.824763
vn 0.000000 0.823878 0.566698
vn -0.087039 0.824763 0.558702
vn 0.000000 0.917631 0.397382
vn -0.094699 0.913083 0.396558
vn 0.000000 0.980285 0.197546
vn -0.096133 0.976104 0.194739
vn 0.000000 0.980285 -0.197546
vn 0.000000 -0.197546 0.980285
vn 0.000000 -0.397382 0.917631
vn 0.000000 -0.566698 0.823878
vn 0.000000 -0.823878 0.566698
vn 0.000000 -0.917631 0.397382
vn 0.000000 -0.980285 0.197546
vn 0.000000 -0.980285 -0.197546
vn 0.000000 -0.917631 -0.397382
vn 0.000000 -0.823878 -0.566698
vn 0.000000 -0.566698 -0.823878
vn 0.000000 -0.397382 -0.917631
vn 0.000000 -0.197546 -0.980285
vn 0.000000 0.197546 -0.980285
vn 0.000000 0.397382 -0.917631
vn 0.000000 0.566698 -0.823878
vn 0.000000 0.823878 -0.566698
vn 0.000000 0.917631 -0.397382
vn 0.087039 0.824763 0.558702
vn 0.094699 0.913083 0.396558
vn 0.087039 0.558702 0.824763
vn 0.094699 0.396558 0.913083
vn 0.096133 0.194739 0.976104
vn 0.096133 -0.194739 0.976104
vn 0.094699 -0.396558 0.913083
vn 0.087039 -0.558702 0.824763
vn 0.087039 -0.824763 0.558702
vn 0.351543 -0.770226 0.532090
vn 0.362957 -0.521683 0.772057
vn 0.094699 -0.913083 0.396558
vn 0.358592 -0.854244 0.376324
vn 0.659597 -0.728843 0.183477
vn 0.719321 -0.561998 0.408246
vn 0.616260 -0.542253 0.571093
vn 0.539201 -0.823176 0.177709
vn 0.726707 -0.388348 0.566637
vn 0.655629 -0.191717 0.730308
vn 0.543168 -0.194830 0.816675
vn 0.369396 -0.385632 0.845454
vn 0.655629 0.191717 0.730308
vn 0.543168 0.194830 0.816675
vn 0.729942 0.381756 0.566942
vn 0.616260 0.542253 0.571093
vn 0.362957 0.521683 0.772057
vn 0.369396 0.385632 0.845454
vn 0.351543 0.770226 0.532090
vn 0.349284 0.184210 0.918699
vn 0.850795 0.191351 0.489364
vn 0.966216 0.182501 0.181890
vn 0.850337 0.491104 0.188971
vn 0.732719 0.541581 0.412000
vn 0.659597 0.728843 0.183477
vn 0.847621 0.499496 -0.178869
vn 0.659597 0.728843 -0.183477
vn 0.719321 0.561998 -0.408246
vn 0.966369 0.181768 -0.181768
vn 0.848079 0.178320 -0.498917
vn 0.726707 0.388348 -0.566637
vn 0.850795 -0.191351 -0.489364
vn 0.966216 -0.182501 -0.181890
vn 0.850337 -0.491104 -0.188971
vn 0.732719 -0.541581 -0.412000
vn 0.729942 -0.381756 -0.566942
vn 0.659597 -0.728843 -0.183477
vn 0.847621 -0.499496 0.178869
vn 0.539201 -0.823176 -0.177709
vn 0.358592 -0.854244 -0.376324
vn 0.351543 -0.770226 -0.532090
vn 0.616260 -0.542253 -0.571093
vn 0.349284 -0.918699 -0.184210
vn 0.094699 -0.913083 -0.396558
vn 0.096133 -0.976104 -0.194739
vn 0.362957 -0.521683 -0.772057
vn 0.369396 -0.385632 -0.845454
vn 0.543168 -0.194830 -0.816675
vn 0.655629 -0.191717 -0.730308
vn 0.543168 0.194830 -0.816675
vn 0.655629 0.191717 -0.730308
vn 0.369396 0.385632 -0.845454
vn 0.362957 0.521683 -0.772057
vn 0.616260 0.542253 -0.571093
vn 0.351543 0.770226 -0.532090
vn 0.349284 0.184210 -0.918699
vn 0.349284 -0.184210 -0.918699
vn 0.087039 -0.558702 -0.824763
vn 0.087039 -0.824763 -0.558702
vn 0.358592 0.854244 -0.376324
vn 0.539201 0.823176 -0.177709
vn 0.349284 0.918699 -0.184210
vn 0.539201 0.823176 0.177709
vn 0.349284 0.918699 0.184210
vn 0.358592 0.854244 0.376324
vn 0.096133 0.976104 0.194739
vn 0.096133 0.976104 -0.194739
vn 0.094699 0.913083 -0.396558
vn 0.087039 0.824763 -0.558702
vn 0.349284 -0.184210 0.918699
vn 0.848079 -0.178320 0.498917
vn 0.096133 -0.976104 0.194739
vn -0.543168 -0.194830 0.816675
vn -0.616260 -0.542253 0.571093
vn -0.539201 -0.823176 0.177709
vn -0.539201 -0.823176 -0.177709
vn -0.616260 -0.542253 -0.571093
vn -0.616260 0.542253 -0.571093
vn -0.543168 -0.194830 -0.816675
vn -0.543168 0.194830 -0.816675
vn -0.655629 0.191717 -0.730308
vn -0.655629 -0.191717 -0.730308
vn 0.349284 -0.918699 0.184210
vn 0.966369 -0.181768 0.181768
vn 0.096133 0.194739 -0.976104
vn 0.096133 -0.194739 -0.976104
vn 0.094699 -0.396558 -0.913083
vn 0.094699 0.396558 -0.913083
vn 0.087039 0.558702 -0.824763
s 1
f 1//1 4//2 3//3 2//4
f 5//5 3//3 4//2
f 7//6 3//3 5//5 6//7
f 8//8 7//6 6//7
f 7//6 8//8 10//9 9//10
f 12//11 9//10 10//9 11//12
f 13//13 12//11 11//12
f 12//11 13//13 14//14
f 16//15 12//11 14//14 15//16
f 17//17 16//15 15//16
f 19//18 16//15 17//17 18//19
f 20//20 19//18 18//19
f 22//21 21//22 19//18 20//20
f 24//23 22//21 20//20 23//24
f 22//21 24//23 25//25
f 28//26 27//27 26//28 25//25
f 24//23 29//29 28//26 25//25
f 26//28 27//27 30//30
f 1//1 30//30 32//31 31//32
f 1//1 33//33 26//28 30//30
f 31//32 32//31 34//34
f 36//35 35//36 31//32 34//34
f 37//37 35//36 36//35
f 39//38 38//39 37//37 36//35
f 37//37 38//39 41//40 40//41
f 41//40 43//42 42//43 40//41
f 42//43 43//42 45//44 44//45
f 45//44 47//46 46//47 44//45
f 46//47 47//46 49//48 48//49
f 48//49 49//48 51//50 50//51
f 51//50 53//52 52//53 50//51
f 52//53 53//52 55//54 54//55
f 55//54 57//56 56//57 54//55
f 56//57 57//56 59//58 58//59
f 58//59 59//58 61//60 60//61
f 61//60 63//62 62//63 60//61
f 62//63 63//62 65//64 64//65
f 65//64 67//66 66//67 64//65
f 66//67 67//66 69//68 68//69
f 69//68 71//70 70//71 68//69
f 71//70 73//72 72//73 70//71
f 72//73 73//72 74//74 28//26
f 73//72 76//75 75//76 74//74
f 75//76 78//77 77//78 74//74
f 77//78 78//77 80//79 79//80
f 80//79 82//81 81//82 79//80
f 81//82 82//81 84//83 83//84
f 84//83 85//85 39//38 83//84
f 78//77 87//77 86//79 80//79
f 87//77 89//77 88//79 86//79
f 91//76 89//77 87//77 90//76
f 93//75 92//75 91//76 90//76
f 95//86 92//75 93//75 94//86
f 97//87 95//86 94//86 96//87
f 99//88 98//88 97//87 96//87
f 101//89 98//88 99//88 100//89
f 103//90 102//90 101//89 100//89
f 102//90 105//90 104//89 101//89
f 107//91 105//90 102//90 106//91
f 109//92 108//92 107//91 106//91
f 111//93 110//93 108//92 109//92
f 113//94 110//93 111//93 112//94
f 115//95 114//95 113//94 112//94
f 117//96 114//95 115//95 116//96
f 119//97 118//97 117//96 116//96
f 121//98 120//98 118//97 119//97
f 123//99 120//98 121//98 122//99
f 125//100 124//100 123//99 122//99
f 127//101 124//100 125//100 126//101
f 129//102 128//102 127//101 126//101
f 131//85 128//102 129//102 130//85
f 133//83 131//85 130//85 132//83
f 135//81 134//81 133//83 132//83
f 136//79 134//81 135//81 88//79
f 138//103 137//104 134//81 136//79
f 140//77 139//105 138//103 136//79
f 142//106 139//105 140//77 141//76
f 144//75 143//107 142//106 141//76
f 146//108 143//107 144//75 145//86
f 148//109 146//108 145//86 147//87
f 150//88 149//110 148//109 147//87
f 151//111 149//110 150//88 104//89
f 153//112 152//113 149//110 151//111
f 155//114 154//115 153//112 151//111
f 158//116 157//117 156//118 153//112
f 154//115 159//119 158//116 153//112
f 156//118 157//117 160//120
f 160//120 163//121 162//122 161//123
f 152//113 156//118 160//120 161//123
f 165//124 164//125 162//122 163//121
f 169//126 168//127 167//128 166//129
f 164//125 165//124 169//126 166//129
f 167//128 168//127 170//130
f 171//131 164//125 166//129
f 165//124 172//132 169//126
f 175//133 174//134 173//135 169//126
f 172//132 175//133 169//126
f 173//135 174//134 176//136
f 174//134 178//137 177//138 176//136
f 178//137 179//139 177//138
f 178//137 182//140 181//141 180//142
f 179//139 178//137 180//142
f 184//143 181//141 182//140 183//144
f 183//144 187//145 186//146 185//147
f 184//143 183//144 185//147
f 186//146 187//145 188//148
f 188//148 187//145 189//149 158//116
f 188//148 192//150 191//151 190//152
f 193//153 186//146 188//148 190//152
f 191//151 192//150 194//154
f 196//155 191//151 194//154 195//156
f 197//157 193//153 190//152
f 185//147 193//153 197//157 198//158
f 200//159 199//160 185//147 198//158
f 200//159 202//161 201//162 199//160
f 180//142 201//162 202//161 203//163
f 205//164 204//165 180//142 203//163
f 204//165 205//164 206//166
f 202//161 207//167 203//163
f 207//167 202//161 200//159 208//168
f 208//168 200//159 198//158
f 210//169 197//157 190//152 209//170
f 190//152 191//151 196//155 209//170
f 199//160 184//143 185//147
f 186//146 193//153 185//147
f 201//162 181//141 184//143 199//160
f 181//141 201//162 180//142
f 204//165 179//139 180//142
f 177//138 179//139 204//165 206//166
f 212//171 211//172 177//138 206//166
f 211//172 212//171 213//173
f 215//174 211//172 213//173 214//175
f 216//176 215//174 214//175
f 137//104 216//176 214//175 217//177
f 214//175 213//173 218//178 217//177
f 213//173 212//171 219//179 218//178
f 219//179 212//171 206//166 220//180
f 182//140 178//137 174//134 175//133
f 162//122 164//125 171//131 221//181
f 222//182 172//132 165//124 163//121
f 162//122 221//181 161//123
f 222//182 163//121 160//120
f 159//119 192//150 188//148 158//116
f 189//149 157//117 158//116
f 156//118 152//113 153//112
f 149//110 152//113 161//123 148//109
f 161//123 221//181 146//108 148//109
f 221//181 171//131 143//107 146//108
f 143//107 171//131 166//129 142//106
f 166//129 167//128 139//105 142//106
f 139//105 167//128 170//130 138//103
f 134//81 137//104 217//177 133//83
f 217//177 218//178 131//85 133//83
f 218//178 219//179 128//102 131//85
f 130//85 129//102 224//102 223//85
f 223//85 224//102 225//102 85//85
f 225//102 224//102 227//101 226//101
f 128//102 219//179 220//180 127//101
f 224//102 129//102 126//101 227//101
f 114//95 210//169 209//170 113//94
f 229//95 115//95 112//94 228//94
f 231//95 229//95 228//94 230//94
f 228//94 233//93 232//93 230//94
f 232//93 233//93 235//92 234//92
f 209//170 196//155 110//93 113//94
f 112//94 111//93 233//93 228//94
f 110//93 196//155 195//156 108//92
f 233//93 111//93 109//92 235//92
f 108//92 195//156 236//183 107//91
f 236//183 155//114 105//90 107//91
f 105//90 155//114 151//111 104//89
f 238//90 103//90 100//89 237//89
f 104//89 150//88 98//88 101//89
f 100//89 99//88 239//88 237//89
f 98//88 150//88 147//87 97//87
f 239//88 99//88 96//87 240//87
f 147//87 145//86 95//86 97//87
f 96//87 94//86 241//86 240//87
f 145//86 144//75 92//75 95//86
f 94//86 93//75 76//75 241//86
f 92//75 144//75 141//76 91//76
f 141//76 140//77 89//77 91//76
f 89//77 140//77 136//79 88//79
f 90//76 87//77 78//77 75//76
f 76//75 93//75 90//76 75//76
f 241//86 76//75 73//72 71//70
f 72//73 29//29 242//184 70//71
f 240//87 241//86 71//70 69//68
f 70//71 242//184 68//69
f 67//66 239//88 240//87 69//68
f 68//69 242//184 23//24 18//19
f 243//185 66//67 68//69 18//19
f 237//89 239//88 67//66 65//64
f 66//67 243//185 64//65
f 63//62 238//90 237//89 65//64
f 244//91 238//90 63//62 61//60
f 62//63 245//186 60//61
f 59//58 234//92 244//91 61//60
f 245//186 246//187 58//59 60//61
f 57//56 232//93 234//92 59//58
f 246//187 56//57 58//59
f 230//94 232//93 57//56 55//54
f 53//52 231//95 230//94 55//54
f 247//188 52//53 54//55
f 248//96 231//95 53//52 51//50
f 49//48 249//97 248//96 51//50
f 47//46 250//98 249//97 49//48
f 251//99 250//98 47//46 45//44
f 43//42 252//100 251//99 45//44
f 226//101 252//100 43//42 41//40
f 38//39 225//102 226//101 41//40
f 85//85 225//102 38//39 39//38
f 83//84 39//38 36//35 34//34
f 32//31 81//82 83//84 34//34
f 79//80 81//82 32//31 30//30
f 27//27 77//78 79//80 30//30
f 26//28 33//33 25//25
f 29//29 72//73 28//26
f 74//74 77//78 27//27 28//26
f 242//184 29//29 24//23 23//24
f 23//24 20//20 18//19
f 17//17 243//185 18//19
f 64//65 243//185 17//17 15//16
f 245//186 62//63 64//65 15//16
f 14//14 246//187 245//186 15//16
f 54//55 56//57 246//187 14//14
f 13//13 247//188 54//55 14//14
f 19//18 9//10 12//11 16//15
f 247//188 13//13 11//12
f 21//22 7//6 9//10 19//18
f 5//5 253//189 6//7
f 40//41 253//189 5//5 4//2
f 35//36 37//37 40//41 4//2
f 1//1 31//32 35//36 4//2
f 2//4 3//3 7//6 21//22
f 33//33 1//1 2//4
f 2//4 21//22 22//21 25//25
f 33//33 2//4 25//25
f 255//190 254//191 46//47 48//49
f 255//190 48//49 50//51
f 257//192 254//191 255//190 256//193
f 50//51 52//53 247//188 11//12
f 256//193 255//190 50//51 11//12
f 10//9 8//8 257//192 256//193
f 10//9 256//193 11//12
f 46//47 254//191 44//45
f 42//43 253//189 40//41
f 44//45 254//191 257//192 6//7
f 253//189 42//43 44//45 6//7
f 257//192 8//8 6//7
f 235//92 109//92 106//91 258//91
f 106//91 102//90 103//90 258//91
f 234//92 235//92 258//91 244//91
f 258//91 103//90 238//90 244//91
f 132//83 130//85 223//85 259//83
f 260//81 135//81 132//83 259//83
f 88//79 135//81 260//81 86//79
f 259//83 223//85 85//85 84//83
f 82//81 260//81 259//83 84//83
f 86//79 260//81 82//81 80//79
f 262//98 121//98 119//97 261//97
f 261//97 119//97 116//96 263//96
f 116//96 115//95 229//95 263//96
f 250//98 262//98 261//97 249//97
f 249//97 261//97 263//96 248//96
f 263//96 229//95 231//95 248//96
f 122//99 121//98 262//98 264//99
f 126//101 125//100 265//100 227//101
f 265//100 125//100 122//99 264//99
f 264//99 262//98 250//98 251//99
f 227//101 265//100 252//100 226//101
f 252//100 265//100 264//99 251//99
f 194//154 192//150 159//119 266//194
f 159//119 154//115 266//194
f 195//156 194//154 266//194 236//183
f 266//194 154//115 155//114 236//183
f 183//144 182//140 175//133 267//195
f 187//145 183//144 267//195 189//149
f 267//195 175//133 172//132 222//182
f 189//149 267//195 222//182 160//120
f 157//117 189//149 160//120
f 177//138 211//172 215//174 176//136
f 176//136 215//174 216//176 170//130
f 168//127 173//135 176//136 170//130
f 173//135 168//127 169//126
f 170//130 216//176 137//104 138//103
f 269//196 207//167 208//168 268//197
f 268//197 208//168 198//158 270//198
f 198//158 197//157 210//169 270//198
f 120//98 269//196 268//197 118//97
f 118//97 268//197 270//198 117//96
f 270//198 210//169 114//95 117//96
f 203//163 207//167 269//196 271//199
f 206//166 205//164 272//200 220//180
f 272//200 205//164 203//163 271//199
f 271//199 269//196 120//98 123//99
f 220//180 272//200 124//100 127//101
f 124//100 272//200 271//199 123//99

View File

@@ -0,0 +1,132 @@
# Blender v2.63 (sub 0) OBJ File: 'unit_cone.blend'
# www.blender.org
o Cone
v 0.000000 -0.500000 -0.500000
v 0.000000 0.500000 0.000000
v 0.097545 -0.500000 -0.490393
v 0.191342 -0.500000 -0.461940
v 0.277785 -0.500000 -0.415735
v 0.353553 -0.500000 -0.353553
v 0.415735 -0.500000 -0.277785
v 0.461940 -0.500000 -0.191342
v 0.490393 -0.500000 -0.097545
v 0.500000 -0.500000 -0.000000
v 0.490393 -0.500000 0.097545
v 0.461940 -0.500000 0.191342
v 0.415735 -0.500000 0.277785
v 0.353553 -0.500000 0.353553
v 0.277785 -0.500000 0.415735
v 0.191342 -0.500000 0.461940
v 0.097545 -0.500000 0.490393
v -0.000000 -0.500000 0.500000
v -0.097545 -0.500000 0.490393
v -0.191342 -0.500000 0.461940
v -0.277785 -0.500000 0.415735
v -0.353554 -0.500000 0.353553
v -0.415735 -0.500000 0.277785
v -0.461940 -0.500000 0.191341
v -0.490393 -0.500000 0.097545
v -0.500000 -0.500000 -0.000000
v -0.490393 -0.500000 -0.097546
v -0.461940 -0.500000 -0.191342
v -0.415734 -0.500000 -0.277786
v -0.353553 -0.500000 -0.353554
v -0.277785 -0.500000 -0.415735
v -0.191341 -0.500000 -0.461940
v -0.097544 -0.500000 -0.490393
vn -0.259887 0.445488 -0.856737
vn 0.087754 0.445488 -0.890977
vn -0.087753 0.445488 -0.890977
vn 0.259888 0.445488 -0.856737
vn -0.422035 0.445488 -0.789574
vn -0.567964 0.445488 -0.692068
vn -0.692066 0.445488 -0.567965
vn -0.789573 0.445488 -0.422037
vn -0.856737 0.445488 -0.259889
vn -0.890977 0.445488 -0.087754
vn -0.890977 0.445488 0.087753
vn -0.856737 0.445488 0.259887
vn -0.789574 0.445488 0.422035
vn -0.692067 0.445488 0.567964
vn -0.567965 0.445488 0.692066
vn -0.422036 0.445488 0.789573
vn -0.259888 0.445488 0.856737
vn -0.087754 0.445488 0.890977
vn 0.087753 0.445488 0.890977
vn 0.259888 0.445488 0.856737
vn 0.422035 0.445488 0.789573
vn 0.567965 0.445488 0.692067
vn 0.692067 0.445488 0.567965
vn 0.789573 0.445488 0.422035
vn 0.856737 0.445488 0.259888
vn 0.890977 0.445488 0.087753
vn 0.890977 0.445488 -0.087754
vn 0.856737 0.445488 -0.259888
vn 0.789573 0.445488 -0.422036
vn 0.692067 0.445488 -0.567964
vn 0.567964 0.445488 -0.692067
vn 0.422036 0.445488 -0.789573
vn 0.000000 -1.000000 -0.000000
s off
f 32//1 2//1 33//1
f 1//2 2//2 3//2
f 2//3 1//3 33//3
f 3//4 2//4 4//4
f 31//5 2//5 32//5
f 30//6 2//6 31//6
f 29//7 2//7 30//7
f 28//8 2//8 29//8
f 27//9 2//9 28//9
f 26//10 2//10 27//10
f 25//11 2//11 26//11
f 24//12 2//12 25//12
f 23//13 2//13 24//13
f 22//14 2//14 23//14
f 21//15 2//15 22//15
f 20//16 2//16 21//16
f 19//17 2//17 20//17
f 18//18 2//18 19//18
f 17//19 2//19 18//19
f 16//20 2//20 17//20
f 15//21 2//21 16//21
f 14//22 2//22 15//22
f 13//23 2//23 14//23
f 12//24 2//24 13//24
f 11//25 2//25 12//25
f 10//26 2//26 11//26
f 9//27 2//27 10//27
f 8//28 2//28 9//28
f 7//29 2//29 8//29
f 6//30 2//30 7//30
f 5//31 2//31 6//31
f 4//32 2//32 5//32
f 1//33 3//33 33//33
f 3//33 32//33 33//33
f 3//33 4//33 32//33
f 4//33 31//33 32//33
f 4//33 5//33 31//33
f 5//33 30//33 31//33
f 5//33 6//33 30//33
f 6//33 29//33 30//33
f 6//33 7//33 29//33
f 7//33 28//33 29//33
f 7//33 8//33 28//33
f 8//33 27//33 28//33
f 8//33 9//33 27//33
f 9//33 26//33 27//33
f 9//33 10//33 26//33
f 10//33 25//33 26//33
f 10//33 11//33 25//33
f 11//33 24//33 25//33
f 11//33 12//33 24//33
f 12//33 23//33 24//33
f 12//33 13//33 23//33
f 13//33 22//33 23//33
f 13//33 14//33 22//33
f 14//33 21//33 22//33
f 14//33 15//33 21//33
f 15//33 20//33 21//33
f 15//33 16//33 20//33
f 16//33 19//33 20//33
f 16//33 17//33 19//33
f 17//33 18//33 19//33

View File

@@ -0,0 +1,200 @@
# Blender v2.63 (sub 0) OBJ File: 'unit_cylinder.blend'
# www.blender.org
o Cylinder_Cylinder.001
v 0.000000 -0.500000 0.000000
v 0.000000 0.500000 0.000000
v 0.000000 -0.500000 -0.500000
v 0.000000 0.500000 -0.500000
v 0.097545 -0.500000 -0.490393
v 0.097545 0.500000 -0.490393
v 0.191342 -0.500000 -0.461940
v 0.191342 0.500000 -0.461940
v 0.277785 -0.500000 -0.415735
v 0.277785 0.500000 -0.415735
v 0.353553 -0.500000 -0.353553
v 0.353553 0.500000 -0.353553
v 0.415735 -0.500000 -0.277785
v 0.415735 0.500000 -0.277785
v 0.461940 -0.500000 -0.191342
v 0.461940 0.500000 -0.191342
v 0.490393 -0.500000 -0.097545
v 0.490393 0.500000 -0.097545
v 0.500000 -0.500000 -0.000000
v 0.500000 0.500000 -0.000000
v 0.490393 -0.500000 0.097545
v 0.490393 0.500000 0.097545
v 0.461940 -0.500000 0.191342
v 0.461940 0.500000 0.191342
v 0.415735 -0.500000 0.277785
v 0.415735 0.500000 0.277785
v 0.353553 -0.500000 0.353553
v 0.353553 0.500000 0.353553
v 0.277785 -0.500000 0.415735
v 0.277785 0.500000 0.415735
v 0.191342 -0.500000 0.461940
v 0.191342 0.500000 0.461940
v 0.097545 -0.500000 0.490393
v 0.097545 0.500000 0.490393
v -0.000000 -0.500000 0.500000
v -0.000000 0.500000 0.500000
v -0.097545 -0.500000 0.490393
v -0.097545 0.500000 0.490393
v -0.191342 -0.500000 0.461940
v -0.191342 0.500000 0.461940
v -0.277785 -0.500000 0.415735
v -0.277785 0.500000 0.415735
v -0.353554 -0.500000 0.353553
v -0.353554 0.500000 0.353553
v -0.415735 -0.500000 0.277785
v -0.415735 0.500000 0.277785
v -0.461940 -0.500000 0.191341
v -0.461940 0.500000 0.191341
v -0.490393 -0.500000 0.097545
v -0.490393 0.500000 0.097545
v -0.500000 -0.500000 -0.000000
v -0.500000 0.500000 -0.000000
v -0.490393 -0.500000 -0.097546
v -0.490393 0.500000 -0.097546
v -0.461940 -0.500000 -0.191342
v -0.461940 0.500000 -0.191342
v -0.415734 -0.500000 -0.277786
v -0.415734 0.500000 -0.277786
v -0.353553 -0.500000 -0.353554
v -0.353553 0.500000 -0.353554
v -0.277785 -0.500000 -0.415735
v -0.277785 0.500000 -0.415735
v -0.191341 -0.500000 -0.461940
v -0.191341 0.500000 -0.461940
v -0.097544 -0.500000 -0.490393
v -0.097544 0.500000 -0.490393
vn -0.000000 -1.000000 0.000000
vn 0.000000 1.000000 -0.000000
vn 0.098017 0.000000 -0.995185
vn 0.290284 0.000000 -0.956940
vn 0.471397 0.000000 -0.881921
vn 0.634393 0.000000 -0.773011
vn 0.773011 0.000000 -0.634393
vn 0.881921 0.000000 -0.471397
vn 0.956940 0.000000 -0.290284
vn 0.995185 0.000000 -0.098017
vn 0.995185 0.000000 0.098017
vn 0.956940 0.000000 0.290285
vn 0.881921 0.000000 0.471396
vn 0.773010 0.000000 0.634393
vn 0.634393 0.000000 0.773010
vn 0.471396 0.000000 0.881921
vn 0.290285 0.000000 0.956940
vn 0.098017 0.000000 0.995185
vn -0.098018 0.000000 0.995185
vn -0.290285 0.000000 0.956940
vn -0.471397 0.000000 0.881921
vn -0.634394 0.000000 0.773010
vn -0.773011 0.000000 0.634393
vn -0.881922 0.000000 0.471396
vn -0.956941 0.000000 0.290284
vn -0.995185 0.000000 0.098016
vn -0.995185 0.000000 -0.098018
vn -0.956940 0.000000 -0.290286
vn -0.881921 0.000000 -0.471398
vn -0.773010 0.000000 -0.634394
vn -0.634392 0.000000 -0.773011
vn -0.471395 0.000000 -0.881922
vn -0.290283 0.000000 -0.956941
vn -0.098016 0.000000 -0.995185
s off
f 1//1 3//1 5//1
f 2//2 6//2 4//2
f 3//3 4//3 6//3 5//3
f 1//1 5//1 7//1
f 2//2 8//2 6//2
f 5//4 6//4 8//4 7//4
f 1//1 7//1 9//1
f 2//2 10//2 8//2
f 7//5 8//5 10//5 9//5
f 1//1 9//1 11//1
f 2//2 12//2 10//2
f 9//6 10//6 12//6 11//6
f 1//1 11//1 13//1
f 2//2 14//2 12//2
f 11//7 12//7 14//7 13//7
f 1//1 13//1 15//1
f 2//2 16//2 14//2
f 13//8 14//8 16//8 15//8
f 1//1 15//1 17//1
f 2//2 18//2 16//2
f 15//9 16//9 18//9 17//9
f 1//1 17//1 19//1
f 2//2 20//2 18//2
f 17//10 18//10 20//10 19//10
f 1//1 19//1 21//1
f 2//2 22//2 20//2
f 19//11 20//11 22//11 21//11
f 1//1 21//1 23//1
f 2//2 24//2 22//2
f 21//12 22//12 24//12 23//12
f 1//1 23//1 25//1
f 2//2 26//2 24//2
f 23//13 24//13 26//13 25//13
f 1//1 25//1 27//1
f 2//2 28//2 26//2
f 25//14 26//14 28//14 27//14
f 1//1 27//1 29//1
f 2//2 30//2 28//2
f 27//15 28//15 30//15 29//15
f 1//1 29//1 31//1
f 2//2 32//2 30//2
f 29//16 30//16 32//16 31//16
f 1//1 31//1 33//1
f 2//2 34//2 32//2
f 31//17 32//17 34//17 33//17
f 1//1 33//1 35//1
f 2//2 36//2 34//2
f 33//18 34//18 36//18 35//18
f 1//1 35//1 37//1
f 2//2 38//2 36//2
f 35//19 36//19 38//19 37//19
f 1//1 37//1 39//1
f 2//2 40//2 38//2
f 37//20 38//20 40//20 39//20
f 1//1 39//1 41//1
f 2//2 42//2 40//2
f 39//21 40//21 42//21 41//21
f 1//1 41//1 43//1
f 2//2 44//2 42//2
f 41//22 42//22 44//22 43//22
f 1//1 43//1 45//1
f 2//2 46//2 44//2
f 43//23 44//23 46//23 45//23
f 1//1 45//1 47//1
f 2//2 48//2 46//2
f 45//24 46//24 48//24 47//24
f 1//1 47//1 49//1
f 2//2 50//2 48//2
f 47//25 48//25 50//25 49//25
f 1//1 49//1 51//1
f 2//2 52//2 50//2
f 49//26 50//26 52//26 51//26
f 1//1 51//1 53//1
f 2//2 54//2 52//2
f 51//27 52//27 54//27 53//27
f 1//1 53//1 55//1
f 2//2 56//2 54//2
f 53//28 54//28 56//28 55//28
f 1//1 55//1 57//1
f 2//2 58//2 56//2
f 55//29 56//29 58//29 57//29
f 1//1 57//1 59//1
f 2//2 60//2 58//2
f 57//30 58//30 60//30 59//30
f 1//1 59//1 61//1
f 2//2 62//2 60//2
f 59//31 60//31 62//31 61//31
f 1//1 61//1 63//1
f 2//2 64//2 62//2
f 61//32 62//32 64//32 63//32
f 1//1 63//1 65//1
f 2//2 66//2 64//2
f 63//33 64//33 66//33 65//33
f 1//1 65//1 3//1
f 2//2 4//2 66//2
f 65//34 66//34 4//34 3//34

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
#version 140
in vec4 frag_Color;
out vec4 final_Color;
void
main()
{
final_Color = frag_Color;
}

View File

@@ -0,0 +1,23 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
in vec3 Site;
in vec4 Color;
out vec3 frag_Site;
out vec4 frag_Color;
void main()
{
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Color = Color;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * vec4 (Site * Scale, 1);
}

View File

@@ -0,0 +1,15 @@
#version 140
uniform sampler2D sTexture;
varying vec4 vColor;
varying vec2 vCoords;
void main()
{
gl_FragColor = mix (texture2D (sTexture, vCoords),
vColor,
0.5);
}

View File

@@ -0,0 +1,19 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
attribute vec3 Site;
attribute vec4 Color;
attribute vec2 Coords;
varying vec4 vColor;
varying vec2 vCoords;
void main()
{
gl_Position = mvp_Transform * vec4 (Site * Scale, 1.0);
vColor = Color;
vCoords = Coords;
}

View File

@@ -0,0 +1,123 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec4 frag_Color;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = frag_Color;
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,29 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
in vec3 Site;
in vec3 Normal;
in vec4 Color;
in float Shine;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec4 frag_Color;
out float frag_Shine;
void main()
{
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Normal = Normal;
frag_Color = Color;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * vec4 (Site * Scale, 1);
}

View File

@@ -0,0 +1,127 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec4 frag_Color;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = ( texture (Texture, frag_Coords)
+ frag_Color)
/ 2.0;
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,114 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
uniform mat4 bone_Matrices[120];
in vec3 Site;
in vec3 Normal;
in vec4 Color;
in vec2 Coords;
in float Shine;
in vec4 bone_Ids;
in vec4 bone_Weights;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec4 frag_Color;
out vec2 frag_Coords;
out float frag_Shine;
const float c_zero = 0.0;
const float c_one = 1.0;
void main()
{
vec4 transformedPosition = vec4 (0.0);
vec3 transformedNormal = vec3 (0.0);
if (int (bone_Ids.x) == 0) // No bones affect this vertex.
{
transformedPosition = vec4 (Site, c_one);
transformedNormal = Normal;
}
else
{
// Bone 1.
//
mat4 m44 = bone_Matrices [int (bone_Ids.x) - 1];
// Transform the offset by bone 1.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.x;
mat3 m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 1.
transformedNormal += m33 * Normal * bone_Weights.x;
if (int (bone_Ids.y) != 0)
{
// Bone 2.
//
m44 = bone_Matrices [int (bone_Ids.y) - 1];
// Transform the offset by bone 2.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.y;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 2.
transformedNormal += m33 * Normal * bone_Weights.y;
if (int (bone_Ids.z) != 0)
{
// Bone 3.
//
m44 = bone_Matrices [int (bone_Ids.z) - 1];
// Transform the offset by bone 3.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.z;
m33 = mat3(m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 3.
transformedNormal += m33 * Normal * bone_Weights.z;
if (int (bone_Ids.w) != 0)
{
// Bone 4.
//
m44 = bone_Matrices [int (bone_Ids.w) - 1];
// Transform the offset by bone 4.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.w;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 4.
transformedNormal += m33 * Normal * bone_Weights.w;
}
}
}
}
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Normal = normalize (transformedNormal);
frag_Color = Color;
frag_Coords = Coords;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * (transformedPosition * vec4 (Scale, 1));
}

View File

@@ -0,0 +1,132 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec4 frag_Color;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Difuse light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec4 texture_Color = texture (Texture, frag_Coords);
vec4 surface_Color = vec4 (mix (texture_Color.rgb,
frag_Color .rgb,
0.5),
texture_Color.a
* frag_Color .a);
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,126 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec4 frag_Color;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = mix (texture (Texture, frag_Coords),
frag_Color,
0.5);
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize (frag_Normal * inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,32 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
in vec3 Site;
in vec3 Normal;
in vec4 Color;
in vec2 Coords;
in float Shine;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec4 frag_Color;
out vec2 frag_Coords;
out float frag_Shine;
void main()
{
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Normal = Normal;
frag_Color = Color;
frag_Coords = Coords;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * vec4 (Site * Scale, 1);
}

View File

@@ -0,0 +1,127 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec4 frag_Color;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = mix (texture (Texture, frag_Coords),
frag_Color,
0.5);
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,114 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
uniform mat4 bone_Matrices[120];
in vec3 Site;
in vec3 Normal;
in vec4 Color;
in vec2 Coords;
in float Shine;
in vec4 bone_Ids;
in vec4 bone_Weights;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec4 frag_Color;
out vec2 frag_Coords;
out float frag_Shine;
const float c_zero = 0.0;
const float c_one = 1.0;
void main()
{
vec4 transformedPosition = vec4 (0.0);
vec3 transformedNormal = vec3 (0.0);
if (int (bone_Ids.x) == 0) // No bones affect this vertex.
{
transformedPosition = vec4 (Site, c_one);
transformedNormal = Normal;
}
else
{
// Bone 1.
//
mat4 m44 = bone_Matrices [int (bone_Ids.x) - 1];
// Transform the offset by bone 1.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.x;
mat3 m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 1.
transformedNormal += m33 * Normal * bone_Weights.x;
if (int (bone_Ids.y) != 0)
{
// Bone 2.
//
m44 = bone_Matrices [int (bone_Ids.y) - 1];
// Transform the offset by bone 2.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.y;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 2.
transformedNormal += m33 * Normal * bone_Weights.y;
if (int (bone_Ids.z) != 0)
{
// Bone 3.
//
m44 = bone_Matrices [int (bone_Ids.z) - 1];
// Transform the offset by bone 3.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.z;
m33 = mat3(m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 3.
transformedNormal += m33 * Normal * bone_Weights.z;
if (int (bone_Ids.w) != 0)
{
// Bone 4.
//
m44 = bone_Matrices [int (bone_Ids.w) - 1];
// Transform the offset by bone 4.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.w;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 4.
transformedNormal += m33 * Normal * bone_Weights.w;
}
}
}
}
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Normal = normalize (transformedNormal);
frag_Color = Color;
frag_Coords = Coords;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * (transformedPosition * vec4 (Scale, 1));
}

View File

@@ -0,0 +1,124 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = texture (Texture, frag_Coords);
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,29 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
in vec3 Site;
in vec3 Normal;
in vec2 Coords;
in float Shine;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec2 frag_Coords;
out float frag_Shine;
void main()
{
// Pass some variables to the fragment shader.
//
frag_Site = Site;
frag_Normal = Normal;
frag_Coords = Coords;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * vec4 (Site * Scale, 1);
}

View File

@@ -0,0 +1,124 @@
#version 140
struct light
{
vec4 Site;
vec3 Color;
float Attenuation;
float ambient_Coefficient;
float cone_Angle;
vec3 cone_Direction;
};
uniform mat4 model_Transform;
uniform mat3 inverse_model_Rotation;
uniform vec3 camera_Site;
uniform vec3 specular_Color; // The materials specular color.
uniform sampler2D Texture;
uniform int light_Count;
uniform light Lights [10];
in vec3 frag_Site;
in vec3 frag_Normal;
in vec2 frag_Coords;
in float frag_Shine;
out vec4 final_Color;
vec3
apply_Light (light Light,
vec3 surface_Color,
vec3 Normal,
vec3 surface_Site,
vec3 Surface_to_Camera)
{
vec3 Surface_to_Light;
float Attenuation = 1.0;
if (Light.Site.w == 0.0)
{
// Directional light.
//
Surface_to_Light = normalize (-Light.Site.xyz);
Attenuation = 1.0; // No attenuation for directional lights.
}
else
{
// Point light.
//
vec3 Surface_to_Light_vector = Light.Site.xyz - surface_Site;
float Distance_to_Light = length (Surface_to_Light_vector);
Surface_to_Light = normalize (Surface_to_Light_vector);
Attenuation = 1.0
/ ( 1.0
+ Light.Attenuation
* pow (Distance_to_Light, 2));
// Cone restrictions which affects attenuation.
//
float Light_to_Surface_Angle = degrees (acos (dot (-Surface_to_Light,
normalize (Light.cone_Direction))));
if (Light_to_Surface_Angle > Light.cone_Angle)
{
Attenuation = 0.0;
}
}
vec3 lit_surface_Color = surface_Color * Light.Color;
vec3 Ambient = Light.ambient_Coefficient * lit_surface_Color;
float diffuse_Coefficient = max (0.0,
dot (Normal,
Surface_to_Light));
vec3 Diffuse = diffuse_Coefficient * lit_surface_Color;
float specular_Coefficient = 0.0;
if (diffuse_Coefficient > 0.0)
specular_Coefficient = pow (max (0.0,
dot (Surface_to_Camera,
reflect (-Surface_to_Light,
Normal))),
frag_Shine);
vec3 Specular = specular_Coefficient * specular_Color * Light.Color;
return Ambient + Attenuation * (Diffuse + Specular); // Linear color (before gamma correction).
}
void
main()
{
vec3 surface_Site = vec3 ( model_Transform
* vec4 (frag_Site, 1));
vec4 surface_Color = texture (Texture, frag_Coords);
vec3 Surface_to_Camera = normalize (camera_Site - surface_Site);
vec3 Normal = normalize ( frag_Normal
* inverse_model_Rotation);
// Combine color from all the lights.
//
vec3 linear_Color = vec3 (0);
for (int i = 0; i < light_Count; ++i)
{
linear_Color += apply_Light (Lights [i],
surface_Color.rgb,
Normal,
surface_Site,
Surface_to_Camera);
}
vec3 Gamma = vec3 (1.0 / 2.2);
final_Color = vec4 (pow (linear_Color, // Final color (after gamma correction).
Gamma),
surface_Color.a);
}

View File

@@ -0,0 +1,116 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
uniform mat4 bone_Matrices[120];
in vec3 Site;
in vec3 Normal;
in vec2 Coords;
in float Shine;
in vec4 bone_Ids;
in vec4 bone_Weights;
out vec3 frag_Site;
out vec3 frag_Normal;
out vec2 frag_Coords;
out float frag_Shine;
const float c_zero = 0.0;
const float c_one = 1.0;
void main()
{
vec4 transformedPosition = vec4 (0.0);
vec3 transformedNormal = vec3 (0.0);
if (int (bone_Ids.x) == 0) // No bones affect this vertex.
{
transformedPosition = vec4 (Site, c_one);
transformedNormal = Normal;
}
else
{
// Bone 1.
//
mat4 m44 = bone_Matrices [int (bone_Ids.x) - 1];
// Transform the offset by bone 1.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.x;
mat3 m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 1.
transformedNormal += m33 * Normal * bone_Weights.x;
if (int(bone_Ids.y) != 0)
{
// Bone 2.
//
m44 = bone_Matrices [int (bone_Ids.y) - 1];
// Transform the offset by bone 2.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.y;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 2.
transformedNormal += m33 * Normal * bone_Weights.y;
if (int (bone_Ids.z) != 0)
{
// Bone 3.
//
m44 = bone_Matrices [int (bone_Ids.z) - 1];
// Transform the offset by bone 3.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.z;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 3.
transformedNormal += m33 * Normal * bone_Weights.z;
if (int (bone_Ids.w) != 0)
{
// Bone 4.
//
m44 = bone_Matrices [int (bone_Ids.w) - 1];
// Transform the offset by bone 4.
transformedPosition += m44 * vec4 (Site, c_one) * bone_Weights.w;
m33 = mat3 (m44[0].xyz,
m44[1].xyz,
m44[2].xyz);
// Transform the normal by bone 4.
transformedNormal += m33 * Normal * bone_Weights.w;
}
}
}
}
// Pass some variables to the fragment shader.
//
frag_Site = transformedPosition.xyz * Scale;
frag_Normal = normalize (transformedNormal);
frag_Coords = Coords;
frag_Shine = Shine;
// Apply all matrix transformations to 'Site'.
//
gl_Position = mvp_Transform * transformedPosition;
gl_Position = mvp_Transform * (transformedPosition * vec4 (Scale, 1));
}

View File

@@ -0,0 +1,69 @@
#version 120
struct directional_light
{
vec3 direction; // Normalized light direction in eye space.
vec3 halfplane; // Normalized half-plane vector.
vec4 ambient_color;
vec4 diffuse_color;
vec4 specular_color;
bool is_on;
};
uniform mat3 inv_modelview_Matrix;
uniform directional_light uLights [8];
uniform float uShine;
attribute vec3 aNormal;
attribute vec4 aColor;
varying vec4 vColor;
const float c_zero = 0.0;
const float c_one = 1.0;
vec4 // Returns the computed color.
directional_light_color (in vec3 normal, // 'normal' has been transformed into eye space and normalized.
in directional_light light)
{
if (!light.is_on)
return vec4 (0.0, 0.0, 0.0, 0.0);
vec4 computed_color = vec4 (c_zero, c_zero, c_zero, c_zero);
float NdotL; // Dot product of normal and light direction.
float NdotH; // Dot product of normal and half-plane vector.
NdotL = max (c_zero, dot (normal, light.direction));
NdotH = max (c_zero, dot (normal, light.halfplane));
computed_color += ( light.ambient_color * aColor);
computed_color += (NdotL * light.diffuse_color * aColor);
if (NdotH > c_zero)
computed_color += (pow (NdotH, uShine) * aColor * light.specular_color);
return computed_color;
}
void main()
{
vec3 light_Normal = normalize (aNormal) * inv_modelview_Matrix;
vColor = vec4 (0.0, 0.0, 0.0, 0.0);
for (int i = 0; i < 8; i++)
{
vColor += directional_light_color (light_Normal, uLights [i]);
}
}

View File

@@ -0,0 +1,12 @@
#version 140
uniform sampler2D sTexture;
varying vec4 vColor;
varying vec2 vCoords;
void main()
{
gl_FragColor = texture2D (sTexture, vCoords) * vColor; // Modulate light color with texture.
}

View File

@@ -0,0 +1,25 @@
#version 140
uniform mat4 mvp_Transform;
uniform vec3 Scale;
attribute vec3 Site;
attribute vec2 Coords;
varying vec4 vColor;
varying vec2 vCoords;
const float c_zero = 0.0;
const float c_one = 1.0;
void main()
{
gl_Position = mvp_Transform * vec4 (Site * Scale, 1.0);
vColor = vec4 (1.0, 1.0, 1.0, 1.0);
vCoords = Coords;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB