Upload 44 files
Browse files- .gitattributes +8 -0
- vae/Irand/island/json/cameras/beachCam.json +29 -0
- vae/Irand/island/json/cameras/birdseyeCam.json +29 -0
- vae/Irand/island/json/cameras/dunesACam.json +29 -0
- vae/Irand/island/json/cameras/grassCam.json +29 -0
- vae/Irand/island/json/cameras/palmsCam.json +29 -0
- vae/Irand/island/json/cameras/rootsCam.json +29 -0
- vae/Irand/island/json/cameras/shotCam.json +29 -0
- vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.hier +3 -0
- vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.mtl +4 -0
- vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.obj +1690 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.hier +0 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.mtl +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.obj +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.hier +0 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.mtl +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.obj +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.hier +0 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.mtl +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.obj +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.hier +0 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.mtl +3 -0
- vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.obj +3 -0
- vae/Irand/island/ref/pbrtRenders/beachCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/birdseyeCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/dunesACam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/flowersCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/grassCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/palmsCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/rootsCam.png +0 -0
- vae/Irand/island/ref/pbrtRenders/shotCam.png +0 -0
- vae/Irand/island/scripts/embree/.DS_Store +0 -0
- vae/Irand/island/scripts/embree/._.DS_Store +0 -0
- vae/Irand/island/scripts/embree/._README.txt +0 -0
- vae/Irand/island/scripts/embree/._embreeConvert.py +0 -0
- vae/Irand/island/scripts/embree/._embreeConvertAll.sh +0 -0
- vae/Irand/island/scripts/embree/._embreeutils.py +0 -0
- vae/Irand/island/scripts/embree/README.txt +25 -0
- vae/Irand/island/scripts/embree/embreeConvert.py +201 -0
- vae/Irand/island/scripts/embree/embreeConvertAll.sh +52 -0
- vae/Irand/island/scripts/embree/embreeutils.py +896 -0
- vae/Irand/island/textures/isPalmDead/Color/rootball0001_geo.ptx +3 -0
- vae/Irand/island/textures/isPalmDead/Color/trunk0001_geo.ptx +3 -0
- vae/Irand/island/textures/isPalmDead/Displacement/rootball0001_geo.ptx +3 -0
- vae/Irand/island/textures/isPalmDead/Displacement/trunk0001_geo.ptx +3 -0
.gitattributes
CHANGED
@@ -1024,3 +1024,11 @@ vae/cm3d/GameData/voice_personal_om001.arc filter=lfs diff=lfs merge=lfs -text
|
|
1024 |
vae/cm3d/GameData/voice_personal_om002.arc filter=lfs diff=lfs merge=lfs -text
|
1025 |
vae/cm3d/GameData/voice.arc filter=lfs diff=lfs merge=lfs -text
|
1026 |
vae/cm3d/GameData/voice2.arc filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1024 |
vae/cm3d/GameData/voice_personal_om002.arc filter=lfs diff=lfs merge=lfs -text
|
1025 |
vae/cm3d/GameData/voice.arc filter=lfs diff=lfs merge=lfs -text
|
1026 |
vae/cm3d/GameData/voice2.arc filter=lfs diff=lfs merge=lfs -text
|
1027 |
+
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.obj filter=lfs diff=lfs merge=lfs -text
|
1028 |
+
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.obj filter=lfs diff=lfs merge=lfs -text
|
1029 |
+
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.obj filter=lfs diff=lfs merge=lfs -text
|
1030 |
+
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.obj filter=lfs diff=lfs merge=lfs -text
|
1031 |
+
vae/Irand/island/textures/isPalmDead/Color/rootball0001_geo.ptx filter=lfs diff=lfs merge=lfs -text
|
1032 |
+
vae/Irand/island/textures/isPalmDead/Color/trunk0001_geo.ptx filter=lfs diff=lfs merge=lfs -text
|
1033 |
+
vae/Irand/island/textures/isPalmDead/Displacement/rootball0001_geo.ptx filter=lfs diff=lfs merge=lfs -text
|
1034 |
+
vae/Irand/island/textures/isPalmDead/Displacement/trunk0001_geo.ptx filter=lfs diff=lfs merge=lfs -text
|
vae/Irand/island/json/cameras/beachCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "beachCam",
|
5 |
+
"eye": [
|
6 |
+
-510.5239066714681,
|
7 |
+
87.30874393630907,
|
8 |
+
181.77019700660784
|
9 |
+
],
|
10 |
+
"focalLength": 34.999999999999986,
|
11 |
+
"centerOfInterest": 712.3912120407614,
|
12 |
+
"lensRadius": 0.0031249999999999984,
|
13 |
+
"up": [
|
14 |
+
0.0738708545527661,
|
15 |
+
0.996864591331903,
|
16 |
+
-0.02835636430013811
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
152.46530457260906,
|
26 |
+
30.939794764162578,
|
27 |
+
-72.72751680648216
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/birdseyeCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "hibiscusCam",
|
5 |
+
"eye": [
|
6 |
+
3.5526606717518376,
|
7 |
+
850.6418895294337,
|
8 |
+
747.5497754610369
|
9 |
+
],
|
10 |
+
"focalLength": 34.99999999999999,
|
11 |
+
"centerOfInterest": 1309.1745591230474,
|
12 |
+
"lensRadius": 0.0031249999999999993,
|
13 |
+
"up": [
|
14 |
+
0.1370609562125062,
|
15 |
+
0.7929456689992689,
|
16 |
+
-0.5936762251407878
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
237.07531671546286,
|
26 |
+
52.9718477246937,
|
27 |
+
-263.9479752910547
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/dunesACam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "dunesACam",
|
5 |
+
"eye": [
|
6 |
+
-71.3357952505853,
|
7 |
+
78.734578313642,
|
8 |
+
108.92994817257102
|
9 |
+
],
|
10 |
+
"focalLength": 34.99999999999999,
|
11 |
+
"centerOfInterest": 452.4766891356024,
|
12 |
+
"lensRadius": 0.0031249999999999993,
|
13 |
+
"up": [
|
14 |
+
0.002016176422133449,
|
15 |
+
0.9999895730713552,
|
16 |
+
0.004097411524808375
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
-271.1048187567149,
|
26 |
+
80.80085405252899,
|
27 |
+
-297.0543150237934
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/grassCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "grassCam",
|
5 |
+
"eye": [
|
6 |
+
-5.171248679251219,
|
7 |
+
20.334400261222573,
|
8 |
+
-89.97306056602213
|
9 |
+
],
|
10 |
+
"focalLength": 34.999999999999986,
|
11 |
+
"centerOfInterest": 32.15778880265155,
|
12 |
+
"lensRadius": 0.0031249999999999984,
|
13 |
+
"up": [
|
14 |
+
0.3061184080739167,
|
15 |
+
0.9236231643732346,
|
16 |
+
-0.23067676621511765
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
18.549566601169055,
|
26 |
+
8.00826275343514,
|
27 |
+
-107.84797699232291
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/palmsCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "palmsCam",
|
5 |
+
"eye": [
|
6 |
+
-124.02546471925854,
|
7 |
+
405.62214562283157,
|
8 |
+
369.1730463283022
|
9 |
+
],
|
10 |
+
"focalLength": 34.999999999999986,
|
11 |
+
"centerOfInterest": 712.3912120407333,
|
12 |
+
"lensRadius": 0.0031249999999999984,
|
13 |
+
"up": [
|
14 |
+
-0.2003759454709524,
|
15 |
+
0.9725259665269878,
|
16 |
+
0.11850200381162401
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
472.3129244023174,
|
26 |
+
571.462848388009,
|
27 |
+
16.499506125608377
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/rootsCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 54.43222311461497,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "rootsCam",
|
5 |
+
"eye": [
|
6 |
+
-53.247679762217224,
|
7 |
+
63.459326699391625,
|
8 |
+
-57.57774331317834
|
9 |
+
],
|
10 |
+
"focalLength": 34.99999999999999,
|
11 |
+
"centerOfInterest": 15.69172495060073,
|
12 |
+
"lensRadius": 0.0031249999999999993,
|
13 |
+
"up": [
|
14 |
+
0.2638047892040311,
|
15 |
+
0.9111276124080613,
|
16 |
+
-0.31662834222571157
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
-44.0959264818672,
|
26 |
+
56.9923848671219,
|
27 |
+
-68.5620187630634
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/json/cameras/shotCam.json
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"fov": 69.50460587892012,
|
3 |
+
"ratio": 2.386946386946387,
|
4 |
+
"name": "shotCam",
|
5 |
+
"eye": [
|
6 |
+
-1139.01589265,
|
7 |
+
23.28673313185658,
|
8 |
+
1479.7947229
|
9 |
+
],
|
10 |
+
"focalLength": 35.0,
|
11 |
+
"centerOfInterest": 1675.338285281147,
|
12 |
+
"lensRadius": 0.0031250000000000006,
|
13 |
+
"up": [
|
14 |
+
-0.10714942339176316,
|
15 |
+
0.9916909792130254,
|
16 |
+
0.07118990669600059
|
17 |
+
],
|
18 |
+
"screenwindow": [
|
19 |
+
-1.0,
|
20 |
+
1.0,
|
21 |
+
-0.4189453125,
|
22 |
+
0.4189453125
|
23 |
+
],
|
24 |
+
"look": [
|
25 |
+
244.81433650665076,
|
26 |
+
238.8071478842799,
|
27 |
+
560.3801168449178
|
28 |
+
]
|
29 |
+
}
|
vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.hier
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"archivebaycedar0001_geo": "|isBayCedarA1|xgBonsai|archivebaycedar0001_mod"
|
3 |
+
}
|
vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.mtl
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
newmtl petiole
|
2 |
+
newmtl leaves
|
3 |
+
newmtl barkSimple
|
4 |
+
newmtl bark
|
vae/Irand/island/obj/isBayCedarA1/archives/archivebaycedar0001_mod.obj
ADDED
@@ -0,0 +1,1690 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# This file uses centimeters as units for non-parametric coordinates.
|
2 |
+
|
3 |
+
mtllib archivebaycedar0001_mod.mtl
|
4 |
+
g default
|
5 |
+
v -0.018978 0.219266 -0.007130
|
6 |
+
v 0.018978 0.219266 -0.007130
|
7 |
+
v -0.023540 0.915557 0.093050
|
8 |
+
v 0.023540 0.915557 0.093050
|
9 |
+
v -0.074762 0.834604 0.088714
|
10 |
+
v 0.074762 0.834604 0.088714
|
11 |
+
v -0.031657 0.813453 0.102260
|
12 |
+
v 0.031657 0.813453 0.102260
|
13 |
+
v 0.016124 0.863905 0.103204
|
14 |
+
v -0.016124 0.863905 0.103204
|
15 |
+
v -0.007105 0.216132 0.002794
|
16 |
+
v 0.007105 0.216132 0.002794
|
17 |
+
v 0.073084 0.712942 0.078187
|
18 |
+
v 0.029929 0.701368 0.090371
|
19 |
+
v -0.029929 0.701368 0.090371
|
20 |
+
v -0.073084 0.712942 0.078187
|
21 |
+
v -0.061254 0.564322 0.059300
|
22 |
+
v -0.024852 0.555102 0.070511
|
23 |
+
v 0.024852 0.555102 0.070511
|
24 |
+
v 0.061254 0.564322 0.059300
|
25 |
+
v -0.045721 0.413589 0.034450
|
26 |
+
v -0.018239 0.406925 0.044918
|
27 |
+
v 0.018239 0.406925 0.044918
|
28 |
+
v 0.045721 0.413589 0.034450
|
29 |
+
v -0.001652 0.210822 0.020336
|
30 |
+
v -0.012687 0.210822 -0.015980
|
31 |
+
v 0.129795 0.922294 -0.014836
|
32 |
+
v 0.116108 0.922294 -0.059882
|
33 |
+
v 0.136559 0.839305 0.036643
|
34 |
+
v 0.093088 0.839305 -0.106422
|
35 |
+
v 0.135960 0.817075 -0.008226
|
36 |
+
v 0.117553 0.817075 -0.068805
|
37 |
+
v 0.125451 0.868861 -0.054970
|
38 |
+
v 0.134826 0.868861 -0.024116
|
39 |
+
v 0.004245 0.207233 0.006136
|
40 |
+
v 0.000114 0.207233 -0.007460
|
41 |
+
v 0.077522 0.714730 -0.099939
|
42 |
+
v 0.101167 0.702388 -0.062020
|
43 |
+
v 0.118569 0.702388 -0.004748
|
44 |
+
v 0.120017 0.714730 0.039916
|
45 |
+
v 0.091195 0.562777 0.036310
|
46 |
+
v 0.090893 0.552889 -0.001644
|
47 |
+
v 0.076443 0.552889 -0.049201
|
48 |
+
v 0.055578 0.562777 -0.080907
|
49 |
+
v 0.055481 0.408875 0.030927
|
50 |
+
v 0.057188 0.401640 0.001686
|
51 |
+
v 0.046582 0.401640 -0.033217
|
52 |
+
v 0.028896 0.408875 -0.056565
|
53 |
+
v 0.020032 0.202371 -0.004067
|
54 |
+
v -0.011580 0.202095 0.017071
|
55 |
+
v -0.063980 0.926497 -0.146826
|
56 |
+
v -0.103191 0.926154 -0.120606
|
57 |
+
v -0.015178 0.842062 -0.165111
|
58 |
+
v -0.139712 0.840972 -0.081838
|
59 |
+
v -0.057644 0.818337 -0.150600
|
60 |
+
v -0.110375 0.817875 -0.115340
|
61 |
+
v -0.100287 0.870993 -0.128915
|
62 |
+
v -0.073429 0.871228 -0.146874
|
63 |
+
v 0.004766 0.198141 -0.005426
|
64 |
+
v -0.007070 0.198037 0.002488
|
65 |
+
v -0.126854 0.713869 -0.064058
|
66 |
+
v -0.097159 0.700966 -0.097244
|
67 |
+
v -0.047306 0.701402 -0.130580
|
68 |
+
v -0.005115 0.714934 -0.145462
|
69 |
+
v 0.002386 0.560081 -0.111015
|
70 |
+
v -0.033747 0.549158 -0.099280
|
71 |
+
v -0.075144 0.548796 -0.071598
|
72 |
+
v -0.099648 0.559188 -0.042787
|
73 |
+
v 0.010219 0.403487 -0.069387
|
74 |
+
v -0.018189 0.395381 -0.062214
|
75 |
+
v -0.048570 0.395115 -0.041898
|
76 |
+
v -0.065941 0.402820 -0.018461
|
77 |
+
v -0.009719 0.193558 -0.018147
|
78 |
+
v 0.019751 0.193394 0.005963
|
79 |
+
v -0.136737 0.927496 0.125394
|
80 |
+
v -0.100183 0.927293 0.155300
|
81 |
+
v -0.166765 0.841366 0.081471
|
82 |
+
v -0.050669 0.840720 0.176452
|
83 |
+
v -0.140011 0.816562 0.117201
|
84 |
+
v -0.090853 0.816288 0.157419
|
85 |
+
v -0.107876 0.870417 0.153292
|
86 |
+
v -0.132914 0.870557 0.132808
|
87 |
+
v -0.006490 0.188750 -0.003261
|
88 |
+
v 0.004543 0.188688 0.005766
|
89 |
+
v -0.034799 0.711513 0.155182
|
90 |
+
v -0.074991 0.697559 0.136017
|
91 |
+
v -0.121466 0.697818 0.097994
|
92 |
+
v -0.148289 0.712144 0.062332
|
93 |
+
v -0.114324 0.555092 0.040516
|
94 |
+
v -0.092334 0.543460 0.071371
|
95 |
+
v -0.053742 0.543245 0.102944
|
96 |
+
v -0.019204 0.554563 0.118336
|
97 |
+
v -0.073537 0.396590 0.016241
|
98 |
+
v -0.058226 0.387846 0.041112
|
99 |
+
v -0.029903 0.387688 0.064284
|
100 |
+
v -0.002538 0.396195 0.074328
|
101 |
+
v -0.015042 0.184427 0.014581
|
102 |
+
v -0.000484 0.184427 -0.020674
|
103 |
+
v 0.192131 0.928309 0.104199
|
104 |
+
v 0.210189 0.928309 0.060469
|
105 |
+
v 0.154897 0.840464 0.144609
|
106 |
+
v 0.212249 0.840464 0.005722
|
107 |
+
v 0.180295 0.814783 0.108234
|
108 |
+
v 0.204580 0.814783 0.049425
|
109 |
+
v 0.207970 0.869856 0.067657
|
110 |
+
v 0.195601 0.869856 0.097611
|
111 |
+
v -0.001916 0.179150 0.007082
|
112 |
+
v 0.003534 0.179150 -0.006117
|
113 |
+
v 0.181499 0.709189 -0.005006
|
114 |
+
v 0.174171 0.694248 0.038884
|
115 |
+
v 0.151212 0.694248 0.094483
|
116 |
+
v 0.125433 0.709189 0.130764
|
117 |
+
v 0.087666 0.549946 0.102493
|
118 |
+
v 0.110357 0.537765 0.072279
|
119 |
+
v 0.129422 0.537765 0.026111
|
120 |
+
v 0.134657 0.549946 -0.011300
|
121 |
+
v 0.045496 0.389499 0.068389
|
122 |
+
v 0.064515 0.380255 0.046355
|
123 |
+
v 0.078507 0.380255 0.012471
|
124 |
+
v 0.080570 0.389499 -0.016549
|
125 |
+
v 0.018076 0.175320 0.010506
|
126 |
+
v -0.020010 0.175064 0.006834
|
127 |
+
v 0.051673 0.926858 -0.245353
|
128 |
+
v 0.004432 0.926541 -0.249908
|
129 |
+
v 0.100373 0.838108 -0.217761
|
130 |
+
v -0.049662 0.837101 -0.232228
|
131 |
+
v 0.057776 0.811078 -0.230399
|
132 |
+
v -0.005754 0.810651 -0.236524
|
133 |
+
v 0.011350 0.866697 -0.247406
|
134 |
+
v 0.043708 0.866914 -0.244286
|
135 |
+
v 0.006993 0.169411 0.000347
|
136 |
+
v -0.007266 0.169315 -0.001028
|
137 |
+
v -0.052402 0.704157 -0.194119
|
138 |
+
v -0.008299 0.688690 -0.199251
|
139 |
+
v 0.051764 0.689093 -0.193459
|
140 |
+
v 0.094266 0.705141 -0.179977
|
141 |
+
v 0.076433 0.544067 -0.128861
|
142 |
+
v 0.040683 0.530915 -0.141271
|
143 |
+
v -0.009191 0.530580 -0.146080
|
144 |
+
v -0.046495 0.543242 -0.140714
|
145 |
+
v 0.054271 0.382022 -0.071780
|
146 |
+
v 0.027476 0.371950 -0.083181
|
147 |
+
v -0.009127 0.371704 -0.086710
|
148 |
+
v -0.037484 0.381406 -0.080628
|
149 |
+
v 0.004706 0.166005 -0.020318
|
150 |
+
v 0.012271 0.165688 0.017271
|
151 |
+
v -0.274500 0.920171 0.026001
|
152 |
+
v -0.265117 0.919777 0.072625
|
153 |
+
v -0.259367 0.830750 -0.029203
|
154 |
+
v -0.229567 0.829501 0.118875
|
155 |
+
v -0.258239 0.802553 0.015193
|
156 |
+
v -0.245621 0.802024 0.077895
|
157 |
+
v -0.262823 0.858672 0.064957
|
158 |
+
v -0.269250 0.858941 0.033022
|
159 |
+
v -0.001629 0.159429 -0.006755
|
160 |
+
v 0.001203 0.159310 0.007318
|
161 |
+
v -0.187969 0.695674 0.109699
|
162 |
+
v -0.205232 0.679384 0.068831
|
163 |
+
v -0.217162 0.679884 0.009552
|
164 |
+
v -0.217101 0.696895 -0.035057
|
165 |
+
v -0.157738 0.535089 -0.033702
|
166 |
+
v -0.158826 0.521074 0.004133
|
167 |
+
v -0.148920 0.520659 0.053356
|
168 |
+
v -0.133321 0.534066 0.087622
|
169 |
+
v -0.091361 0.372646 -0.029945
|
170 |
+
v -0.094184 0.361803 -0.000975
|
171 |
+
v -0.086913 0.361499 0.035151
|
172 |
+
v -0.073136 0.371882 0.060614
|
173 |
+
v -0.021403 0.156277 0.001378
|
174 |
+
v 0.012515 0.156209 -0.016848
|
175 |
+
v 0.123043 0.912550 0.279222
|
176 |
+
v 0.165113 0.912466 0.256613
|
177 |
+
v 0.063370 0.822140 0.278008
|
178 |
+
v 0.196984 0.821874 0.206205
|
179 |
+
v 0.105017 0.793245 0.263088
|
180 |
+
v 0.161594 0.793133 0.232684
|
181 |
+
v 0.155567 0.850182 0.254729
|
182 |
+
v 0.126751 0.850239 0.270215
|
183 |
+
v -0.006684 0.149196 0.003287
|
184 |
+
v 0.006014 0.149171 -0.003537
|
185 |
+
v 0.172747 0.687277 0.164799
|
186 |
+
v 0.138092 0.669903 0.192756
|
187 |
+
v 0.084604 0.670009 0.221500
|
188 |
+
v 0.042131 0.687537 0.234991
|
189 |
+
v 0.022151 0.525215 0.172603
|
190 |
+
v 0.058487 0.510719 0.162168
|
191 |
+
v 0.102902 0.510630 0.138299
|
192 |
+
v 0.131625 0.524997 0.113773
|
193 |
+
v 0.002422 0.362586 0.102772
|
194 |
+
v 0.030821 0.351272 0.096685
|
195 |
+
v 0.063418 0.351208 0.079168
|
196 |
+
v 0.084135 0.362423 0.058860
|
197 |
+
v 0.006964 0.146498 0.020451
|
198 |
+
v -0.020453 0.146306 -0.006782
|
199 |
+
v 0.256901 0.904257 -0.221151
|
200 |
+
v 0.222893 0.904019 -0.254930
|
201 |
+
v 0.270148 0.813469 -0.160903
|
202 |
+
v 0.162141 0.812713 -0.268186
|
203 |
+
v 0.242689 0.783538 -0.195680
|
204 |
+
v 0.196956 0.783217 -0.241107
|
205 |
+
v 0.221795 0.840748 -0.243409
|
206 |
+
v 0.245089 0.840911 -0.220271
|
207 |
+
v 0.004263 0.138839 0.005976
|
208 |
+
v -0.006001 0.138767 -0.004220
|
209 |
+
v 0.124956 0.677507 -0.228943
|
210 |
+
v 0.161354 0.659539 -0.203332
|
211 |
+
v 0.204591 0.659842 -0.160384
|
212 |
+
v 0.230539 0.678245 -0.124068
|
213 |
+
v 0.171030 0.515443 -0.081987
|
214 |
+
v 0.149911 0.500165 -0.113393
|
215 |
+
v 0.114008 0.499913 -0.149055
|
216 |
+
v 0.082538 0.514823 -0.169887
|
217 |
+
v 0.104287 0.352607 -0.037969
|
218 |
+
v 0.089769 0.340603 -0.063118
|
219 |
+
v 0.063420 0.340418 -0.089291
|
220 |
+
v 0.038235 0.352144 -0.103579
|
221 |
+
v 0.017270 0.136686 -0.012390
|
222 |
+
v -0.000934 0.136277 0.021899
|
223 |
+
v -0.307643 0.889502 -0.196533
|
224 |
+
v -0.330223 0.888995 -0.154001
|
225 |
+
v -0.251186 0.799125 -0.225086
|
226 |
+
v -0.322901 0.797516 -0.090005
|
227 |
+
v -0.275857 0.768057 -0.187956
|
228 |
+
v -0.306224 0.767376 -0.130758
|
229 |
+
v -0.317171 0.825031 -0.155064
|
230 |
+
v -0.301705 0.825378 -0.184196
|
231 |
+
v 0.004334 0.128331 -0.005407
|
232 |
+
v -0.002481 0.128178 0.007431
|
233 |
+
v -0.270803 0.662750 -0.063128
|
234 |
+
v -0.256299 0.644241 -0.105200
|
235 |
+
v -0.227590 0.644885 -0.159275
|
236 |
+
v -0.200697 0.664322 -0.195177
|
237 |
+
v -0.138650 0.502355 -0.147161
|
238 |
+
v -0.162308 0.486149 -0.117392
|
239 |
+
v -0.186147 0.485614 -0.072490
|
240 |
+
v -0.197407 0.501038 -0.036486
|
241 |
+
v -0.072632 0.340705 -0.092769
|
242 |
+
v -0.092280 0.327875 -0.071233
|
243 |
+
v -0.109775 0.327483 -0.038278
|
244 |
+
v -0.116490 0.339722 -0.010159
|
245 |
+
v -0.017541 0.126477 -0.012915
|
246 |
+
v 0.020782 0.126287 -0.005444
|
247 |
+
v -0.100106 0.871535 0.378068
|
248 |
+
v -0.052571 0.871299 0.387335
|
249 |
+
v -0.144051 0.781305 0.329145
|
250 |
+
v 0.006918 0.780557 0.358576
|
251 |
+
v -0.101092 0.749684 0.340975
|
252 |
+
v -0.037166 0.749367 0.353437
|
253 |
+
v -0.057382 0.806767 0.372970
|
254 |
+
v -0.089942 0.806929 0.366623
|
255 |
+
v -0.007035 0.117577 -0.002805
|
256 |
+
v 0.007312 0.117506 -0.000008
|
257 |
+
v 0.017614 0.646696 0.296187
|
258 |
+
v -0.027110 0.627203 0.293909
|
259 |
+
v -0.087546 0.627502 0.282128
|
260 |
+
v -0.129968 0.647427 0.267417
|
261 |
+
v -0.101825 0.487023 0.188395
|
262 |
+
v -0.066253 0.470345 0.201895
|
263 |
+
v -0.016068 0.470096 0.211679
|
264 |
+
v 0.021868 0.486410 0.212508
|
265 |
+
v -0.068706 0.327334 0.103710
|
266 |
+
v -0.042231 0.314022 0.115873
|
267 |
+
v -0.005400 0.313839 0.123053
|
268 |
+
v 0.023620 0.326876 0.121709
|
269 |
+
v -0.008125 0.116080 0.020907
|
270 |
+
v -0.012124 0.115952 -0.018130
|
271 |
+
v 0.423921 0.854802 -0.018667
|
272 |
+
v 0.418961 0.854643 -0.067087
|
273 |
+
v 0.385823 0.764836 0.038459
|
274 |
+
v 0.370070 0.764332 -0.115323
|
275 |
+
v 0.383330 0.732596 -0.006121
|
276 |
+
v 0.376659 0.732383 -0.071237
|
277 |
+
v 0.403796 0.789634 -0.057863
|
278 |
+
v 0.407194 0.789743 -0.024698
|
279 |
+
v -0.001839 0.106677 0.007900
|
280 |
+
v -0.003336 0.106629 -0.006715
|
281 |
+
v 0.301215 0.631203 -0.106532
|
282 |
+
v 0.311242 0.611009 -0.062741
|
283 |
+
v 0.317548 0.611210 -0.001179
|
284 |
+
v 0.316614 0.631695 0.043798
|
285 |
+
v 0.225534 0.472529 0.040840
|
286 |
+
v 0.227439 0.455328 0.002784
|
287 |
+
v 0.222202 0.455161 -0.048335
|
288 |
+
v 0.212627 0.472117 -0.085157
|
289 |
+
v 0.127581 0.314403 0.034751
|
290 |
+
v 0.130996 0.300589 0.005814
|
291 |
+
v 0.127153 0.300467 -0.031704
|
292 |
+
v 0.117948 0.314095 -0.059295
|
293 |
+
v 0.021845 0.105766 0.002079
|
294 |
+
v -0.014615 0.105357 0.017354
|
295 |
+
v -0.147938 0.832487 -0.427533
|
296 |
+
v -0.193163 0.831979 -0.408587
|
297 |
+
v -0.081084 0.743863 -0.404476
|
298 |
+
v -0.224718 0.742252 -0.344302
|
299 |
+
v -0.123098 0.710679 -0.387893
|
300 |
+
v -0.183918 0.709997 -0.362413
|
301 |
+
v -0.179372 0.766869 -0.394423
|
302 |
+
v -0.148394 0.767216 -0.407400
|
303 |
+
v 0.007536 0.095710 0.000178
|
304 |
+
v -0.006115 0.095556 0.005897
|
305 |
+
v -0.195155 0.610822 -0.276019
|
306 |
+
v -0.155728 0.590320 -0.297761
|
307 |
+
v -0.098228 0.590965 -0.321850
|
308 |
+
v -0.054744 0.612397 -0.334843
|
309 |
+
v -0.029821 0.455562 -0.240845
|
310 |
+
v -0.066940 0.437503 -0.230929
|
311 |
+
v -0.114686 0.436967 -0.210926
|
312 |
+
v -0.147504 0.454242 -0.191543
|
313 |
+
v -0.005914 0.300115 -0.139366
|
314 |
+
v -0.034709 0.285531 -0.133688
|
315 |
+
v -0.069751 0.285138 -0.119008
|
316 |
+
v -0.093755 0.299130 -0.102566
|
317 |
+
v -0.005108 0.095188 -0.021422
|
318 |
+
v 0.020286 0.094861 0.009210
|
319 |
+
v -0.384314 0.803793 0.282486
|
320 |
+
v -0.352815 0.803388 0.320482
|
321 |
+
v -0.379837 0.716687 0.209568
|
322 |
+
v -0.279797 0.715403 0.330243
|
323 |
+
v -0.350884 0.683070 0.244505
|
324 |
+
v -0.308524 0.682526 0.295603
|
325 |
+
v -0.341865 0.738462 0.301741
|
326 |
+
v -0.363441 0.738739 0.275715
|
327 |
+
v -0.002547 0.084565 -0.007289
|
328 |
+
v 0.006961 0.084443 0.004180
|
329 |
+
v -0.219953 0.586679 0.279137
|
330 |
+
v -0.252018 0.565485 0.247118
|
331 |
+
v -0.292066 0.565999 0.198810
|
332 |
+
v -0.317748 0.587935 0.161170
|
333 |
+
v -0.231248 0.434829 0.106492
|
334 |
+
v -0.210461 0.416274 0.138971
|
335 |
+
v -0.177206 0.415847 0.179085
|
336 |
+
v -0.149282 0.433776 0.205364
|
337 |
+
v -0.137268 0.283541 0.050631
|
338 |
+
v -0.123074 0.268448 0.076405
|
339 |
+
v -0.098667 0.268135 0.105845
|
340 |
+
v -0.076088 0.282755 0.124431
|
341 |
+
v -0.020132 0.084291 0.011473
|
342 |
+
v 0.001999 0.084189 -0.021971
|
343 |
+
v 0.409370 0.776995 0.299372
|
344 |
+
v 0.436821 0.776868 0.257889
|
345 |
+
v 0.334566 0.691032 0.314988
|
346 |
+
v 0.421751 0.690630 0.183237
|
347 |
+
v 0.358614 0.657243 0.276295
|
348 |
+
v 0.395531 0.657073 0.220507
|
349 |
+
v 0.413204 0.712113 0.251751
|
350 |
+
v 0.394401 0.712200 0.280166
|
351 |
+
v -0.007624 0.073242 0.004682
|
352 |
+
v 0.000662 0.073204 -0.007839
|
353 |
+
v 0.350326 0.564289 0.138441
|
354 |
+
v 0.328032 0.542345 0.178353
|
355 |
+
v 0.293130 0.542506 0.231095
|
356 |
+
v 0.265098 0.564681 0.267236
|
357 |
+
v 0.181565 0.414897 0.197410
|
358 |
+
v 0.206168 0.396081 0.167554
|
359 |
+
v 0.235150 0.395947 0.123758
|
360 |
+
v 0.252998 0.414568 0.089463
|
361 |
+
v 0.094771 0.267310 0.120760
|
362 |
+
v 0.114954 0.251906 0.099277
|
363 |
+
v 0.136224 0.251808 0.067134
|
364 |
+
v 0.148090 0.267065 0.040187
|
365 |
+
v 0.016015 0.073486 0.016455
|
366 |
+
v -0.022767 0.073162 0.004928
|
367 |
+
v 0.179250 0.747851 -0.506367
|
368 |
+
v 0.131145 0.747450 -0.520665
|
369 |
+
v 0.214867 0.663930 -0.435798
|
370 |
+
v 0.062088 0.662654 -0.481209
|
371 |
+
v 0.169901 0.629555 -0.446428
|
372 |
+
v 0.105209 0.629014 -0.465656
|
373 |
+
v 0.131088 0.683154 -0.493797
|
374 |
+
v 0.164037 0.683429 -0.484004
|
375 |
+
v 0.005605 0.061892 0.006790
|
376 |
+
v -0.008914 0.061771 0.002474
|
377 |
+
v 0.037733 0.539156 -0.394767
|
378 |
+
v 0.082443 0.517025 -0.384186
|
379 |
+
v 0.143604 0.517536 -0.366007
|
380 |
+
v 0.187084 0.540403 -0.350375
|
381 |
+
v 0.141735 0.394335 -0.244105
|
382 |
+
v 0.105384 0.374875 -0.258393
|
383 |
+
v 0.054598 0.374451 -0.273488
|
384 |
+
v 0.016559 0.393290 -0.281311
|
385 |
+
v 0.090793 0.250804 -0.132774
|
386 |
+
v 0.063878 0.234799 -0.145377
|
387 |
+
v 0.026605 0.234488 -0.156455
|
388 |
+
v -0.002640 0.250023 -0.160546
|
389 |
+
v 0.010240 0.062615 -0.019914
|
390 |
+
v 0.010463 0.062193 0.020881
|
391 |
+
v -0.561281 0.709940 -0.024963
|
392 |
+
v -0.561004 0.709417 0.025640
|
393 |
+
v -0.501201 0.628847 -0.079900
|
394 |
+
v -0.500323 0.627185 0.080813
|
395 |
+
v -0.497346 0.594161 -0.033335
|
396 |
+
v -0.496974 0.593458 0.034716
|
397 |
+
v -0.533237 0.646066 0.017923
|
398 |
+
v -0.533427 0.646424 -0.016738
|
399 |
+
v 0.004278 0.050474 -0.007009
|
400 |
+
v 0.004362 0.050316 0.008265
|
401 |
+
v -0.406263 0.507988 0.079132
|
402 |
+
v -0.408502 0.485567 0.032941
|
403 |
+
v -0.408853 0.486232 -0.031395
|
404 |
+
v -0.407121 0.509613 -0.077975
|
405 |
+
v -0.287140 0.369135 -0.065194
|
406 |
+
v -0.289755 0.349168 -0.025892
|
407 |
+
v -0.289463 0.348615 0.027532
|
408 |
+
v -0.286420 0.367773 0.066482
|
409 |
+
v -0.160708 0.231614 -0.048511
|
410 |
+
v -0.164553 0.215095 -0.018813
|
411 |
+
v -0.164339 0.214689 0.020396
|
412 |
+
v -0.160171 0.230597 0.049774
|
413 |
+
v -0.023365 0.051376 -0.003669
|
414 |
+
v 0.016016 0.051244 -0.015863
|
415 |
+
v 0.150424 0.672242 0.568902
|
416 |
+
v 0.199272 0.672079 0.553776
|
417 |
+
v 0.078288 0.593430 0.524582
|
418 |
+
v 0.233428 0.592910 0.476543
|
419 |
+
v 0.121597 0.558971 0.506141
|
420 |
+
v 0.187289 0.558751 0.485800
|
421 |
+
v 0.182582 0.609670 0.527316
|
422 |
+
v 0.149123 0.609783 0.537676
|
423 |
+
v -0.009344 0.038878 -0.002076
|
424 |
+
v 0.005400 0.038828 -0.006642
|
425 |
+
v 0.202180 0.477937 0.382659
|
426 |
+
v 0.157782 0.454869 0.397680
|
427 |
+
v 0.095676 0.455077 0.416911
|
428 |
+
v 0.050521 0.478445 0.429620
|
429 |
+
v 0.025294 0.343561 0.305839
|
430 |
+
v 0.063728 0.323538 0.296222
|
431 |
+
v 0.115299 0.323365 0.280252
|
432 |
+
v 0.152404 0.343135 0.266479
|
433 |
+
v 0.002000 0.212052 0.174784
|
434 |
+
v 0.031566 0.195372 0.169274
|
435 |
+
v 0.069414 0.195245 0.157554
|
436 |
+
v 0.096877 0.211734 0.145405
|
437 |
+
v 0.002134 0.040133 0.024077
|
438 |
+
v -0.021222 0.039944 -0.010376
|
439 |
+
v 0.526370 0.636591 -0.325500
|
440 |
+
v 0.497401 0.636356 -0.368235
|
441 |
+
v 0.501941 0.560350 -0.241086
|
442 |
+
v 0.409935 0.559605 -0.376812
|
443 |
+
v 0.470186 0.525787 -0.276743
|
444 |
+
v 0.431228 0.525472 -0.334213
|
445 |
+
v 0.474529 0.574943 -0.342975
|
446 |
+
v 0.494372 0.575103 -0.313703
|
447 |
+
v -0.000885 0.027238 0.010343
|
448 |
+
v -0.009629 0.027168 -0.002556
|
449 |
+
v 0.324320 0.448572 -0.316544
|
450 |
+
v 0.351063 0.425323 -0.277563
|
451 |
+
v 0.387896 0.425621 -0.223229
|
452 |
+
v 0.414262 0.449301 -0.183864
|
453 |
+
v 0.297282 0.319493 -0.120197
|
454 |
+
v 0.275995 0.299147 -0.154053
|
455 |
+
v 0.245411 0.298900 -0.199170
|
456 |
+
v 0.221899 0.318882 -0.231400
|
457 |
+
v 0.172823 0.193394 -0.056337
|
458 |
+
v 0.158228 0.176369 -0.082908
|
459 |
+
v 0.135782 0.176187 -0.116020
|
460 |
+
v 0.116555 0.192939 -0.139341
|
461 |
+
v 0.021435 0.029006 -0.008703
|
462 |
+
v -0.005064 0.028574 0.023998
|
463 |
+
v -0.482886 0.592366 -0.426117
|
464 |
+
v -0.515755 0.591831 -0.385555
|
465 |
+
v -0.392446 0.519918 -0.425573
|
466 |
+
v -0.496839 0.518217 -0.296748
|
467 |
+
v -0.416941 0.485207 -0.383583
|
468 |
+
v -0.461144 0.484487 -0.329035
|
469 |
+
v -0.483336 0.531991 -0.369443
|
470 |
+
v -0.460822 0.532358 -0.397227
|
471 |
+
v 0.009291 0.015636 -0.001434
|
472 |
+
v -0.000630 0.015474 0.010809
|
473 |
+
v -0.411120 0.412613 -0.229188
|
474 |
+
v -0.380749 0.389457 -0.265932
|
475 |
+
v -0.338959 0.390139 -0.317503
|
476 |
+
v -0.309071 0.414276 -0.355123
|
477 |
+
v -0.210482 0.291331 -0.257834
|
478 |
+
v -0.236595 0.270528 -0.226821
|
479 |
+
v -0.271297 0.269963 -0.183998
|
480 |
+
v -0.296013 0.289937 -0.152285
|
481 |
+
v -0.109590 0.172473 -0.153470
|
482 |
+
v -0.130681 0.154983 -0.131145
|
483 |
+
v -0.156149 0.154568 -0.099716
|
484 |
+
v -0.173432 0.171432 -0.074687
|
485 |
+
v -0.016060 0.017580 -0.017663
|
486 |
+
v 0.023399 0.017375 -0.001660
|
487 |
+
v -0.275353 0.544556 0.609352
|
488 |
+
v -0.226410 0.544301 0.629203
|
489 |
+
v -0.300979 0.475654 0.519586
|
490 |
+
v -0.145535 0.474846 0.582631
|
491 |
+
v -0.252905 0.441457 0.529894
|
492 |
+
v -0.187085 0.441115 0.556590
|
493 |
+
v -0.219975 0.486215 0.591334
|
494 |
+
v -0.253500 0.486389 0.577737
|
495 |
+
v -0.005367 0.003913 -0.008460
|
496 |
+
v 0.009406 0.003836 -0.002468
|
497 |
+
v -0.104682 0.375229 0.476757
|
498 |
+
v -0.149047 0.351711 0.457488
|
499 |
+
v -0.211274 0.352034 0.432250
|
500 |
+
v -0.256638 0.376018 0.415126
|
501 |
+
v -0.190679 0.260776 0.287561
|
502 |
+
v -0.152843 0.240031 0.303075
|
503 |
+
v -0.101171 0.239763 0.324032
|
504 |
+
v -0.063320 0.260115 0.339216
|
505 |
+
v -0.118574 0.150043 0.155815
|
506 |
+
v -0.090646 0.132481 0.169124
|
507 |
+
v -0.052724 0.132284 0.184505
|
508 |
+
v -0.023511 0.149549 0.194371
|
509 |
+
v -0.013737 0.006000 0.021246
|
510 |
+
v -0.009827 0.005942 -0.021638
|
511 |
+
v 0.691467 0.502131 0.087619
|
512 |
+
v 0.696318 0.502060 0.034426
|
513 |
+
v 0.609191 0.436319 0.138819
|
514 |
+
v 0.624597 0.436091 -0.030122
|
515 |
+
v 0.603644 0.402552 0.089263
|
516 |
+
v 0.610168 0.402455 0.017728
|
517 |
+
v 0.655341 0.445518 0.039330
|
518 |
+
v 0.652019 0.445567 0.075766
|
519 |
+
v -0.008531 -0.007903 0.008186
|
520 |
+
v -0.007067 -0.007925 -0.007870
|
521 |
+
v 0.505938 0.341569 -0.038500
|
522 |
+
v 0.499318 0.317835 0.010083
|
523 |
+
v 0.493151 0.317926 0.077713
|
524 |
+
v 0.490877 0.341792 0.126650
|
525 |
+
v 0.343196 0.233075 0.100369
|
526 |
+
v 0.346254 0.212370 0.059189
|
527 |
+
v 0.351375 0.212294 0.003031
|
528 |
+
v 0.355819 0.232888 -0.038049
|
529 |
+
v 0.189849 0.129203 0.069374
|
530 |
+
v 0.193812 0.111580 0.038430
|
531 |
+
v 0.197570 0.111524 -0.002785
|
532 |
+
v 0.199271 0.129064 -0.033943
|
533 |
+
v 0.023159 -0.005370 0.007493
|
534 |
+
v -0.019574 -0.005709 0.016338
|
535 |
+
v -0.120490 0.454715 -0.712013
|
536 |
+
v -0.173495 0.454295 -0.701042
|
537 |
+
v -0.046570 0.393172 -0.645126
|
538 |
+
v -0.214913 0.391837 -0.610282
|
539 |
+
v -0.092957 0.359492 -0.623934
|
540 |
+
v -0.164239 0.358926 -0.609180
|
541 |
+
v -0.156627 0.399752 -0.660792
|
542 |
+
v -0.120321 0.400040 -0.668307
|
543 |
+
v 0.008975 -0.019630 0.006817
|
544 |
+
v -0.007024 -0.019757 0.010128
|
545 |
+
v -0.188027 0.303342 -0.489631
|
546 |
+
v -0.138950 0.279951 -0.496658
|
547 |
+
v -0.071559 0.280485 -0.510607
|
548 |
+
v -0.023461 0.304647 -0.523693
|
549 |
+
v -0.005380 0.203440 -0.369195
|
550 |
+
v -0.046190 0.182422 -0.359267
|
551 |
+
v -0.102150 0.181978 -0.347684
|
552 |
+
v -0.143308 0.202346 -0.340646
|
553 |
+
v 0.009793 0.107395 -0.208011
|
554 |
+
v -0.021360 0.089438 -0.202084
|
555 |
+
v -0.062430 0.089112 -0.193584
|
556 |
+
v -0.093158 0.106579 -0.186702
|
557 |
+
v -0.001179 -0.016871 -0.024033
|
558 |
+
v 0.019972 -0.017152 0.014742
|
559 |
+
v -0.667433 0.399510 0.333954
|
560 |
+
v -0.641197 0.399161 0.382050
|
561 |
+
v -0.622856 0.342649 0.241736
|
562 |
+
v -0.539531 0.341542 0.394487
|
563 |
+
v -0.587849 0.309636 0.279911
|
564 |
+
v -0.552567 0.309168 0.344591
|
565 |
+
v -0.605821 0.347080 0.353037
|
566 |
+
v -0.623791 0.347319 0.320094
|
567 |
+
v 0.002687 -0.031370 -0.010312
|
568 |
+
v 0.010605 -0.031475 0.004205
|
569 |
+
v -0.428356 0.260375 0.331577
|
570 |
+
v -0.449032 0.237038 0.285766
|
571 |
+
v -0.482389 0.237481 0.224616
|
572 |
+
v -0.509811 0.261457 0.182254
|
573 |
+
v -0.362933 0.169485 0.117709
|
574 |
+
v -0.340792 0.148553 0.153991
|
575 |
+
v -0.313094 0.148185 0.204768
|
576 |
+
v -0.294663 0.168578 0.242862
|
577 |
+
v -0.208847 0.083063 0.054089
|
578 |
+
v -0.193500 0.065066 0.082244
|
579 |
+
v -0.173172 0.064796 0.119510
|
580 |
+
v -0.157889 0.082386 0.147505
|
581 |
+
v -0.036901 0.275579 0.036901
|
582 |
+
v 0.036901 0.275579 0.036901
|
583 |
+
v -0.036901 0.275579 -0.036901
|
584 |
+
v 0.036901 0.275579 -0.036901
|
585 |
+
v 0.000000 0.285584 0.048805
|
586 |
+
v 0.000000 0.285584 -0.048805
|
587 |
+
v -0.050888 0.245847 0.050888
|
588 |
+
v 0.050888 0.245847 0.050888
|
589 |
+
v -0.048805 0.285584 0.000000
|
590 |
+
v 0.048805 0.285584 0.000000
|
591 |
+
v -0.050888 0.245847 -0.050888
|
592 |
+
v 0.050888 0.245847 -0.050888
|
593 |
+
v 0.000000 0.245847 0.073065
|
594 |
+
v 0.000000 0.302902 0.000000
|
595 |
+
v 0.000000 0.245847 -0.073065
|
596 |
+
v 0.073065 0.245847 0.000000
|
597 |
+
v -0.073065 0.245847 0.000000
|
598 |
+
v 0.055263 0.142766 0.055263
|
599 |
+
v 0.000000 0.142766 0.079482
|
600 |
+
v -0.055263 0.142766 0.055263
|
601 |
+
v 0.055263 0.142766 -0.055263
|
602 |
+
v 0.000000 0.142766 -0.079482
|
603 |
+
v -0.055263 0.142766 -0.055263
|
604 |
+
v 0.079482 0.142766 0.000000
|
605 |
+
v -0.079482 0.142766 0.000000
|
606 |
+
v 0.000000 -0.060654 0.036102
|
607 |
+
v 0.027321 -0.053964 0.027321
|
608 |
+
v 0.038987 -0.034082 0.038987
|
609 |
+
v 0.000000 -0.034082 0.056511
|
610 |
+
v -0.038987 -0.034082 0.038987
|
611 |
+
v -0.027321 -0.053964 0.027321
|
612 |
+
v 0.038987 -0.034082 -0.038987
|
613 |
+
v 0.027321 -0.053964 -0.027321
|
614 |
+
v 0.000000 -0.060654 -0.036102
|
615 |
+
v 0.000000 -0.034082 -0.056511
|
616 |
+
v -0.027321 -0.053964 -0.027321
|
617 |
+
v -0.038987 -0.034082 -0.038987
|
618 |
+
v 0.036102 -0.060654 0.000000
|
619 |
+
v 0.000000 -0.072234 0.000000
|
620 |
+
v -0.036102 -0.060654 0.000000
|
621 |
+
v 0.056511 -0.034082 0.000000
|
622 |
+
v -0.056511 -0.034082 0.000000
|
623 |
+
v 0.065890 0.030812 0.000000
|
624 |
+
v 0.045746 0.030812 -0.045746
|
625 |
+
v 0.000000 0.030812 -0.065890
|
626 |
+
v -0.045746 0.030812 -0.045746
|
627 |
+
v -0.065890 0.030812 0.000000
|
628 |
+
v -0.045746 0.030812 0.045746
|
629 |
+
v 0.000000 0.030812 0.065890
|
630 |
+
v 0.045746 0.030812 0.045746
|
631 |
+
vn -0.162589 -0.061242 0.984792
|
632 |
+
vn 0.162588 -0.061242 0.984792
|
633 |
+
vn 0.146210 0.093027 0.984870
|
634 |
+
vn -0.146210 0.093027 0.984870
|
635 |
+
vn -0.147419 -0.157611 0.976435
|
636 |
+
vn 0.147420 -0.157611 0.976435
|
637 |
+
vn 0.139679 -0.123573 0.982456
|
638 |
+
vn -0.139679 -0.123573 0.982456
|
639 |
+
vn 0.307302 -0.009724 0.951562
|
640 |
+
vn 0.125512 0.158613 0.979331
|
641 |
+
vn -0.125512 0.158613 0.979331
|
642 |
+
vn -0.307302 -0.009724 0.951562
|
643 |
+
vn 0.329044 -0.156018 0.931337
|
644 |
+
vn 0.315603 -0.115932 0.941783
|
645 |
+
vn -0.315603 -0.115933 0.941783
|
646 |
+
vn -0.329044 -0.156018 0.931337
|
647 |
+
vn -0.409287 -0.200672 0.890065
|
648 |
+
vn -0.198263 -0.202601 0.958981
|
649 |
+
vn 0.198263 -0.202601 0.958981
|
650 |
+
vn 0.409287 -0.200672 0.890065
|
651 |
+
vn -0.492326 -0.230829 0.839245
|
652 |
+
vn -0.226709 -0.229927 0.946434
|
653 |
+
vn 0.226709 -0.229927 0.946434
|
654 |
+
vn 0.492326 -0.230829 0.839246
|
655 |
+
vn 0.985572 -0.108963 -0.129520
|
656 |
+
vn 0.891023 -0.108963 -0.440688
|
657 |
+
vn 0.902759 0.041562 -0.428135
|
658 |
+
vn 0.988340 0.041562 -0.146481
|
659 |
+
vn 0.969295 -0.201864 -0.140425
|
660 |
+
vn 0.883564 -0.201864 -0.422571
|
661 |
+
vn 0.892887 -0.169113 -0.417318
|
662 |
+
vn 0.974119 -0.169113 -0.149977
|
663 |
+
vn 0.819460 -0.055920 -0.570402
|
664 |
+
vn 0.907842 0.106256 -0.405627
|
665 |
+
vn 0.980042 0.106256 -0.168012
|
666 |
+
vn 0.998272 -0.055920 0.018080
|
667 |
+
vn 0.787771 -0.198019 -0.583271
|
668 |
+
vn 0.803165 -0.159586 -0.573985
|
669 |
+
vn 0.986724 -0.159586 0.030123
|
670 |
+
vn 0.979099 -0.198019 0.046403
|
671 |
+
vn 0.961417 -0.239350 0.135610
|
672 |
+
vn 0.965761 -0.244698 -0.086187
|
673 |
+
vn 0.850453 -0.244698 -0.465675
|
674 |
+
vn 0.723448 -0.239349 -0.647561
|
675 |
+
vn 0.936055 -0.266142 0.230151
|
676 |
+
vn 0.961121 -0.270598 -0.054983
|
677 |
+
vn 0.829237 -0.270598 -0.489022
|
678 |
+
vn 0.649777 -0.266142 -0.712010
|
679 |
+
vn -0.405810 -0.147135 -0.902037
|
680 |
+
vn -0.676517 -0.144925 -0.722026
|
681 |
+
vn -0.672399 0.001354 -0.740188
|
682 |
+
vn -0.427233 0.000031 -0.904142
|
683 |
+
vn -0.409671 -0.236834 -0.880954
|
684 |
+
vn -0.655548 -0.235094 -0.717626
|
685 |
+
vn -0.653736 -0.203354 -0.728887
|
686 |
+
vn -0.420918 -0.205114 -0.883604
|
687 |
+
vn -0.781667 -0.090031 -0.617164
|
688 |
+
vn -0.651653 0.065143 -0.755715
|
689 |
+
vn -0.448404 0.062834 -0.891620
|
690 |
+
vn -0.270860 -0.092950 -0.958121
|
691 |
+
vn -0.782320 -0.228392 -0.579493
|
692 |
+
vn -0.778433 -0.191306 -0.597866
|
693 |
+
vn -0.252577 -0.194965 -0.947731
|
694 |
+
vn -0.233983 -0.232136 -0.944121
|
695 |
+
vn -0.142966 -0.271221 -0.951840
|
696 |
+
vn -0.355305 -0.278303 -0.892360
|
697 |
+
vn -0.686625 -0.276071 -0.672555
|
698 |
+
vn -0.825052 -0.266784 -0.498111
|
699 |
+
vn -0.043411 -0.296057 -0.954183
|
700 |
+
vn -0.326417 -0.303168 -0.895288
|
701 |
+
vn -0.703088 -0.300750 -0.644374
|
702 |
+
vn -0.865442 -0.290551 -0.408156
|
703 |
+
vn -0.741498 -0.178078 0.646892
|
704 |
+
vn -0.489182 -0.176879 0.854058
|
705 |
+
vn -0.511385 -0.033474 0.858700
|
706 |
+
vn -0.740576 -0.034168 0.671103
|
707 |
+
vn -0.718837 -0.265665 0.642414
|
708 |
+
vn -0.489321 -0.264707 0.830961
|
709 |
+
vn -0.501335 -0.233700 0.833095
|
710 |
+
vn -0.718536 -0.234664 0.654705
|
711 |
+
vn -0.359923 -0.120484 0.925170
|
712 |
+
vn -0.535327 0.028756 0.844155
|
713 |
+
vn -0.722079 0.027550 0.691262
|
714 |
+
vn -0.835881 -0.122024 0.535176
|
715 |
+
vn -0.319620 -0.256719 0.912107
|
716 |
+
vn -0.339202 -0.220582 0.914486
|
717 |
+
vn -0.829783 -0.222577 0.511781
|
718 |
+
vn -0.831251 -0.258772 0.491994
|
719 |
+
vn -0.864852 -0.295606 0.405769
|
720 |
+
vn -0.745299 -0.305859 0.592435
|
721 |
+
vn -0.435623 -0.304624 0.847017
|
722 |
+
vn -0.228296 -0.293157 0.928407
|
723 |
+
vn -0.896128 -0.318118 0.309445
|
724 |
+
vn -0.755750 -0.329862 0.565714
|
725 |
+
vn -0.405456 -0.328510 0.853046
|
726 |
+
vn -0.128436 -0.315079 0.940335
|
727 |
+
vn 0.827203 -0.217175 0.518238
|
728 |
+
vn 0.951811 -0.217490 0.216227
|
729 |
+
vn 0.967952 -0.077520 0.238870
|
730 |
+
vn 0.854525 -0.077332 0.513621
|
731 |
+
vn 0.813595 -0.301967 0.496869
|
732 |
+
vn 0.927043 -0.302269 0.221868
|
733 |
+
vn 0.933517 -0.272308 0.233228
|
734 |
+
vn 0.826192 -0.272026 0.493364
|
735 |
+
vn 0.984366 -0.160064 0.073510
|
736 |
+
vn 0.963070 -0.016908 0.268721
|
737 |
+
vn 0.872117 -0.016730 0.489011
|
738 |
+
vn 0.749642 -0.159641 0.642302
|
739 |
+
vn 0.955433 -0.293018 0.035902
|
740 |
+
vn 0.964558 -0.258188 0.054469
|
741 |
+
vn 0.722272 -0.257601 0.641845
|
742 |
+
vn 0.702735 -0.292380 0.648597
|
743 |
+
vn 0.629013 -0.326174 0.705659
|
744 |
+
vn 0.772411 -0.340232 0.536305
|
745 |
+
vn 0.925638 -0.340650 0.164777
|
746 |
+
vn 0.943334 -0.326977 -0.056641
|
747 |
+
vn 0.545466 -0.345500 0.763608
|
748 |
+
vn 0.748995 -0.363026 0.554273
|
749 |
+
vn 0.921634 -0.363506 0.135850
|
750 |
+
vn 0.924834 -0.346483 -0.156946
|
751 |
+
vn 0.256192 -0.254216 -0.932599
|
752 |
+
vn -0.069094 -0.252587 -0.965104
|
753 |
+
vn -0.053215 -0.116485 -0.991766
|
754 |
+
vn 0.243143 -0.117546 -0.962842
|
755 |
+
vn 0.239599 -0.336240 -0.910788
|
756 |
+
vn -0.056921 -0.334989 -0.940501
|
757 |
+
vn -0.047807 -0.305935 -0.950851
|
758 |
+
vn 0.232557 -0.307219 -0.922786
|
759 |
+
vn -0.215624 -0.193616 -0.957089
|
760 |
+
vn -0.020606 -0.056963 -0.998164
|
761 |
+
vn 0.213504 -0.058755 -0.975174
|
762 |
+
vn 0.396306 -0.195883 -0.896979
|
763 |
+
vn -0.243617 -0.322997 -0.914507
|
764 |
+
vn -0.228322 -0.289396 -0.929580
|
765 |
+
vn 0.404620 -0.292102 -0.866579
|
766 |
+
vn 0.416723 -0.325733 -0.848669
|
767 |
+
vn 0.492417 -0.357408 -0.793590
|
768 |
+
vn 0.289814 -0.373229 -0.881311
|
769 |
+
vn -0.111297 -0.371658 -0.921674
|
770 |
+
vn -0.329223 -0.354173 -0.875314
|
771 |
+
vn 0.572972 -0.374692 -0.728910
|
772 |
+
vn 0.311004 -0.395178 -0.864356
|
773 |
+
vn -0.138563 -0.393431 -0.908852
|
774 |
+
vn -0.420337 -0.370714 -0.828184
|
775 |
+
vn -0.959296 -0.281551 0.021917
|
776 |
+
vn -0.895638 -0.279699 0.345834
|
777 |
+
vn -0.929531 -0.145339 0.338894
|
778 |
+
vn -0.988185 -0.146582 0.044771
|
779 |
+
vn -0.931503 -0.362426 0.030822
|
780 |
+
vn -0.873429 -0.361031 0.326770
|
781 |
+
vn -0.886855 -0.332322 0.321016
|
782 |
+
vn -0.941744 -0.333767 0.041440
|
783 |
+
vn -0.846843 -0.218887 0.484712
|
784 |
+
vn -0.947387 -0.086746 0.308112
|
785 |
+
vn -0.992937 -0.088857 0.078616
|
786 |
+
vn -0.967456 -0.221532 -0.122280
|
787 |
+
vn -0.793613 -0.347157 0.499660
|
788 |
+
vn -0.813585 -0.314097 0.489308
|
789 |
+
vn -0.937827 -0.317169 -0.141015
|
790 |
+
vn -0.923185 -0.350238 -0.158311
|
791 |
+
vn -0.891103 -0.380279 -0.247635
|
792 |
+
vn -0.916670 -0.398722 -0.027133
|
793 |
+
vn -0.838133 -0.396995 0.374069
|
794 |
+
vn -0.729642 -0.376649 0.570753
|
795 |
+
vn -0.851002 -0.395696 -0.345282
|
796 |
+
vn -0.906012 -0.420225 -0.050534
|
797 |
+
vn -0.817852 -0.418296 0.395153
|
798 |
+
vn -0.656041 -0.391240 0.645400
|
799 |
+
vn 0.296252 -0.313013 0.902362
|
800 |
+
vn 0.588171 -0.313167 0.745642
|
801 |
+
vn 0.592318 -0.181090 0.785089
|
802 |
+
vn 0.327380 -0.180984 0.927398
|
803 |
+
vn 0.295361 -0.392310 0.871122
|
804 |
+
vn 0.562434 -0.392516 0.727736
|
805 |
+
vn 0.561145 -0.364454 0.743162
|
806 |
+
vn 0.308987 -0.364286 0.878535
|
807 |
+
vn 0.706858 -0.251577 0.661106
|
808 |
+
vn 0.568373 -0.124053 0.813365
|
809 |
+
vn 0.363975 -0.124131 0.923100
|
810 |
+
vn 0.160801 -0.251345 0.954447
|
811 |
+
vn 0.704629 -0.377776 0.600652
|
812 |
+
vn 0.700968 -0.345565 0.623882
|
813 |
+
vn 0.132738 -0.345217 0.929089
|
814 |
+
vn 0.111316 -0.377365 0.919350
|
815 |
+
vn 0.015458 -0.404983 0.914194
|
816 |
+
vn 0.234872 -0.427247 0.873096
|
817 |
+
vn 0.597438 -0.427563 0.678423
|
818 |
+
vn 0.753370 -0.405528 0.517669
|
819 |
+
vn -0.090563 -0.417631 0.904092
|
820 |
+
vn 0.208620 -0.447957 0.869375
|
821 |
+
vn 0.609010 -0.448317 0.654307
|
822 |
+
vn 0.803577 -0.418274 0.423451
|
823 |
+
vn 0.768918 -0.349231 -0.535539
|
824 |
+
vn 0.533772 -0.348503 -0.770476
|
825 |
+
vn 0.572997 -0.219651 -0.789574
|
826 |
+
vn 0.786853 -0.220149 -0.576538
|
827 |
+
vn 0.737558 -0.426246 -0.523758
|
828 |
+
vn 0.522246 -0.425746 -0.738918
|
829 |
+
vn 0.538067 -0.398500 -0.742753
|
830 |
+
vn 0.741280 -0.399044 -0.539693
|
831 |
+
vn 0.419699 -0.285685 -0.861532
|
832 |
+
vn 0.609949 -0.163809 -0.775325
|
833 |
+
vn 0.772869 -0.164773 -0.612800
|
834 |
+
vn 0.859486 -0.286736 -0.423162
|
835 |
+
vn 0.359242 -0.408643 -0.839021
|
836 |
+
vn 0.383322 -0.377549 -0.842924
|
837 |
+
vn 0.841322 -0.378720 -0.385680
|
838 |
+
vn 0.837498 -0.409785 -0.361489
|
839 |
+
vn 0.859718 -0.435132 -0.267480
|
840 |
+
vn 0.756477 -0.459844 -0.465065
|
841 |
+
vn 0.463915 -0.459265 -0.757535
|
842 |
+
vn 0.264788 -0.433808 -0.861219
|
843 |
+
vn 0.880653 -0.445308 -0.161711
|
844 |
+
vn 0.759100 -0.479796 -0.439958
|
845 |
+
vn 0.437127 -0.479119 -0.761160
|
846 |
+
vn 0.159261 -0.443682 -0.881920
|
847 |
+
vn -0.722935 -0.377185 -0.578875
|
848 |
+
vn -0.882489 -0.375518 -0.283195
|
849 |
+
vn -0.915606 -0.247739 -0.316689
|
850 |
+
vn -0.772067 -0.249011 -0.584727
|
851 |
+
vn -0.700315 -0.453478 -0.551286
|
852 |
+
vn -0.846732 -0.452359 -0.280030
|
853 |
+
vn -0.855738 -0.425297 -0.294678
|
854 |
+
vn -0.717651 -0.426527 -0.550502
|
855 |
+
vn -0.939051 -0.310746 -0.147041
|
856 |
+
vn -0.913519 -0.192338 -0.358454
|
857 |
+
vn -0.804412 -0.194622 -0.561287
|
858 |
+
vn -0.643390 -0.313411 -0.698443
|
859 |
+
vn -0.896664 -0.432879 -0.092782
|
860 |
+
vn -0.908243 -0.402173 -0.115547
|
861 |
+
vn -0.598208 -0.404916 -0.691512
|
862 |
+
vn -0.572692 -0.435521 -0.694510
|
863 |
+
vn -0.487583 -0.459373 -0.742455
|
864 |
+
vn -0.647515 -0.486507 -0.586546
|
865 |
+
vn -0.846932 -0.485237 -0.217372
|
866 |
+
vn -0.889811 -0.456292 0.005884
|
867 |
+
vn -0.390147 -0.467660 -0.793145
|
868 |
+
vn -0.625194 -0.506216 -0.594035
|
869 |
+
vn -0.841998 -0.504725 -0.190504
|
870 |
+
vn -0.878422 -0.463856 0.114947
|
871 |
+
vn -0.340481 -0.404762 0.848670
|
872 |
+
vn -0.007490 -0.404441 0.914534
|
873 |
+
vn -0.032545 -0.277374 0.960211
|
874 |
+
vn -0.332873 -0.277610 0.901182
|
875 |
+
vn -0.320272 -0.480767 0.816266
|
876 |
+
vn -0.014242 -0.480641 0.876802
|
877 |
+
vn -0.026053 -0.453809 0.890718
|
878 |
+
vn -0.314483 -0.453999 0.833658
|
879 |
+
vn 0.138355 -0.338559 0.930718
|
880 |
+
vn -0.073534 -0.222871 0.972071
|
881 |
+
vn -0.300048 -0.223561 0.927357
|
882 |
+
vn -0.480054 -0.339062 0.809065
|
883 |
+
vn 0.180657 -0.459805 0.869450
|
884 |
+
vn 0.161736 -0.429532 0.888450
|
885 |
+
vn -0.486527 -0.429983 0.760530
|
886 |
+
vn -0.496925 -0.460178 0.735732
|
887 |
+
vn -0.568489 -0.482153 0.666595
|
888 |
+
vn -0.369939 -0.513061 0.774541
|
889 |
+
vn 0.047201 -0.512996 0.857093
|
890 |
+
vn 0.273590 -0.481761 0.832499
|
891 |
+
vn -0.646373 -0.487930 0.586623
|
892 |
+
vn -0.383644 -0.532413 0.754556
|
893 |
+
vn 0.069033 -0.532293 0.843741
|
894 |
+
vn 0.376037 -0.487419 0.788048
|
895 |
+
vn 0.894669 -0.439265 0.081321
|
896 |
+
vn 0.860340 -0.439465 -0.258233
|
897 |
+
vn 0.916284 -0.314880 -0.247535
|
898 |
+
vn 0.947372 -0.314747 0.058489
|
899 |
+
vn 0.855056 -0.513547 0.071750
|
900 |
+
vn 0.823465 -0.513843 -0.240562
|
901 |
+
vn 0.841247 -0.487724 -0.233303
|
902 |
+
vn 0.870998 -0.487489 0.060959
|
903 |
+
vn 0.835953 -0.372765 -0.402775
|
904 |
+
vn 0.941804 -0.261594 -0.211126
|
905 |
+
vn 0.964961 -0.261772 0.018081
|
906 |
+
vn 0.899918 -0.372495 0.226703
|
907 |
+
vn 0.759941 -0.491171 -0.425724
|
908 |
+
vn 0.784834 -0.461892 -0.413148
|
909 |
+
vn 0.851882 -0.461443 0.247726
|
910 |
+
vn 0.830057 -0.490627 0.265124
|
911 |
+
vn 0.783788 -0.510102 0.354222
|
912 |
+
vn 0.828363 -0.544424 0.131973
|
913 |
+
vn 0.785248 -0.544893 -0.294069
|
914 |
+
vn 0.696444 -0.510804 -0.504028
|
915 |
+
vn 0.729396 -0.512945 0.452625
|
916 |
+
vn 0.812574 -0.563032 0.150727
|
917 |
+
vn 0.765792 -0.563525 -0.309841
|
918 |
+
vn 0.623121 -0.513737 -0.589741
|
919 |
+
vn -0.170739 -0.469890 -0.866055
|
920 |
+
vn -0.489171 -0.468965 -0.735380
|
921 |
+
vn -0.497422 -0.345586 -0.795702
|
922 |
+
vn -0.211639 -0.346420 -0.913894
|
923 |
+
vn -0.167170 -0.543298 -0.822728
|
924 |
+
vn -0.460426 -0.542869 -0.702354
|
925 |
+
vn -0.458927 -0.517028 -0.722543
|
926 |
+
vn -0.182740 -0.517609 -0.835875
|
927 |
+
vn -0.623203 -0.400597 -0.671670
|
928 |
+
vn -0.469674 -0.292640 -0.832927
|
929 |
+
vn -0.255699 -0.294443 -0.920827
|
930 |
+
vn -0.034777 -0.402353 -0.914824
|
931 |
+
vn -0.621835 -0.517562 -0.587750
|
932 |
+
vn -0.617236 -0.488807 -0.616512
|
933 |
+
vn 0.002140 -0.490288 -0.871558
|
934 |
+
vn 0.025852 -0.518854 -0.854472
|
935 |
+
vn 0.125077 -0.536599 -0.834516
|
936 |
+
vn -0.100218 -0.573359 -0.813152
|
937 |
+
vn -0.500653 -0.573044 -0.648820
|
938 |
+
vn -0.679029 -0.535105 -0.502575
|
939 |
+
vn 0.236165 -0.537227 -0.809700
|
940 |
+
vn -0.079685 -0.591702 -0.802209
|
941 |
+
vn -0.510434 -0.591189 -0.624462
|
942 |
+
vn -0.740536 -0.535281 -0.406300
|
943 |
+
vn -0.767652 -0.497846 0.403558
|
944 |
+
vn -0.545820 -0.497368 0.674319
|
945 |
+
vn -0.606192 -0.373482 0.702169
|
946 |
+
vn -0.805104 -0.373942 0.460407
|
947 |
+
vn -0.724425 -0.571700 0.385187
|
948 |
+
vn -0.519789 -0.571588 0.634907
|
949 |
+
vn -0.540802 -0.545740 0.640079
|
950 |
+
vn -0.733405 -0.545982 0.404994
|
951 |
+
vn -0.446650 -0.427292 0.786082
|
952 |
+
vn -0.651263 -0.320655 0.687777
|
953 |
+
vn -0.800156 -0.321885 0.506104
|
954 |
+
vn -0.856710 -0.428271 0.287459
|
955 |
+
vn -0.360985 -0.543982 0.757478
|
956 |
+
vn -0.391408 -0.515470 0.762293
|
957 |
+
vn -0.823272 -0.516183 0.236175
|
958 |
+
vn -0.812765 -0.544527 0.207130
|
959 |
+
vn -0.821654 -0.560413 0.104025
|
960 |
+
vn -0.733892 -0.601225 0.316118
|
961 |
+
vn -0.454328 -0.601284 0.657300
|
962 |
+
vn -0.260587 -0.559801 0.786586
|
963 |
+
vn -0.829543 -0.558326 -0.011461
|
964 |
+
vn -0.728573 -0.619383 0.292482
|
965 |
+
vn -0.427955 -0.619289 0.658282
|
966 |
+
vn -0.148484 -0.557471 0.816810
|
967 |
+
vn 0.593461 -0.530287 0.605474
|
968 |
+
vn 0.787958 -0.531082 0.311567
|
969 |
+
vn 0.836084 -0.408936 0.365699
|
970 |
+
vn 0.662386 -0.408379 0.628070
|
971 |
+
vn 0.560472 -0.603049 0.567629
|
972 |
+
vn 0.739957 -0.603871 0.296315
|
973 |
+
vn 0.752003 -0.578632 0.315717
|
974 |
+
vn 0.583068 -0.577888 0.571032
|
975 |
+
vn 0.867905 -0.460572 0.186052
|
976 |
+
vn 0.837357 -0.357198 0.413816
|
977 |
+
vn 0.706979 -0.356907 0.610571
|
978 |
+
vn 0.509709 -0.459438 0.727402
|
979 |
+
vn 0.811213 -0.574656 0.108181
|
980 |
+
vn 0.825848 -0.547043 0.136820
|
981 |
+
vn 0.447939 -0.545557 0.708320
|
982 |
+
vn 0.415900 -0.573033 0.706159
|
983 |
+
vn 0.318498 -0.586325 0.744837
|
984 |
+
vn 0.495877 -0.631223 0.596375
|
985 |
+
vn 0.741108 -0.632381 0.225508
|
986 |
+
vn 0.808634 -0.588305 0.002899
|
987 |
+
vn 0.209893 -0.581068 0.786324
|
988 |
+
vn 0.470139 -0.648625 0.598543
|
989 |
+
vn 0.732904 -0.649909 0.201171
|
990 |
+
vn 0.804197 -0.583298 -0.114153
|
991 |
+
vn 0.403944 -0.563463 -0.720651
|
992 |
+
vn 0.064606 -0.563427 -0.823636
|
993 |
+
vn 0.103247 -0.443285 -0.890415
|
994 |
+
vn 0.405804 -0.443475 -0.799158
|
995 |
+
vn 0.376380 -0.634744 -0.674862
|
996 |
+
vn 0.062944 -0.635050 -0.769902
|
997 |
+
vn 0.078438 -0.610391 -0.788207
|
998 |
+
vn 0.373338 -0.610239 -0.698733
|
999 |
+
vn -0.079480 -0.491857 -0.867041
|
1000 |
+
vn 0.150163 -0.392148 -0.907563
|
1001 |
+
vn 0.377295 -0.393109 -0.838519
|
1002 |
+
vn 0.545121 -0.492284 -0.678601
|
1003 |
+
vn -0.139123 -0.603202 -0.785361
|
1004 |
+
vn -0.115399 -0.576477 -0.808924
|
1005 |
+
vn 0.544321 -0.576442 -0.609450
|
1006 |
+
vn 0.551232 -0.602951 -0.576709
|
1007 |
+
vn 0.616020 -0.613967 -0.493523
|
1008 |
+
vn 0.422634 -0.661597 -0.619411
|
1009 |
+
vn -0.005863 -0.662224 -0.749283
|
1010 |
+
vn -0.240291 -0.614267 -0.751623
|
1011 |
+
vn 0.687157 -0.605960 -0.400785
|
1012 |
+
vn 0.430623 -0.678466 -0.595187
|
1013 |
+
vn -0.028172 -0.678971 -0.733624
|
1014 |
+
vn -0.351592 -0.606107 -0.713455
|
1015 |
+
vn -0.783685 -0.593798 -0.182325
|
1016 |
+
vn -0.784440 -0.593936 0.178587
|
1017 |
+
vn -0.866171 -0.473300 0.160422
|
1018 |
+
vn -0.866161 -0.473475 -0.159956
|
1019 |
+
vn -0.727233 -0.665206 -0.169216
|
1020 |
+
vn -0.727786 -0.665812 0.164384
|
1021 |
+
vn -0.751566 -0.641265 0.154688
|
1022 |
+
vn -0.750957 -0.640881 -0.159167
|
1023 |
+
vn -0.786743 -0.520600 0.331678
|
1024 |
+
vn -0.898578 -0.421881 0.120726
|
1025 |
+
vn -0.897824 -0.423098 -0.122070
|
1026 |
+
vn -0.786726 -0.521015 -0.331068
|
1027 |
+
vn -0.684048 -0.631092 0.365789
|
1028 |
+
vn -0.715553 -0.604786 0.349596
|
1029 |
+
vn -0.715116 -0.604452 -0.351066
|
1030 |
+
vn -0.683747 -0.630440 -0.367472
|
1031 |
+
vn -0.620646 -0.639086 -0.454277
|
1032 |
+
vn -0.685033 -0.691073 -0.230537
|
1033 |
+
vn -0.685661 -0.692182 0.225286
|
1034 |
+
vn -0.620015 -0.639819 0.454107
|
1035 |
+
vn -0.551266 -0.627965 -0.549333
|
1036 |
+
vn -0.662658 -0.707503 -0.245611
|
1037 |
+
vn -0.662582 -0.708466 0.243025
|
1038 |
+
vn -0.549794 -0.628457 0.550244
|
1039 |
+
vn 0.048540 -0.625530 0.778688
|
1040 |
+
vn 0.396524 -0.626444 0.671071
|
1041 |
+
vn 0.403160 -0.507100 0.761782
|
1042 |
+
vn 0.095059 -0.506472 0.857001
|
1043 |
+
vn 0.043415 -0.696203 0.716531
|
1044 |
+
vn 0.365156 -0.697165 0.616946
|
1045 |
+
vn 0.363181 -0.673231 0.644096
|
1046 |
+
vn 0.060476 -0.672365 0.737745
|
1047 |
+
vn 0.543973 -0.552782 0.631289
|
1048 |
+
vn 0.376763 -0.456489 0.806020
|
1049 |
+
vn 0.141457 -0.456188 0.878568
|
1050 |
+
vn -0.094469 -0.551522 0.828794
|
1051 |
+
vn 0.545434 -0.660356 0.516169
|
1052 |
+
vn 0.539574 -0.635020 0.552820
|
1053 |
+
vn -0.135471 -0.633350 0.761916
|
1054 |
+
vn -0.161034 -0.658529 0.735124
|
1055 |
+
vn -0.264091 -0.664448 0.699117
|
1056 |
+
vn -0.028427 -0.720776 0.692585
|
1057 |
+
vn 0.410963 -0.722125 0.556457
|
1058 |
+
vn 0.610507 -0.666622 0.427664
|
1059 |
+
vn -0.375762 -0.649987 0.660545
|
1060 |
+
vn -0.051808 -0.736312 0.674656
|
1061 |
+
vn 0.419969 -0.737803 0.528463
|
1062 |
+
vn 0.681424 -0.652330 0.331853
|
1063 |
+
vn 0.707384 -0.659177 -0.255135
|
1064 |
+
vn 0.502838 -0.659910 -0.558277
|
1065 |
+
vn 0.592442 -0.543826 -0.594361
|
1066 |
+
vn 0.773540 -0.543382 -0.326147
|
1067 |
+
vn 0.646349 -0.727497 -0.230176
|
1068 |
+
vn 0.457143 -0.728361 -0.510402
|
1069 |
+
vn 0.484749 -0.705433 -0.517089
|
1070 |
+
vn 0.662724 -0.704688 -0.253401
|
1071 |
+
vn 0.424130 -0.586097 -0.690365
|
1072 |
+
vn 0.644447 -0.494365 -0.583346
|
1073 |
+
vn 0.782845 -0.494378 -0.377815
|
1074 |
+
vn 0.799657 -0.585219 -0.134414
|
1075 |
+
vn 0.309177 -0.689250 -0.655244
|
1076 |
+
vn 0.347092 -0.665286 -0.661001
|
1077 |
+
vn 0.744175 -0.663949 -0.073321
|
1078 |
+
vn 0.724846 -0.687733 -0.040284
|
1079 |
+
vn 0.719798 -0.690726 0.069202
|
1080 |
+
vn 0.643190 -0.750163 -0.153500
|
1081 |
+
vn 0.384779 -0.751425 -0.536010
|
1082 |
+
vn 0.204893 -0.692494 -0.691716
|
1083 |
+
vn 0.715568 -0.673061 0.186953
|
1084 |
+
vn 0.632116 -0.764666 -0.125358
|
1085 |
+
vn 0.354103 -0.765984 -0.536544
|
1086 |
+
vn 0.093081 -0.674883 -0.732031
|
1087 |
+
vn -0.420863 -0.690811 -0.587924
|
1088 |
+
vn -0.655665 -0.691958 -0.302153
|
1089 |
+
vn -0.721969 -0.577028 -0.381837
|
1090 |
+
vn -0.514933 -0.576540 -0.634386
|
1091 |
+
vn -0.375459 -0.757850 -0.533567
|
1092 |
+
vn -0.592296 -0.759412 -0.269217
|
1093 |
+
vn -0.608062 -0.737089 -0.294891
|
1094 |
+
vn -0.403878 -0.735798 -0.543584
|
1095 |
+
vn -0.763854 -0.617294 -0.188352
|
1096 |
+
vn -0.728910 -0.527563 -0.436311
|
1097 |
+
vn -0.567852 -0.528159 -0.631341
|
1098 |
+
vn -0.333950 -0.616376 -0.713133
|
1099 |
+
vn -0.691280 -0.717677 -0.084100
|
1100 |
+
vn -0.709227 -0.694665 -0.120159
|
1101 |
+
vn -0.255208 -0.692655 -0.674609
|
1102 |
+
vn -0.216434 -0.715268 -0.664491
|
1103 |
+
vn -0.109161 -0.715302 -0.690236
|
1104 |
+
vn -0.299136 -0.778698 -0.551495
|
1105 |
+
vn -0.594579 -0.781059 -0.190848
|
1106 |
+
vn -0.695503 -0.717963 0.028368
|
1107 |
+
vn 0.004072 -0.694435 -0.719544
|
1108 |
+
vn -0.267424 -0.792191 -0.548560
|
1109 |
+
vn -0.586111 -0.794552 -0.158622
|
1110 |
+
vn -0.701893 -0.696843 0.147500
|
1111 |
+
vn -0.426009 -0.723008 0.543853
|
1112 |
+
vn -0.079604 -0.724024 0.685166
|
1113 |
+
vn -0.140957 -0.610941 0.779027
|
1114 |
+
vn -0.446259 -0.610309 0.654504
|
1115 |
+
vn -0.384788 -0.788691 0.479484
|
1116 |
+
vn -0.064696 -0.789833 0.609900
|
1117 |
+
vn -0.085418 -0.768423 0.634216
|
1118 |
+
vn -0.386768 -0.767415 0.511356
|
1119 |
+
vn 0.060264 -0.649106 0.758308
|
1120 |
+
vn -0.190201 -0.562104 0.804899
|
1121 |
+
vn -0.429640 -0.561966 0.706827
|
1122 |
+
vn -0.575323 -0.647858 0.499282
|
1123 |
+
vn 0.141682 -0.745299 0.651503
|
1124 |
+
vn 0.111640 -0.723639 0.681090
|
1125 |
+
vn -0.558921 -0.721842 0.408107
|
1126 |
+
vn -0.559895 -0.743300 0.366090
|
1127 |
+
vn -0.616308 -0.740086 0.269140
|
1128 |
+
vn -0.423754 -0.807826 0.409694
|
1129 |
+
vn 0.012049 -0.809449 0.587067
|
1130 |
+
vn 0.250816 -0.742357 0.621286
|
1131 |
+
vn -0.677557 -0.715634 0.169662
|
1132 |
+
vn -0.431803 -0.819958 0.375787
|
1133 |
+
vn 0.041880 -0.821693 0.568389
|
1134 |
+
vn 0.365415 -0.717894 0.592536
|
1135 |
+
vn 0.609182 -0.754460 0.244309
|
1136 |
+
vn 0.642361 -0.755530 -0.128634
|
1137 |
+
vn 0.756226 -0.647223 -0.096050
|
1138 |
+
vn 0.726633 -0.646395 0.232761
|
1139 |
+
vn 0.531903 -0.816891 0.223089
|
1140 |
+
vn 0.562461 -0.817887 -0.121240
|
1141 |
+
vn 0.592925 -0.797925 -0.108421
|
1142 |
+
vn 0.564112 -0.796979 0.215875
|
1143 |
+
vn 0.674804 -0.681559 -0.283048
|
1144 |
+
vn 0.797785 -0.600218 -0.057251
|
1145 |
+
vn 0.774469 -0.599496 0.201996
|
1146 |
+
vn 0.613468 -0.679933 0.401681
|
1147 |
+
vn 0.543824 -0.771551 -0.330098
|
1148 |
+
vn 0.582072 -0.751743 -0.309958
|
1149 |
+
vn 0.518004 -0.749870 0.411543
|
1150 |
+
vn 0.476944 -0.769592 0.424561
|
1151 |
+
vn 0.400667 -0.763097 0.507099
|
1152 |
+
vn 0.475632 -0.833762 0.280385
|
1153 |
+
vn 0.517062 -0.835054 -0.187967
|
1154 |
+
vn 0.483070 -0.765372 -0.425264
|
1155 |
+
vn 0.324892 -0.735451 0.594607
|
1156 |
+
vn 0.444439 -0.844306 0.299369
|
1157 |
+
vn 0.489760 -0.845891 -0.211198
|
1158 |
+
vn 0.423387 -0.737789 -0.525747
|
1159 |
+
vn 0.069842 -0.784248 -0.616504
|
1160 |
+
vn -0.297830 -0.785923 -0.541869
|
1161 |
+
vn -0.301898 -0.681593 -0.666550
|
1162 |
+
vn 0.022201 -0.680612 -0.732307
|
1163 |
+
vn 0.072733 -0.843432 -0.532289
|
1164 |
+
vn -0.266331 -0.845326 -0.463133
|
1165 |
+
vn -0.263251 -0.826633 -0.497370
|
1166 |
+
vn 0.056267 -0.824959 -0.562385
|
1167 |
+
vn -0.458014 -0.712624 -0.531405
|
1168 |
+
vn -0.277794 -0.635543 -0.720358
|
1169 |
+
vn -0.019531 -0.635360 -0.771969
|
1170 |
+
vn 0.217818 -0.710721 -0.668903
|
1171 |
+
vn -0.463088 -0.797277 -0.387168
|
1172 |
+
vn -0.455189 -0.779095 -0.431062
|
1173 |
+
vn 0.255555 -0.776258 -0.576295
|
1174 |
+
vn 0.280040 -0.794125 -0.539391
|
1175 |
+
vn 0.380301 -0.784410 -0.489972
|
1176 |
+
vn 0.143830 -0.857755 -0.493527
|
1177 |
+
vn -0.316666 -0.860415 -0.399261
|
1178 |
+
vn -0.537341 -0.787834 -0.300968
|
1179 |
+
vn 0.484317 -0.753900 -0.443927
|
1180 |
+
vn 0.171602 -0.866760 -0.468273
|
1181 |
+
vn -0.332863 -0.869599 -0.364691
|
1182 |
+
vn -0.616614 -0.757035 -0.216068
|
1183 |
+
vn -0.572473 -0.814851 0.091065
|
1184 |
+
vn -0.391998 -0.816461 0.423946
|
1185 |
+
vn -0.517956 -0.716027 0.468003
|
1186 |
+
vn -0.677007 -0.715019 0.174382
|
1187 |
+
vn -0.487573 -0.870912 0.061519
|
1188 |
+
vn -0.321149 -0.872660 0.367870
|
1189 |
+
vn -0.356330 -0.855454 0.375802
|
1190 |
+
vn -0.513172 -0.853884 0.086811
|
1191 |
+
vn -0.337388 -0.743657 0.577187
|
1192 |
+
vn -0.578538 -0.670962 0.463793
|
1193 |
+
vn -0.706496 -0.670587 0.226222
|
1194 |
+
vn -0.669787 -0.741695 -0.035700
|
1195 |
+
vn -0.192413 -0.822057 0.535910
|
1196 |
+
vn -0.238244 -0.805823 0.542115
|
1197 |
+
vn -0.587346 -0.803109 -0.100207
|
1198 |
+
vn -0.557510 -0.819093 -0.135160
|
1199 |
+
vn -0.539029 -0.805547 -0.246053
|
1200 |
+
vn -0.469652 -0.882659 -0.018455
|
1201 |
+
vn -0.243928 -0.885063 0.396436
|
1202 |
+
vn -0.087830 -0.808755 0.581551
|
1203 |
+
vn -0.526215 -0.771622 -0.357349
|
1204 |
+
vn -0.453395 -0.889582 -0.055474
|
1205 |
+
vn -0.203646 -0.892203 0.403116
|
1206 |
+
vn 0.014361 -0.774568 0.632328
|
1207 |
+
vn -0.000000 -0.815561 0.578672
|
1208 |
+
vn 0.478553 -0.736188 0.478554
|
1209 |
+
vn 0.683877 -0.254215 0.683877
|
1210 |
+
vn 0.000000 -0.258385 0.966042
|
1211 |
+
vn 0.697271 0.166209 0.697271
|
1212 |
+
vn 0.518143 0.680483 0.518143
|
1213 |
+
vn 0.000000 0.777905 0.628382
|
1214 |
+
vn 0.000000 0.168834 0.985645
|
1215 |
+
vn -0.518143 0.680483 0.518143
|
1216 |
+
vn -0.697271 0.166209 0.697271
|
1217 |
+
vn -0.683877 -0.254215 0.683877
|
1218 |
+
vn -0.478554 -0.736188 0.478554
|
1219 |
+
vn 0.628382 0.777905 0.000000
|
1220 |
+
vn 0.000000 1.000000 0.000000
|
1221 |
+
vn 0.518143 0.680483 -0.518143
|
1222 |
+
vn 0.000000 0.777905 -0.628382
|
1223 |
+
vn -0.518143 0.680483 -0.518143
|
1224 |
+
vn -0.628382 0.777905 -0.000000
|
1225 |
+
vn 0.697271 0.166209 -0.697271
|
1226 |
+
vn -0.000000 0.168834 -0.985644
|
1227 |
+
vn 0.683877 -0.254215 -0.683877
|
1228 |
+
vn 0.478554 -0.736188 -0.478554
|
1229 |
+
vn 0.000000 -0.815561 -0.578672
|
1230 |
+
vn 0.000000 -0.258385 -0.966042
|
1231 |
+
vn -0.478553 -0.736188 -0.478554
|
1232 |
+
vn -0.683877 -0.254215 -0.683877
|
1233 |
+
vn -0.697271 0.166209 -0.697271
|
1234 |
+
vn 0.578672 -0.815561 0.000000
|
1235 |
+
vn 0.000000 -1.000000 0.000000
|
1236 |
+
vn -0.578672 -0.815561 0.000000
|
1237 |
+
vn 0.966042 -0.258385 0.000000
|
1238 |
+
vn 0.985645 0.168834 0.000000
|
1239 |
+
vn -0.966042 -0.258385 0.000000
|
1240 |
+
vn -0.985645 0.168834 -0.000000
|
1241 |
+
vn 0.000000 -0.030921 0.999522
|
1242 |
+
vn 0.706779 -0.030462 0.706779
|
1243 |
+
vn -0.706779 -0.030462 0.706779
|
1244 |
+
vn 0.706779 -0.030462 -0.706779
|
1245 |
+
vn -0.000000 -0.030921 -0.999522
|
1246 |
+
vn -0.706779 -0.030462 -0.706779
|
1247 |
+
vn 0.999522 -0.030921 0.000000
|
1248 |
+
vn -0.999522 -0.030921 -0.000000
|
1249 |
+
vn 0.000000 -0.128795 0.991671
|
1250 |
+
vn 0.701428 -0.126485 0.701428
|
1251 |
+
vn -0.701428 -0.126485 0.701428
|
1252 |
+
vn 0.701428 -0.126485 -0.701428
|
1253 |
+
vn 0.000000 -0.128795 -0.991671
|
1254 |
+
vn -0.701428 -0.126485 -0.701428
|
1255 |
+
vn 0.991671 -0.128795 -0.000000
|
1256 |
+
vn -0.991671 -0.128795 0.000000
|
1257 |
+
g archivebaycedar0001_geo
|
1258 |
+
usemtl leaves
|
1259 |
+
f 7//1 8//2 9//3 10//4
|
1260 |
+
f 18//5 19//6 14//7 15//8
|
1261 |
+
f 6//9 4//10 9//3 8//2
|
1262 |
+
f 4//10 3//11 10//4 9//3
|
1263 |
+
f 3//11 5//12 7//1 10//4
|
1264 |
+
f 20//13 13//14 14//7 19//6
|
1265 |
+
f 16//15 17//16 18//5 15//8
|
1266 |
+
f 13//14 6//9 8//2 14//7
|
1267 |
+
f 15//8 14//7 8//2 7//1
|
1268 |
+
f 5//12 16//15 15//8 7//1
|
1269 |
+
f 17//16 21//17 22//18 18//5
|
1270 |
+
f 22//18 23//19 19//6 18//5
|
1271 |
+
f 24//20 20//13 19//6 23//19
|
1272 |
+
f 21//17 1//21 11//22 22//18
|
1273 |
+
f 11//22 12//23 23//19 22//18
|
1274 |
+
f 2//24 24//20 23//19 12//23
|
1275 |
+
f 31//25 32//26 33//27 34//28
|
1276 |
+
f 42//29 43//30 38//31 39//32
|
1277 |
+
f 30//33 28//34 33//27 32//26
|
1278 |
+
f 28//34 27//35 34//28 33//27
|
1279 |
+
f 27//35 29//36 31//25 34//28
|
1280 |
+
f 44//37 37//38 38//31 43//30
|
1281 |
+
f 40//39 41//40 42//29 39//32
|
1282 |
+
f 37//38 30//33 32//26 38//31
|
1283 |
+
f 39//32 38//31 32//26 31//25
|
1284 |
+
f 29//36 40//39 39//32 31//25
|
1285 |
+
f 41//40 45//41 46//42 42//29
|
1286 |
+
f 46//42 47//43 43//30 42//29
|
1287 |
+
f 48//44 44//37 43//30 47//43
|
1288 |
+
f 45//41 25//45 35//46 46//42
|
1289 |
+
f 35//46 36//47 47//43 46//42
|
1290 |
+
f 26//48 48//44 47//43 36//47
|
1291 |
+
f 55//49 56//50 57//51 58//52
|
1292 |
+
f 66//53 67//54 62//55 63//56
|
1293 |
+
f 54//57 52//58 57//51 56//50
|
1294 |
+
f 52//58 51//59 58//52 57//51
|
1295 |
+
f 51//59 53//60 55//49 58//52
|
1296 |
+
f 68//61 61//62 62//55 67//54
|
1297 |
+
f 64//63 65//64 66//53 63//56
|
1298 |
+
f 61//62 54//57 56//50 62//55
|
1299 |
+
f 63//56 62//55 56//50 55//49
|
1300 |
+
f 53//60 64//63 63//56 55//49
|
1301 |
+
f 65//64 69//65 70//66 66//53
|
1302 |
+
f 70//66 71//67 67//54 66//53
|
1303 |
+
f 72//68 68//61 67//54 71//67
|
1304 |
+
f 69//65 49//69 59//70 70//66
|
1305 |
+
f 59//70 60//71 71//67 70//66
|
1306 |
+
f 50//72 72//68 71//67 60//71
|
1307 |
+
f 79//73 80//74 81//75 82//76
|
1308 |
+
f 90//77 91//78 86//79 87//80
|
1309 |
+
f 78//81 76//82 81//75 80//74
|
1310 |
+
f 76//82 75//83 82//76 81//75
|
1311 |
+
f 75//83 77//84 79//73 82//76
|
1312 |
+
f 92//85 85//86 86//79 91//78
|
1313 |
+
f 88//87 89//88 90//77 87//80
|
1314 |
+
f 85//86 78//81 80//74 86//79
|
1315 |
+
f 87//80 86//79 80//74 79//73
|
1316 |
+
f 77//84 88//87 87//80 79//73
|
1317 |
+
f 89//88 93//89 94//90 90//77
|
1318 |
+
f 94//90 95//91 91//78 90//77
|
1319 |
+
f 96//92 92//85 91//78 95//91
|
1320 |
+
f 93//89 73//93 83//94 94//90
|
1321 |
+
f 83//94 84//95 95//91 94//90
|
1322 |
+
f 74//96 96//92 95//91 84//95
|
1323 |
+
f 103//97 104//98 105//99 106//100
|
1324 |
+
f 114//101 115//102 110//103 111//104
|
1325 |
+
f 102//105 100//106 105//99 104//98
|
1326 |
+
f 100//106 99//107 106//100 105//99
|
1327 |
+
f 99//107 101//108 103//97 106//100
|
1328 |
+
f 116//109 109//110 110//103 115//102
|
1329 |
+
f 112//111 113//112 114//101 111//104
|
1330 |
+
f 109//110 102//105 104//98 110//103
|
1331 |
+
f 111//104 110//103 104//98 103//97
|
1332 |
+
f 101//108 112//111 111//104 103//97
|
1333 |
+
f 113//112 117//113 118//114 114//101
|
1334 |
+
f 118//114 119//115 115//102 114//101
|
1335 |
+
f 120//116 116//109 115//102 119//115
|
1336 |
+
f 117//113 97//117 107//118 118//114
|
1337 |
+
f 107//118 108//119 119//115 118//114
|
1338 |
+
f 98//120 120//116 119//115 108//119
|
1339 |
+
f 127//121 128//122 129//123 130//124
|
1340 |
+
f 138//125 139//126 134//127 135//128
|
1341 |
+
f 126//129 124//130 129//123 128//122
|
1342 |
+
f 124//130 123//131 130//124 129//123
|
1343 |
+
f 123//131 125//132 127//121 130//124
|
1344 |
+
f 140//133 133//134 134//127 139//126
|
1345 |
+
f 136//135 137//136 138//125 135//128
|
1346 |
+
f 133//134 126//129 128//122 134//127
|
1347 |
+
f 135//128 134//127 128//122 127//121
|
1348 |
+
f 125//132 136//135 135//128 127//121
|
1349 |
+
f 137//136 141//137 142//138 138//125
|
1350 |
+
f 142//138 143//139 139//126 138//125
|
1351 |
+
f 144//140 140//133 139//126 143//139
|
1352 |
+
f 141//137 121//141 131//142 142//138
|
1353 |
+
f 131//142 132//143 143//139 142//138
|
1354 |
+
f 122//144 144//140 143//139 132//143
|
1355 |
+
f 151//145 152//146 153//147 154//148
|
1356 |
+
f 162//149 163//150 158//151 159//152
|
1357 |
+
f 150//153 148//154 153//147 152//146
|
1358 |
+
f 148//154 147//155 154//148 153//147
|
1359 |
+
f 147//155 149//156 151//145 154//148
|
1360 |
+
f 164//157 157//158 158//151 163//150
|
1361 |
+
f 160//159 161//160 162//149 159//152
|
1362 |
+
f 157//158 150//153 152//146 158//151
|
1363 |
+
f 159//152 158//151 152//146 151//145
|
1364 |
+
f 149//156 160//159 159//152 151//145
|
1365 |
+
f 161//160 165//161 166//162 162//149
|
1366 |
+
f 166//162 167//163 163//150 162//149
|
1367 |
+
f 168//164 164//157 163//150 167//163
|
1368 |
+
f 165//161 145//165 155//166 166//162
|
1369 |
+
f 155//166 156//167 167//163 166//162
|
1370 |
+
f 146//168 168//164 167//163 156//167
|
1371 |
+
f 175//169 176//170 177//171 178//172
|
1372 |
+
f 186//173 187//174 182//175 183//176
|
1373 |
+
f 174//177 172//178 177//171 176//170
|
1374 |
+
f 172//178 171//179 178//172 177//171
|
1375 |
+
f 171//179 173//180 175//169 178//172
|
1376 |
+
f 188//181 181//182 182//175 187//174
|
1377 |
+
f 184//183 185//184 186//173 183//176
|
1378 |
+
f 181//182 174//177 176//170 182//175
|
1379 |
+
f 183//176 182//175 176//170 175//169
|
1380 |
+
f 173//180 184//183 183//176 175//169
|
1381 |
+
f 185//184 189//185 190//186 186//173
|
1382 |
+
f 190//186 191//187 187//174 186//173
|
1383 |
+
f 192//188 188//181 187//174 191//187
|
1384 |
+
f 189//185 169//189 179//190 190//186
|
1385 |
+
f 179//190 180//191 191//187 190//186
|
1386 |
+
f 170//192 192//188 191//187 180//191
|
1387 |
+
f 199//193 200//194 201//195 202//196
|
1388 |
+
f 210//197 211//198 206//199 207//200
|
1389 |
+
f 198//201 196//202 201//195 200//194
|
1390 |
+
f 196//202 195//203 202//196 201//195
|
1391 |
+
f 195//203 197//204 199//193 202//196
|
1392 |
+
f 212//205 205//206 206//199 211//198
|
1393 |
+
f 208//207 209//208 210//197 207//200
|
1394 |
+
f 205//206 198//201 200//194 206//199
|
1395 |
+
f 207//200 206//199 200//194 199//193
|
1396 |
+
f 197//204 208//207 207//200 199//193
|
1397 |
+
f 209//208 213//209 214//210 210//197
|
1398 |
+
f 214//210 215//211 211//198 210//197
|
1399 |
+
f 216//212 212//205 211//198 215//211
|
1400 |
+
f 213//209 193//213 203//214 214//210
|
1401 |
+
f 203//214 204//215 215//211 214//210
|
1402 |
+
f 194//216 216//212 215//211 204//215
|
1403 |
+
f 223//217 224//218 225//219 226//220
|
1404 |
+
f 234//221 235//222 230//223 231//224
|
1405 |
+
f 222//225 220//226 225//219 224//218
|
1406 |
+
f 220//226 219//227 226//220 225//219
|
1407 |
+
f 219//227 221//228 223//217 226//220
|
1408 |
+
f 236//229 229//230 230//223 235//222
|
1409 |
+
f 232//231 233//232 234//221 231//224
|
1410 |
+
f 229//230 222//225 224//218 230//223
|
1411 |
+
f 231//224 230//223 224//218 223//217
|
1412 |
+
f 221//228 232//231 231//224 223//217
|
1413 |
+
f 233//232 237//233 238//234 234//221
|
1414 |
+
f 238//234 239//235 235//222 234//221
|
1415 |
+
f 240//236 236//229 235//222 239//235
|
1416 |
+
f 237//233 217//237 227//238 238//234
|
1417 |
+
f 227//238 228//239 239//235 238//234
|
1418 |
+
f 218//240 240//236 239//235 228//239
|
1419 |
+
f 247//241 248//242 249//243 250//244
|
1420 |
+
f 258//245 259//246 254//247 255//248
|
1421 |
+
f 246//249 244//250 249//243 248//242
|
1422 |
+
f 244//250 243//251 250//244 249//243
|
1423 |
+
f 243//251 245//252 247//241 250//244
|
1424 |
+
f 260//253 253//254 254//247 259//246
|
1425 |
+
f 256//255 257//256 258//245 255//248
|
1426 |
+
f 253//254 246//249 248//242 254//247
|
1427 |
+
f 255//248 254//247 248//242 247//241
|
1428 |
+
f 245//252 256//255 255//248 247//241
|
1429 |
+
f 257//256 261//257 262//258 258//245
|
1430 |
+
f 262//258 263//259 259//246 258//245
|
1431 |
+
f 264//260 260//253 259//246 263//259
|
1432 |
+
f 261//257 241//261 251//262 262//258
|
1433 |
+
f 251//262 252//263 263//259 262//258
|
1434 |
+
f 242//264 264//260 263//259 252//263
|
1435 |
+
f 271//265 272//266 273//267 274//268
|
1436 |
+
f 282//269 283//270 278//271 279//272
|
1437 |
+
f 270//273 268//274 273//267 272//266
|
1438 |
+
f 268//274 267//275 274//268 273//267
|
1439 |
+
f 267//275 269//276 271//265 274//268
|
1440 |
+
f 284//277 277//278 278//271 283//270
|
1441 |
+
f 280//279 281//280 282//269 279//272
|
1442 |
+
f 277//278 270//273 272//266 278//271
|
1443 |
+
f 279//272 278//271 272//266 271//265
|
1444 |
+
f 269//276 280//279 279//272 271//265
|
1445 |
+
f 281//280 285//281 286//282 282//269
|
1446 |
+
f 286//282 287//283 283//270 282//269
|
1447 |
+
f 288//284 284//277 283//270 287//283
|
1448 |
+
f 285//281 265//285 275//286 286//282
|
1449 |
+
f 275//286 276//287 287//283 286//282
|
1450 |
+
f 266//288 288//284 287//283 276//287
|
1451 |
+
f 295//289 296//290 297//291 298//292
|
1452 |
+
f 306//293 307//294 302//295 303//296
|
1453 |
+
f 294//297 292//298 297//291 296//290
|
1454 |
+
f 292//298 291//299 298//292 297//291
|
1455 |
+
f 291//299 293//300 295//289 298//292
|
1456 |
+
f 308//301 301//302 302//295 307//294
|
1457 |
+
f 304//303 305//304 306//293 303//296
|
1458 |
+
f 301//302 294//297 296//290 302//295
|
1459 |
+
f 303//296 302//295 296//290 295//289
|
1460 |
+
f 293//300 304//303 303//296 295//289
|
1461 |
+
f 305//304 309//305 310//306 306//293
|
1462 |
+
f 310//306 311//307 307//294 306//293
|
1463 |
+
f 312//308 308//301 307//294 311//307
|
1464 |
+
f 309//305 289//309 299//310 310//306
|
1465 |
+
f 299//310 300//311 311//307 310//306
|
1466 |
+
f 290//312 312//308 311//307 300//311
|
1467 |
+
f 319//313 320//314 321//315 322//316
|
1468 |
+
f 330//317 331//318 326//319 327//320
|
1469 |
+
f 318//321 316//322 321//315 320//314
|
1470 |
+
f 316//322 315//323 322//316 321//315
|
1471 |
+
f 315//323 317//324 319//313 322//316
|
1472 |
+
f 332//325 325//326 326//319 331//318
|
1473 |
+
f 328//327 329//328 330//317 327//320
|
1474 |
+
f 325//326 318//321 320//314 326//319
|
1475 |
+
f 327//320 326//319 320//314 319//313
|
1476 |
+
f 317//324 328//327 327//320 319//313
|
1477 |
+
f 329//328 333//329 334//330 330//317
|
1478 |
+
f 334//330 335//331 331//318 330//317
|
1479 |
+
f 336//332 332//325 331//318 335//331
|
1480 |
+
f 333//329 313//333 323//334 334//330
|
1481 |
+
f 323//334 324//335 335//331 334//330
|
1482 |
+
f 314//336 336//332 335//331 324//335
|
1483 |
+
f 343//337 344//338 345//339 346//340
|
1484 |
+
f 354//341 355//342 350//343 351//344
|
1485 |
+
f 342//345 340//346 345//339 344//338
|
1486 |
+
f 340//346 339//347 346//340 345//339
|
1487 |
+
f 339//347 341//348 343//337 346//340
|
1488 |
+
f 356//349 349//350 350//343 355//342
|
1489 |
+
f 352//351 353//352 354//341 351//344
|
1490 |
+
f 349//350 342//345 344//338 350//343
|
1491 |
+
f 351//344 350//343 344//338 343//337
|
1492 |
+
f 341//348 352//351 351//344 343//337
|
1493 |
+
f 353//352 357//353 358//354 354//341
|
1494 |
+
f 358//354 359//355 355//342 354//341
|
1495 |
+
f 360//356 356//349 355//342 359//355
|
1496 |
+
f 357//353 337//357 347//358 358//354
|
1497 |
+
f 347//358 348//359 359//355 358//354
|
1498 |
+
f 338//360 360//356 359//355 348//359
|
1499 |
+
f 367//361 368//362 369//363 370//364
|
1500 |
+
f 378//365 379//366 374//367 375//368
|
1501 |
+
f 366//369 364//370 369//363 368//362
|
1502 |
+
f 364//370 363//371 370//364 369//363
|
1503 |
+
f 363//371 365//372 367//361 370//364
|
1504 |
+
f 380//373 373//374 374//367 379//366
|
1505 |
+
f 376//375 377//376 378//365 375//368
|
1506 |
+
f 373//374 366//369 368//362 374//367
|
1507 |
+
f 375//368 374//367 368//362 367//361
|
1508 |
+
f 365//372 376//375 375//368 367//361
|
1509 |
+
f 377//376 381//377 382//378 378//365
|
1510 |
+
f 382//378 383//379 379//366 378//365
|
1511 |
+
f 384//380 380//373 379//366 383//379
|
1512 |
+
f 381//377 361//381 371//382 382//378
|
1513 |
+
f 371//382 372//383 383//379 382//378
|
1514 |
+
f 362//384 384//380 383//379 372//383
|
1515 |
+
f 391//385 392//386 393//387 394//388
|
1516 |
+
f 402//389 403//390 398//391 399//392
|
1517 |
+
f 390//393 388//394 393//387 392//386
|
1518 |
+
f 388//394 387//395 394//388 393//387
|
1519 |
+
f 387//395 389//396 391//385 394//388
|
1520 |
+
f 404//397 397//398 398//391 403//390
|
1521 |
+
f 400//399 401//400 402//389 399//392
|
1522 |
+
f 397//398 390//393 392//386 398//391
|
1523 |
+
f 399//392 398//391 392//386 391//385
|
1524 |
+
f 389//396 400//399 399//392 391//385
|
1525 |
+
f 401//400 405//401 406//402 402//389
|
1526 |
+
f 406//402 407//403 403//390 402//389
|
1527 |
+
f 408//404 404//397 403//390 407//403
|
1528 |
+
f 405//401 385//405 395//406 406//402
|
1529 |
+
f 395//406 396//407 407//403 406//402
|
1530 |
+
f 386//408 408//404 407//403 396//407
|
1531 |
+
f 415//409 416//410 417//411 418//412
|
1532 |
+
f 426//413 427//414 422//415 423//416
|
1533 |
+
f 414//417 412//418 417//411 416//410
|
1534 |
+
f 412//418 411//419 418//412 417//411
|
1535 |
+
f 411//419 413//420 415//409 418//412
|
1536 |
+
f 428//421 421//422 422//415 427//414
|
1537 |
+
f 424//423 425//424 426//413 423//416
|
1538 |
+
f 421//422 414//417 416//410 422//415
|
1539 |
+
f 423//416 422//415 416//410 415//409
|
1540 |
+
f 413//420 424//423 423//416 415//409
|
1541 |
+
f 425//424 429//425 430//426 426//413
|
1542 |
+
f 430//426 431//427 427//414 426//413
|
1543 |
+
f 432//428 428//421 427//414 431//427
|
1544 |
+
f 429//425 409//429 419//430 430//426
|
1545 |
+
f 419//430 420//431 431//427 430//426
|
1546 |
+
f 410//432 432//428 431//427 420//431
|
1547 |
+
f 439//433 440//434 441//435 442//436
|
1548 |
+
f 450//437 451//438 446//439 447//440
|
1549 |
+
f 438//441 436//442 441//435 440//434
|
1550 |
+
f 436//442 435//443 442//436 441//435
|
1551 |
+
f 435//443 437//444 439//433 442//436
|
1552 |
+
f 452//445 445//446 446//439 451//438
|
1553 |
+
f 448//447 449//448 450//437 447//440
|
1554 |
+
f 445//446 438//441 440//434 446//439
|
1555 |
+
f 447//440 446//439 440//434 439//433
|
1556 |
+
f 437//444 448//447 447//440 439//433
|
1557 |
+
f 449//448 453//449 454//450 450//437
|
1558 |
+
f 454//450 455//451 451//438 450//437
|
1559 |
+
f 456//452 452//445 451//438 455//451
|
1560 |
+
f 453//449 433//453 443//454 454//450
|
1561 |
+
f 443//454 444//455 455//451 454//450
|
1562 |
+
f 434//456 456//452 455//451 444//455
|
1563 |
+
f 463//457 464//458 465//459 466//460
|
1564 |
+
f 474//461 475//462 470//463 471//464
|
1565 |
+
f 462//465 460//466 465//459 464//458
|
1566 |
+
f 460//466 459//467 466//460 465//459
|
1567 |
+
f 459//467 461//468 463//457 466//460
|
1568 |
+
f 476//469 469//470 470//463 475//462
|
1569 |
+
f 472//471 473//472 474//461 471//464
|
1570 |
+
f 469//470 462//465 464//458 470//463
|
1571 |
+
f 471//464 470//463 464//458 463//457
|
1572 |
+
f 461//468 472//471 471//464 463//457
|
1573 |
+
f 473//472 477//473 478//474 474//461
|
1574 |
+
f 478//474 479//475 475//462 474//461
|
1575 |
+
f 480//476 476//469 475//462 479//475
|
1576 |
+
f 477//473 457//477 467//478 478//474
|
1577 |
+
f 467//478 468//479 479//475 478//474
|
1578 |
+
f 458//480 480//476 479//475 468//479
|
1579 |
+
f 487//481 488//482 489//483 490//484
|
1580 |
+
f 498//485 499//486 494//487 495//488
|
1581 |
+
f 486//489 484//490 489//483 488//482
|
1582 |
+
f 484//490 483//491 490//484 489//483
|
1583 |
+
f 483//491 485//492 487//481 490//484
|
1584 |
+
f 500//493 493//494 494//487 499//486
|
1585 |
+
f 496//495 497//496 498//485 495//488
|
1586 |
+
f 493//494 486//489 488//482 494//487
|
1587 |
+
f 495//488 494//487 488//482 487//481
|
1588 |
+
f 485//492 496//495 495//488 487//481
|
1589 |
+
f 497//496 501//497 502//498 498//485
|
1590 |
+
f 502//498 503//499 499//486 498//485
|
1591 |
+
f 504//500 500//493 499//486 503//499
|
1592 |
+
f 501//497 481//501 491//502 502//498
|
1593 |
+
f 491//502 492//503 503//499 502//498
|
1594 |
+
f 482//504 504//500 503//499 492//503
|
1595 |
+
f 511//505 512//506 513//507 514//508
|
1596 |
+
f 522//509 523//510 518//511 519//512
|
1597 |
+
f 510//513 508//514 513//507 512//506
|
1598 |
+
f 508//514 507//515 514//508 513//507
|
1599 |
+
f 507//515 509//516 511//505 514//508
|
1600 |
+
f 524//517 517//518 518//511 523//510
|
1601 |
+
f 520//519 521//520 522//509 519//512
|
1602 |
+
f 517//518 510//513 512//506 518//511
|
1603 |
+
f 519//512 518//511 512//506 511//505
|
1604 |
+
f 509//516 520//519 519//512 511//505
|
1605 |
+
f 521//520 525//521 526//522 522//509
|
1606 |
+
f 526//522 527//523 523//510 522//509
|
1607 |
+
f 528//524 524//517 523//510 527//523
|
1608 |
+
f 525//521 505//525 515//526 526//522
|
1609 |
+
f 515//526 516//527 527//523 526//522
|
1610 |
+
f 506//528 528//524 527//523 516//527
|
1611 |
+
f 535//529 536//530 537//531 538//532
|
1612 |
+
f 546//533 547//534 542//535 543//536
|
1613 |
+
f 534//537 532//538 537//531 536//530
|
1614 |
+
f 532//538 531//539 538//532 537//531
|
1615 |
+
f 531//539 533//540 535//529 538//532
|
1616 |
+
f 548//541 541//542 542//535 547//534
|
1617 |
+
f 544//543 545//544 546//533 543//536
|
1618 |
+
f 541//542 534//537 536//530 542//535
|
1619 |
+
f 543//536 542//535 536//530 535//529
|
1620 |
+
f 533//540 544//543 543//536 535//529
|
1621 |
+
f 545//544 549//545 550//546 546//533
|
1622 |
+
f 550//546 551//547 547//534 546//533
|
1623 |
+
f 552//548 548//541 547//534 551//547
|
1624 |
+
f 549//545 529//549 539//550 550//546
|
1625 |
+
f 539//550 540//551 551//547 550//546
|
1626 |
+
f 530//552 552//548 551//547 540//551
|
1627 |
+
f 559//553 560//554 561//555 562//556
|
1628 |
+
f 570//557 571//558 566//559 567//560
|
1629 |
+
f 558//561 556//562 561//555 560//554
|
1630 |
+
f 556//562 555//563 562//556 561//555
|
1631 |
+
f 555//563 557//564 559//553 562//556
|
1632 |
+
f 572//565 565//566 566//559 571//558
|
1633 |
+
f 568//567 569//568 570//557 567//560
|
1634 |
+
f 565//566 558//561 560//554 566//559
|
1635 |
+
f 567//560 566//559 560//554 559//553
|
1636 |
+
f 557//564 568//567 567//560 559//553
|
1637 |
+
f 569//568 573//569 574//570 570//557
|
1638 |
+
f 574//570 575//571 571//558 570//557
|
1639 |
+
f 576//572 572//565 571//558 575//571
|
1640 |
+
f 573//569 553//573 563//574 574//570
|
1641 |
+
f 563//574 564//575 575//571 574//570
|
1642 |
+
f 554//576 576//572 575//571 564//575
|
1643 |
+
f 602//577 603//578 604//579 605//580
|
1644 |
+
f 584//581 578//582 581//583 589//584
|
1645 |
+
f 581//583 577//585 583//586 589//584
|
1646 |
+
f 606//587 607//588 602//577 605//580
|
1647 |
+
f 581//583 578//582 586//589 590//590
|
1648 |
+
f 586//589 580//591 582//592 590//590
|
1649 |
+
f 582//592 579//593 585//594 590//590
|
1650 |
+
f 585//594 577//585 581//583 590//590
|
1651 |
+
f 582//592 580//591 588//595 591//596
|
1652 |
+
f 608//597 609//598 610//599 611//600
|
1653 |
+
f 610//599 612//601 613//602 611//600
|
1654 |
+
f 587//603 579//593 582//592 591//596
|
1655 |
+
f 610//599 609//598 614//604 615//605
|
1656 |
+
f 614//604 603//578 602//577 615//605
|
1657 |
+
f 602//577 607//588 616//606 615//605
|
1658 |
+
f 616//606 612//601 610//599 615//605
|
1659 |
+
f 614//604 609//598 608//597 617//607
|
1660 |
+
f 588//595 580//591 586//589 592//608
|
1661 |
+
f 586//589 578//582 584//581 592//608
|
1662 |
+
f 604//579 603//578 614//604 617//607
|
1663 |
+
f 616//606 607//588 606//587 618//609
|
1664 |
+
f 583//586 577//585 585//594 593//610
|
1665 |
+
f 585//594 579//593 587//603 593//610
|
1666 |
+
f 613//602 612//601 616//606 618//609
|
1667 |
+
f 584//581 589//584 595//611 594//612
|
1668 |
+
f 589//584 583//586 596//613 595//611
|
1669 |
+
f 591//596 588//595 597//614 598//615
|
1670 |
+
f 587//603 591//596 598//615 599//616
|
1671 |
+
f 588//595 592//608 600//617 597//614
|
1672 |
+
f 592//608 584//581 594//612 600//617
|
1673 |
+
f 583//586 593//610 601//618 596//613
|
1674 |
+
f 593//610 587//603 599//616 601//618
|
1675 |
+
f 594//612 595//611 625//619 626//620
|
1676 |
+
f 595//611 596//613 624//621 625//619
|
1677 |
+
f 598//615 597//614 620//622 621//623
|
1678 |
+
f 599//616 598//615 621//623 622//624
|
1679 |
+
f 597//614 600//617 619//625 620//622
|
1680 |
+
f 619//625 600//617 594//612 626//620
|
1681 |
+
f 596//613 601//618 623//626 624//621
|
1682 |
+
f 601//618 599//616 622//624 623//626
|
1683 |
+
f 620//622 619//625 617//607 608//597
|
1684 |
+
f 621//623 620//622 608//597 611//600
|
1685 |
+
f 622//624 621//623 611//600 613//602
|
1686 |
+
f 623//626 622//624 613//602 618//609
|
1687 |
+
f 624//621 623//626 618//609 606//587
|
1688 |
+
f 625//619 624//621 606//587 605//580
|
1689 |
+
f 626//620 625//619 605//580 604//579
|
1690 |
+
f 619//625 626//620 604//579 617//607
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.hier
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.mtl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
newmtl leaves
|
2 |
+
newmtl barkSimple
|
3 |
+
newmtl bark
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1.obj
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:da68baa86c373fa25b8216841a38dcb10d50054f467ef004ac8af0902c228cce
|
3 |
+
size 125931183
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.hier
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.mtl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
newmtl leaves
|
2 |
+
newmtl barkSimple
|
3 |
+
newmtl bark
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiA.obj
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:865d9dd9b5bde8c1de02c382e8c9e6fa5be5523807ceb7afabddb0d30011baa3
|
3 |
+
size 136106985
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.hier
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.mtl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
newmtl leaves
|
2 |
+
newmtl barkSimple
|
3 |
+
newmtl bark
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiB.obj
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c130c615b6c104ff95b38e24b969d9239408999e6d9909ae7cc7db925e533b78
|
3 |
+
size 47593478
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.hier
ADDED
The diff for this file is too large to render.
See raw diff
|
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.mtl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
newmtl leaves
|
2 |
+
newmtl barkSimple
|
3 |
+
newmtl bark
|
vae/Irand/island/obj/isBayCedarA1/isBayCedarA1_bonsaiC.obj
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e2503b424c3f073a3b7e40b51f0008798396c6950b6f4feee41658456d460b4e
|
3 |
+
size 39661755
|
vae/Irand/island/ref/pbrtRenders/beachCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/birdseyeCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/dunesACam.png
ADDED
vae/Irand/island/ref/pbrtRenders/flowersCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/grassCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/palmsCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/rootsCam.png
ADDED
vae/Irand/island/ref/pbrtRenders/shotCam.png
ADDED
vae/Irand/island/scripts/embree/.DS_Store
ADDED
Binary file (6.15 kB). View file
|
|
vae/Irand/island/scripts/embree/._.DS_Store
ADDED
Binary file (4.1 kB). View file
|
|
vae/Irand/island/scripts/embree/._README.txt
ADDED
Binary file (4.1 kB). View file
|
|
vae/Irand/island/scripts/embree/._embreeConvert.py
ADDED
Binary file (4.1 kB). View file
|
|
vae/Irand/island/scripts/embree/._embreeConvertAll.sh
ADDED
Binary file (4.1 kB). View file
|
|
vae/Irand/island/scripts/embree/._embreeutils.py
ADDED
Binary file (4.1 kB). View file
|
|
vae/Irand/island/scripts/embree/README.txt
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
This folder contains scripts to convert the Moana Island scene into
|
2 |
+
the Embree XML format.
|
3 |
+
|
4 |
+
For the scripts to work you need to install the Embree Ray Tracing
|
5 |
+
Kernels v3.1.0, which can be downloaded from
|
6 |
+
https://github.com/embree/embree/releases/tag/v3.1.0. Make
|
7 |
+
sure that the folder containing the `convert` application that comes
|
8 |
+
with Embree is inside your PATH.
|
9 |
+
|
10 |
+
Now you can invoke the conversion from the root folder of the Moana
|
11 |
+
Island scene:
|
12 |
+
|
13 |
+
|
14 |
+
cd island
|
15 |
+
./scripts/embree/embreeConvertAll.sh
|
16 |
+
|
17 |
+
The conversion will take a couple of hours and will require 60GB of
|
18 |
+
system memory. When the conversion finished you can render the model,
|
19 |
+
e.g. using the Embree tutorial pathtracer:
|
20 |
+
|
21 |
+
path_to_embree/bin/pathtracer -c island/embree/island.ecs
|
22 |
+
|
23 |
+
The Embree pathtracer does not support the PTEX textures nor advanced
|
24 |
+
materials of the model, this all materials will get rendered with simple
|
25 |
+
diffuse colors provided with the model only.
|
vae/Irand/island/scripts/embree/embreeConvert.py
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env python
|
2 |
+
"""
|
3 |
+
give a json element file, create pbrt scenes and objects. This should create the main element/element.xml,
|
4 |
+
element/geometry.xml and element/materials.xml. In addition, if the element has instanced primitives, then
|
5 |
+
for each primitive, a primitive subdirectory is created, along with a primitive.xml file and an archive_geometry
|
6 |
+
pbrt file for each archive referenced by that primitive description:
|
7 |
+
|
8 |
+
element/element.xml
|
9 |
+
element/element_geometry.xml
|
10 |
+
element/material.xml
|
11 |
+
element/objects.xml
|
12 |
+
|
13 |
+
element/primitive/primitive.xml
|
14 |
+
element/primitive/archive_geometry.xml
|
15 |
+
|
16 |
+
"""
|
17 |
+
import sys
|
18 |
+
import os
|
19 |
+
import argparse
|
20 |
+
import json
|
21 |
+
import embreeutils as pu
|
22 |
+
|
23 |
+
ISLANDDIR = os.getcwd()
|
24 |
+
|
25 |
+
|
26 |
+
def parseArgs():
|
27 |
+
|
28 |
+
parser = argparse.ArgumentParser(
|
29 |
+
description="Takes an element and creates pbrt element version of the geometry and scene.")
|
30 |
+
|
31 |
+
parser.add_argument('element', metavar='ELEM', help="Element to load.")
|
32 |
+
parser.add_argument('--frameRange', type=str, default="1", help="Frame range to export, i.e. 1 or 1-3 or 1-5:2")
|
33 |
+
parser.add_argument('-o', '--outdir', default=ISLANDDIR, help="Where to write out the pbrt files(s).")
|
34 |
+
parser.add_argument('--skipObj', action='store_true', default=False, help="Skip Obj Conversion")
|
35 |
+
parser.add_argument('--skipCopies', action='store_true', default=False, help="Skip Instanced Copies Obj Generation")
|
36 |
+
parser.add_argument('--skipArchives', action='store_true', default=False, help="Skip Archive Conversion")
|
37 |
+
parser.add_argument('--skipMat', action='store_true', default=False, help="Skip Material Generation")
|
38 |
+
parser.add_argument('--skipPrims', action='store_true', default=False, help="Skip Primitive(s) PBRT Generation")
|
39 |
+
parser.add_argument('--skipMain', action='store_true', default=False, help="Skip Main PBRT Generation")
|
40 |
+
parser.add_argument('--prim', default="", help="Specific json primitive file to load, i.e. xgGrass")
|
41 |
+
|
42 |
+
return parser.parse_args()
|
43 |
+
|
44 |
+
|
45 |
+
def main():
|
46 |
+
args = parseArgs()
|
47 |
+
|
48 |
+
if args.element == "island":
|
49 |
+
# create the main island file.
|
50 |
+
pu.writeMainPbrtFile()
|
51 |
+
pu.writeEmbreeEcsFile()
|
52 |
+
return
|
53 |
+
|
54 |
+
jsonFile = os.path.join("json", args.element, args.element + ".json")
|
55 |
+
with open(jsonFile, "r") as jf:
|
56 |
+
jsonDict = json.load(jf)
|
57 |
+
|
58 |
+
# pull data from dict
|
59 |
+
element = jsonDict["name"]
|
60 |
+
objFile = jsonDict["geomObjFile"]
|
61 |
+
matFile = jsonDict["matFile"] if "matFile" in jsonDict else ""
|
62 |
+
instancedPrimitives = jsonDict["instancedPrimitiveJsonFiles"] if "instancedPrimitiveJsonFiles" in jsonDict else {}
|
63 |
+
instancedCopies = jsonDict["instancedCopies"] if "instancedCopies" in jsonDict else {}
|
64 |
+
primDesc = args.prim
|
65 |
+
|
66 |
+
archiveFiles = {}
|
67 |
+
primitiveFiles = []
|
68 |
+
|
69 |
+
print "Preparing embree export for element: ", element
|
70 |
+
elementDir = os.path.join(args.outdir, "embree", element)
|
71 |
+
|
72 |
+
# make all the directories we're going to need
|
73 |
+
for outDir in [elementDir] + [os.path.join(args.outdir, "embree", element, x) for x in instancedPrimitives]:
|
74 |
+
if not os.path.exists(outDir):
|
75 |
+
os.makedirs(outDir)
|
76 |
+
|
77 |
+
# relative path and full path names of the output files for embree.
|
78 |
+
pbrtRelOutElement = os.path.join(element, element + ".xml")
|
79 |
+
pbrtRelOutGeometry = os.path.join(element, element + "_geometry.xml")
|
80 |
+
pbrtRelOutMaterials = os.path.join(element, "materials.xml")
|
81 |
+
pbrtOutElement = os.path.join(elementDir, element + ".xml")
|
82 |
+
pbrtOutGeometry = os.path.join(elementDir, element + "_geometry.xml")
|
83 |
+
pbrtOutMaterials = os.path.join(elementDir, "materials.xml")
|
84 |
+
|
85 |
+
##############################################
|
86 |
+
# Convert materials for the element --> element/materials.xml
|
87 |
+
# -- we convert these first because we need the information to insert it into the OBJs.
|
88 |
+
if not args.skipMat:
|
89 |
+
print "################################################# Converting Materials: "
|
90 |
+
pu.matToPbrt(element, matFile, pbrtOutMaterials)
|
91 |
+
|
92 |
+
##############################################
|
93 |
+
# Convert geometry -- main file--> element/element_geometry.xml (to be consistent w/ instances)
|
94 |
+
if not args.skipObj:
|
95 |
+
print "################################################# Converting main element OBJ file: "
|
96 |
+
print "Exporting: ", pbrtOutGeometry
|
97 |
+
pu.geomToPbrt(objFile, pbrtOutGeometry, "", "../../")
|
98 |
+
|
99 |
+
##############################################
|
100 |
+
# Convert geometry #2 -- instanced copies with their own geometry (isPalmRig special case code....)
|
101 |
+
if instancedCopies:
|
102 |
+
print "################################################# Converting Instanced copies OBJ files: "
|
103 |
+
for instance, icDict in instancedCopies.iteritems():
|
104 |
+
if "geomObjFile" in icDict:
|
105 |
+
pbrtOutInstGeometry = os.path.join(elementDir, instance + "_geometry.xml")
|
106 |
+
print "Exporting: ", pbrtOutInstGeometry
|
107 |
+
pu.geomToPbrt(icDict['geomObjFile'], pbrtOutInstGeometry , "", "../../")
|
108 |
+
|
109 |
+
##############################################
|
110 |
+
# convert geometry #3 - primitives json files and associated archives --> element/primitive/archive_geometry.xml
|
111 |
+
# note: we don't need to run this for instanced copies -- we're assuming they use the same primitives.
|
112 |
+
if not args.skipArchives or not instancedPrimitives:
|
113 |
+
print "################################################# Converting Instanced JSON files and OBJ archives: "
|
114 |
+
for primitiveName, ipDict in instancedPrimitives.iteritems():
|
115 |
+
# this file is the instance name and transforms of each archive, keyed by archive (obj)
|
116 |
+
if "archives" in ipDict:
|
117 |
+
print "Create geometry data for all archives associated with ", primitiveName
|
118 |
+
archiveFiles[primitiveName] = []
|
119 |
+
for archive in ipDict["archives"]:
|
120 |
+
# this is a list of all the archives referenced above.
|
121 |
+
base = os.path.basename(archive)[:-4]
|
122 |
+
pbrtOutArchiveGeometry = os.path.join(elementDir, primitiveName, base + "_geometry.xml")
|
123 |
+
if not os.path.exists(pbrtOutArchiveGeometry):
|
124 |
+
print "Exporting: ", pbrtOutArchiveGeometry
|
125 |
+
if ipDict["type"] == "archive":
|
126 |
+
pu.geomToPbrt(archive, pbrtOutArchiveGeometry, "", "../../../")
|
127 |
+
else:
|
128 |
+
#variantMatFile = os.path.join(args.outdir, "json", ipDict["element"],"materials.json" )
|
129 |
+
variantMatFile = os.path.join("embree", ipDict["element"],"materials.xml" )
|
130 |
+
print "...Exporting variant with alternate material file: %s" % variantMatFile
|
131 |
+
pu.geomToPbrt(archive, pbrtOutArchiveGeometry, variantMatFile,"../../../")
|
132 |
+
archiveFiles[primitiveName].append(pbrtOutArchiveGeometry)
|
133 |
+
|
134 |
+
else:
|
135 |
+
# If we skipped creating archives, re-build the list here here.
|
136 |
+
if instancedPrimitives:
|
137 |
+
for primitiveName, iDict in instancedPrimitives.iteritems():
|
138 |
+
archiveFiles[primitiveName] = [os.path.join(element, primitiveName, x)
|
139 |
+
for x in os.listdir(os.path.join(elementDir, primitiveName))
|
140 |
+
if x.endswith("geometry.xml")]
|
141 |
+
|
142 |
+
if not args.skipPrims:
|
143 |
+
##############################################
|
144 |
+
# Create primitives #1: element/primitive/instance_primitive.xml. This creates either
|
145 |
+
# an archive type or curve type of file. All created files are added to a list for later
|
146 |
+
# referencing in the main element pbrt file.
|
147 |
+
print "################################################# Creating Primitive reference files: "
|
148 |
+
for primitiveName, ipDict in instancedPrimitives.iteritems():
|
149 |
+
if primDesc and primDesc != primitiveName:
|
150 |
+
continue
|
151 |
+
# this file is the instance name and transforms of each archive, keyed by archive (obj)
|
152 |
+
print "Create main primitive file for:", primitiveName, "using", ipDict["jsonFile"]
|
153 |
+
primitiveFiles.append(pu.jsonPrimitiveToPbrt(ipDict["type"] if "type" in ipDict else "", element, primitiveName, ipDict))
|
154 |
+
|
155 |
+
#############################################
|
156 |
+
# Create primitve #3 -- for all 'element' archive types, create any included primitives associated with
|
157 |
+
# them, i.e. - isBayCedarA1_bonsaiA_xgBonsai
|
158 |
+
if "type" in ipDict and ipDict["type"] == "element":
|
159 |
+
sourceDict = pu.readJsonFile(os.path.join("json", ipDict["element"], ipDict["element"]+".json"))
|
160 |
+
for variant, vDict in sourceDict["variants"].iteritems():
|
161 |
+
if "instancedPrimitiveJsonFiles" not in vDict:
|
162 |
+
continue
|
163 |
+
for primitiveName, vipDict in vDict["instancedPrimitiveJsonFiles"].iteritems():
|
164 |
+
primitiveFiles.append(pu.jsonPrimitiveToPbrt(vipDict["type"], ipDict["element"], primitiveName, vipDict))
|
165 |
+
|
166 |
+
##############################################
|
167 |
+
# Create primitives #3 -- instanced copies with their own primitives (i,e, - isPalmRig3 w xgFronds3)
|
168 |
+
if instancedCopies:
|
169 |
+
print "################################################# Creating instanced copies primitives files: "
|
170 |
+
for instance, icDict in instancedCopies.iteritems():
|
171 |
+
if "instancedPrimitiveJsonFiles" in icDict:
|
172 |
+
for primitiveName, ipDict in icDict["instancedPrimitiveJsonFiles"].iteritems():
|
173 |
+
print "Create primitive file for:", primitiveName, "using", ipDict["jsonFile"]
|
174 |
+
primitiveFiles.append(pu.jsonPrimitiveToPbrt(ipDict["type"] if "type" in ipDict else "", element, primitiveName, ipDict))
|
175 |
+
|
176 |
+
else:
|
177 |
+
# If we skipped the conversion, build primitiveFiles list here.
|
178 |
+
for primitiveName in instancedPrimitives:
|
179 |
+
primitiveFiles += [os.path.join(element, primitiveName, x)
|
180 |
+
for x in os.listdir(os.path.join(elementDir, primitiveName))
|
181 |
+
if x.endswith(".xml") and
|
182 |
+
not x.endswith("geometry.xml")]
|
183 |
+
|
184 |
+
if not args.skipMain:
|
185 |
+
##############################################
|
186 |
+
# Create the main pbrt reference file with builds the hierarchy via includes and transform.
|
187 |
+
# --> element/element.xml
|
188 |
+
print "################################################# Creating main element reference: "
|
189 |
+
print "Exporting:", pbrtOutElement
|
190 |
+
pu.writeMainElement(pbrtOutElement, pbrtRelOutMaterials, pbrtRelOutGeometry, primitiveFiles,
|
191 |
+
sourceJsonFile=jsonFile)
|
192 |
+
|
193 |
+
|
194 |
+
if __name__ == "__main__":
|
195 |
+
if main():
|
196 |
+
sys.exit(0)
|
197 |
+
sys.exit(1)
|
198 |
+
|
199 |
+
|
200 |
+
|
201 |
+
|
vae/Irand/island/scripts/embree/embreeConvertAll.sh
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
CONVERT=convert
|
3 |
+
|
4 |
+
./scripts/embree/embreeConvert.py isHibiscus
|
5 |
+
./scripts/embree/embreeConvert.py isIronwoodA1
|
6 |
+
./scripts/embree/embreeConvert.py isKava
|
7 |
+
./scripts/embree/embreeConvert.py isNaupakaA
|
8 |
+
./scripts/embree/embreeConvert.py isBayCedarA1
|
9 |
+
./scripts/embree/embreeConvert.py isGardeniaA
|
10 |
+
./scripts/embree/embreeConvert.py isHibiscusYoung
|
11 |
+
./scripts/embree/embreeConvert.py isIronwoodB
|
12 |
+
./scripts/embree/embreeConvert.py isLavaRocks
|
13 |
+
./scripts/embree/embreeConvert.py isPalmDead
|
14 |
+
./scripts/embree/embreeConvert.py isPalmRig
|
15 |
+
./scripts/embree/embreeConvert.py isPandanusA
|
16 |
+
./scripts/embree/embreeConvert.py osOcean
|
17 |
+
./scripts/embree/embreeConvert.py isCoral
|
18 |
+
./scripts/embree/embreeConvert.py isBeach
|
19 |
+
./scripts/embree/embreeConvert.py isCoastline
|
20 |
+
./scripts/embree/embreeConvert.py isDunesA
|
21 |
+
./scripts/embree/embreeConvert.py isDunesB
|
22 |
+
./scripts/embree/embreeConvert.py isMountainA
|
23 |
+
./scripts/embree/embreeConvert.py isMountainB
|
24 |
+
./scripts/embree/embreeConvert.py island
|
25 |
+
|
26 |
+
for f in `find obj -type d`; do echo $f; mkdir xml${f:3}; done
|
27 |
+
for f in `find obj/ -type f -name "*.obj" `; do echo $f; $CONVERT -reference-materials -i $f -o xml${f:3:-3}xml; done
|
28 |
+
|
29 |
+
$CONVERT -i embree/isHibiscus/isHibiscus.xml -o embree/isHibiscus.xml
|
30 |
+
$CONVERT -i embree/isIronwoodA1/isIronwoodA1.xml -o embree/isIronwoodA1.xml
|
31 |
+
$CONVERT -i embree/isKava/isKava.xml -o embree/isKava.xml
|
32 |
+
$CONVERT -i embree/isNaupakaA/isNaupakaA.xml -o embree/isNaupakaA.xml
|
33 |
+
$CONVERT -i embree/isBayCedarA1/isBayCedarA1.xml -o embree/isBayCedarA1.xml
|
34 |
+
$CONVERT -i embree/isGardeniaA/isGardeniaA.xml -o embree/isGardeniaA.xml
|
35 |
+
$CONVERT -i embree/isHibiscusYoung/isHibiscusYoung.xml -o embree/isHibiscusYoung.xml
|
36 |
+
$CONVERT -i embree/isIronwoodB/isIronwoodB.xml -o embree/isIronwoodB.xml
|
37 |
+
$CONVERT -i embree/isLavaRocks/isLavaRocks.xml -o embree/isLavaRocks.xml
|
38 |
+
$CONVERT -i embree/isPalmDead/isPalmDead.xml -o embree/isPalmDead.xml
|
39 |
+
$CONVERT -i embree/isPalmRig/isPalmRig.xml -o embree/isPalmRig.xml
|
40 |
+
$CONVERT -i embree/isPandanusA/isPandanusA.xml -o embree/isPandanusA.xml
|
41 |
+
$CONVERT -i embree/osOcean/osOcean.xml -o embree/osOcean.xml
|
42 |
+
$CONVERT -i embree/isCoral/isCoral.xml -o embree/isCoral.xml
|
43 |
+
$CONVERT -i embree/isBeach/isBeach.xml -o embree/isBeach.xml
|
44 |
+
$CONVERT -i embree/isCoastline/isCoastline.xml -o embree/isCoastline.xml
|
45 |
+
$CONVERT -i embree/isDunesA/isDunesA.xml -o embree/isDunesA.xml
|
46 |
+
$CONVERT -i embree/isDunesB/isDunesB.xml -o embree/isDunesB.xml
|
47 |
+
$CONVERT -i embree/isMountainA/isMountainA.xml -o embree/isMountainA.xml
|
48 |
+
$CONVERT -i embree/isMountainB/isMountainB.xml -o embree/isMountainB.xml
|
49 |
+
|
50 |
+
$CONVERT -i embree/island.xml -flatten-group -o embree/island_flattened.xml
|
51 |
+
|
52 |
+
|
vae/Irand/island/scripts/embree/embreeutils.py
ADDED
@@ -0,0 +1,896 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import sys
|
3 |
+
import fcntl
|
4 |
+
import stat
|
5 |
+
import json
|
6 |
+
import math
|
7 |
+
import subprocess
|
8 |
+
import fnmatch
|
9 |
+
import re
|
10 |
+
import tempfile
|
11 |
+
import shutil
|
12 |
+
|
13 |
+
OUTDIR = os.getcwd()
|
14 |
+
CAMFILE = OUTDIR + "/json/cameras/shotCam.json"
|
15 |
+
LIGHTFILE = OUTDIR + "/json/lights/lights.json"
|
16 |
+
|
17 |
+
#OBJ2PBRT = shutil.which("obj2pbrt")
|
18 |
+
#OCEAN2PBRT = shutil.which("obj2pbrt")
|
19 |
+
TMPDIR = '/tmp'
|
20 |
+
IDENTITY = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
|
21 |
+
|
22 |
+
# DISNEY: Solids has scattrDistR,G and B; Thin has flatness and diffTrans
|
23 |
+
# PBRT: difftrans and flatness are specific to the BSDF, enabled by the thin parameter
|
24 |
+
DIS2PBRT = {
|
25 |
+
"metallic": "float metallic",
|
26 |
+
"roughness": "float roughness",
|
27 |
+
"anisotropic": "float anisotropic",
|
28 |
+
"specularTint": "float speculartint",
|
29 |
+
"sheen": "float sheen",
|
30 |
+
"sheenTint": "float sheentint",
|
31 |
+
"clearcoat" : "float clearcoat",
|
32 |
+
"clearcoatGloss": "float clearcoatgloss",
|
33 |
+
"specTrans" : "float spectrans",
|
34 |
+
"ior" : "float eta"
|
35 |
+
}
|
36 |
+
|
37 |
+
|
38 |
+
def mon2lin(color):
|
39 |
+
return [math.pow(color[0], 2.2), math.pow(color[1], 2.2), math.pow(color[2], 2.2)]
|
40 |
+
|
41 |
+
|
42 |
+
def readJsonFile(jsonFile):
|
43 |
+
"""
|
44 |
+
Wrapper script to import json file as dict.
|
45 |
+
:param jsonFile: file as string
|
46 |
+
:return: dict
|
47 |
+
"""
|
48 |
+
with open(os.path.abspath(jsonFile), "r") as jf:
|
49 |
+
jsonDict = json.load(jf)
|
50 |
+
return jsonDict if jsonDict else {}
|
51 |
+
|
52 |
+
|
53 |
+
def writeEmbreeEcsFile():
|
54 |
+
ecsFilePath = os.path.abspath("embree/island.ecs")
|
55 |
+
ecsFile = os.open(ecsFilePath, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
56 |
+
fcntl.flock(ecsFile, fcntl.LOCK_EX)
|
57 |
+
try:
|
58 |
+
f = os.fdopen(ecsFile,'w')
|
59 |
+
except IOError as (errno, strerror):
|
60 |
+
print "Couldn't open %s for write: %s" % (ecsFilePath, strerror)
|
61 |
+
return False
|
62 |
+
|
63 |
+
f.writelines('-i island_flattened.xml --instancing flattened --verbose 1\n')
|
64 |
+
|
65 |
+
os.fsync(ecsFile)
|
66 |
+
fcntl.flock(ecsFile, fcntl.LOCK_UN)
|
67 |
+
f.close()
|
68 |
+
os.chmod(ecsFilePath, stat.S_IRUSR|stat.S_IWUSR|stat.S_IRGRP|stat.S_IWGRP|stat.S_IROTH|stat.S_IWOTH)
|
69 |
+
print "Writing main ECS file: ", ecsFilePath
|
70 |
+
|
71 |
+
return True
|
72 |
+
|
73 |
+
def writeMainPbrtFile(outPbrtFile="embree/island.xml"):
|
74 |
+
"""
|
75 |
+
Create the main XML file with has all the camera, lights and geometry includes and WorldBegin/End
|
76 |
+
:param outPbrtFile: file to create
|
77 |
+
:return: success
|
78 |
+
"""
|
79 |
+
pbrtFile = os.path.abspath(outPbrtFile)
|
80 |
+
pbrtFileObj = os.open(pbrtFile, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
81 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
82 |
+
|
83 |
+
try:
|
84 |
+
f = os.fdopen(pbrtFileObj,'w')
|
85 |
+
except IOError as (errno, strerror):
|
86 |
+
print "Couldn't open %s for write: %s" % (pbrtFile, strerror)
|
87 |
+
return False
|
88 |
+
|
89 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
90 |
+
f.writelines('<scene>\n')
|
91 |
+
#f.writelines(createDefaultHeader())
|
92 |
+
|
93 |
+
with open(CAMFILE, "r") as cf:
|
94 |
+
cameraDict = json.load(cf)
|
95 |
+
|
96 |
+
f.writelines(' <PerspectiveCamera name="default"\n')
|
97 |
+
f.writelines(' from="%f %f %f"\n' % (cameraDict["eye"][0], cameraDict["eye"][1], cameraDict["eye"][2]))
|
98 |
+
f.writelines(' to="%f %f %f"\n' % (cameraDict["look"][0], cameraDict["look"][1], cameraDict["look"][2]))
|
99 |
+
f.writelines(' up="%f %f %f"\n' % (cameraDict["up"][0], cameraDict["up"][1], cameraDict["up"][2]))
|
100 |
+
f.writelines(' fov="%f"\n' % cameraDict["fov"])
|
101 |
+
f.writelines(' />\n')
|
102 |
+
f.writelines('\n')
|
103 |
+
|
104 |
+
f.writelines(' <DirectionalLight>\n')
|
105 |
+
f.writelines(' <AffineSpace>\n')
|
106 |
+
f.writelines(' 1 0 -1 0\n')
|
107 |
+
f.writelines(' 0 0 -1 0\n')
|
108 |
+
f.writelines(' 0 1 0 0\n')
|
109 |
+
f.writelines(' </AffineSpace>\n')
|
110 |
+
f.writelines(' <E>10 10 10</E>\n')
|
111 |
+
f.writelines(' </DirectionalLight>\n')
|
112 |
+
f.writelines('\n')
|
113 |
+
|
114 |
+
f.writelines(' <AmbientLight>\n')
|
115 |
+
f.writelines(' <AffineSpace>\n')
|
116 |
+
f.writelines(' 1 0 0 0\n')
|
117 |
+
f.writelines(' 0 1 0 0\n')
|
118 |
+
f.writelines(' 0 0 1 0\n')
|
119 |
+
f.writelines(' </AffineSpace>\n')
|
120 |
+
f.writelines(' <L>0.5 0.5 0.5</L>\n')
|
121 |
+
f.writelines(' </AmbientLight>\n')
|
122 |
+
f.writelines('\n')
|
123 |
+
|
124 |
+
# recommended after much testing...
|
125 |
+
#f.writelines('Sampler "sobol" "integer pixelsamples" 1024\n') # went up to 8192
|
126 |
+
#f.writelines('Integrator "volpath" "integer maxdepth" [10]\n')
|
127 |
+
|
128 |
+
#f.writelines(createLights(LIGHTFILE))
|
129 |
+
f.writelines(insertElements())
|
130 |
+
f.writelines('</scene>\n\n')
|
131 |
+
|
132 |
+
os.fsync(pbrtFileObj)
|
133 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
134 |
+
f.close()
|
135 |
+
os.chmod(pbrtFile, stat.S_IRUSR|stat.S_IWUSR|stat.S_IRGRP|stat.S_IWGRP|stat.S_IROTH|stat.S_IWOTH)
|
136 |
+
print "Writing main XML file: ", pbrtFile
|
137 |
+
return True
|
138 |
+
|
139 |
+
|
140 |
+
def createDefaultHeader():
|
141 |
+
header = 'Scale -1 1 1\n'
|
142 |
+
header += 'Film "image" "string filename" ["island.png"]\n'
|
143 |
+
header += ' "integer xresolution" [1024] "integer yresolution" [429]\n'
|
144 |
+
header += ' "float maxsampleluminance" 10\n\n'
|
145 |
+
return header
|
146 |
+
|
147 |
+
|
148 |
+
def createCamera(f,jsonCamFile):
|
149 |
+
"""
|
150 |
+
:param: camFile: Json file with raw camera data from maya.
|
151 |
+
:return:
|
152 |
+
"""
|
153 |
+
|
154 |
+
#cameraTxt = "LookAt %f %f %f" % (cameraDict["eye"][0], cameraDict["eye"][1], cameraDict["eye"][2])
|
155 |
+
#cameraTxt += " %f %f %f" % (cameraDict["look"][0], cameraDict["look"][1], cameraDict["look"][2])
|
156 |
+
#cameraTxt += " %f %f %f\n" % (cameraDict["up"][0], cameraDict["up"][1], cameraDict["up"][2])
|
157 |
+
#cameraTxt += """Camera "perspective" "float fov" [%f]\n""" % cameraDict["fov"]
|
158 |
+
#cameraTxt += """ "float screenwindow" [%f %f %f %f]\n""" % (cameraDict["screenwindow"][0], cameraDict["screenwindow"][1], cameraDict["screenwindow"][2], cameraDict["screenwindow"][3])
|
159 |
+
#cameraTxt += """ "float frameaspectratio" [%f]\n""" % cameraDict["ratio"]
|
160 |
+
#cameraTxt += """ "float lensradius" [%f]\n""" % cameraDict["lensRadius"]
|
161 |
+
#cameraTxt += """ "float focaldistance" [%f]\n""" % cameraDict["centerOfInterest"]
|
162 |
+
#return cameraTxt
|
163 |
+
|
164 |
+
|
165 |
+
def createLights(jsonLightsFile):
|
166 |
+
lightText = ""
|
167 |
+
|
168 |
+
with open(os.path.abspath(jsonLightsFile), "r") as lf:
|
169 |
+
lightsDict = json.load(lf)
|
170 |
+
|
171 |
+
for lightName, lightDict in lightsDict.iteritems():
|
172 |
+
# common values
|
173 |
+
lc = mon2lin(lightDict["color"])
|
174 |
+
le = math.pow(2, lightDict["exposure"])
|
175 |
+
rot = lightDict["rotation"]
|
176 |
+
loc = lightDict["location"]
|
177 |
+
tm = lightDict["translationMatrix"]
|
178 |
+
|
179 |
+
if lightDict["type"] == "dome":
|
180 |
+
#mapname = lightDict["map"]
|
181 |
+
mapname = os.path.basename(lightDict["envmapCamera"])
|
182 |
+
lightText += "# skydome: %s\n" % lightName
|
183 |
+
lightText += "AttributeBegin\n"
|
184 |
+
#lightText += " Translate %f %f %f\n" % (loc[0], loc[1], loc[2])
|
185 |
+
#lightText += " Rotate %f %f %f 1\n" % (rot[0], rot[1], rot[2])
|
186 |
+
# This is what it took to line up our HDR image. YMMV
|
187 |
+
lightText += " Scale -1 1 1\n"
|
188 |
+
lightText += " Rotate 90 -1 0 0\n"
|
189 |
+
lightText += " Rotate 65 0 0 1\n"
|
190 |
+
lightText += """ LightSource "infinite" "string mapname" "%s"\n""" % os.path.join("..","textures",mapname)
|
191 |
+
lightText += "AttributeEnd\n\n"
|
192 |
+
|
193 |
+
elif lightDict["type"] == "distant":
|
194 |
+
lightText += "# distant light: %s\n" % lightName
|
195 |
+
lightText += "AttributeBegin\n"
|
196 |
+
lightText += " Translate %f %f %f\n" % (loc[0], loc[1], loc[2])
|
197 |
+
lightText += " Rotate %f %f %f 1\n" % (rot[0], rot[1], rot[2])
|
198 |
+
lightText += """ LightSource "distant" "point from" [ 0.0 0.0 0.0]\n"""
|
199 |
+
lightText += """ "point to" [ 0.0 0.0 -1.0 ]\n"""
|
200 |
+
lightText += """ "rgb L" [ %f %f %f ]\n""" % (lc[0], lc[1], lc[2])
|
201 |
+
lightText += "AttributeEnd\n\n"
|
202 |
+
|
203 |
+
elif lightDict["type"] == "quad":
|
204 |
+
hw = float(lightDict["width"]) / 2
|
205 |
+
hh = float(lightDict["height"]) / 2
|
206 |
+
lightText += "# quad light w/ simple triangle mesh: %s\n" % lightName
|
207 |
+
lightText += "AttributeBegin\n"
|
208 |
+
lightText += """ AreaLightSource "diffuse" "rgb L" [%f %f %f]\n""" % (lc[0]*le, lc[1]*le, lc[2]*le)
|
209 |
+
lightText += " Transform [%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f]\n" % tuple(tm)
|
210 |
+
lightText += """ Shape "trianglemesh" "integer indices" [0 2 1 0 3 2] "float alpha" 0\n"""
|
211 |
+
lightText += """ "point P"[%f %f 0 %f %f 0 %f %f 0 %f %f 0]\n""" % (hw, hh, -hw, hh, -hw, -hh, hw, -hh)
|
212 |
+
lightText += "AttributeEnd\n\n"
|
213 |
+
|
214 |
+
else:
|
215 |
+
print "Light type not supported:", lightName, lightDict["type"]
|
216 |
+
|
217 |
+
return lightText
|
218 |
+
|
219 |
+
|
220 |
+
def createDefaultTail():
|
221 |
+
return "\nWorldEnd\n"
|
222 |
+
|
223 |
+
|
224 |
+
def createGeometryHeader(gp, jsonFile, materialsName):
|
225 |
+
gp.write("<!--Created from %s-->\n" % jsonFile)
|
226 |
+
gp.write("AttributeBegin\n")
|
227 |
+
gp.write(" Include \"%s\"\n\n" % materialsName)
|
228 |
+
|
229 |
+
|
230 |
+
def createGeometryTail(gp):
|
231 |
+
gp.write("AttributeEnd\n")
|
232 |
+
|
233 |
+
|
234 |
+
def insertElements():
|
235 |
+
elementText = ''
|
236 |
+
for element in os.listdir(os.path.abspath("obj")):
|
237 |
+
elementText += ' <xml src="%s"/>\n'% (element + ".xml")
|
238 |
+
return elementText
|
239 |
+
|
240 |
+
|
241 |
+
def geomToPbrt(objFile, pbrtFile, matFile, root_folder):
|
242 |
+
"""
|
243 |
+
That's an obj file and converts it to pbrt using 'obj2pbrt'. In addition, to support a binding hack, it comments
|
244 |
+
out the MakeNamedMaterial lines left by 'obj2pbrt'. We are just using the bindings, since OBJ format does not
|
245 |
+
support our materials.
|
246 |
+
[NEW] Added hardcoded materials where a mesh-specific texture is required.
|
247 |
+
:param objFile:
|
248 |
+
:param pbrtFile:
|
249 |
+
:param bakeTextures:
|
250 |
+
:return:
|
251 |
+
"""
|
252 |
+
# Make sure we have absolute path to both files.
|
253 |
+
fpObjFile = os.path.abspath(objFile)
|
254 |
+
fpPbrtFile = os.path.abspath(pbrtFile)
|
255 |
+
# in order to find the mtl file, we need to be >in< the obj directory.
|
256 |
+
dwd = os.getcwd()
|
257 |
+
os.chdir(os.path.dirname(fpObjFile))
|
258 |
+
print "Creating pbrt geometry from", objFile
|
259 |
+
|
260 |
+
xmlFile = "xml/"+objFile[4:-4]+".xml"
|
261 |
+
|
262 |
+
f = open(pbrtFile,'w')
|
263 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
264 |
+
f.writelines('<scene>\n');
|
265 |
+
if matFile != "": f.writelines(' <xml src="'+root_folder+'%s"/>\n' % matFile);
|
266 |
+
f.writelines(' <xml src="'+root_folder+'%s"/>\n' % xmlFile);
|
267 |
+
f.writelines('</scene>\n');
|
268 |
+
f.close()
|
269 |
+
|
270 |
+
os.chdir(dwd)
|
271 |
+
|
272 |
+
# if we're using textures, we need to insert the texture overrides directly into the geom.
|
273 |
+
#insertTextureOverrides(fpPbrtFile, matFile)
|
274 |
+
|
275 |
+
def writeMaterial(f, matName, valueDict):
|
276 |
+
|
277 |
+
f.writelines('<assign type="material" id="%s">\n'%matName)
|
278 |
+
f.writelines(' <material>\n')
|
279 |
+
f.writelines(' <code>"OBJ"</code>\n')
|
280 |
+
f.writelines(' <parameters>\n')
|
281 |
+
|
282 |
+
if 'baseColor' in valueDict:
|
283 |
+
color = mon2lin(valueDict['baseColor'])
|
284 |
+
f.writelines(' <float3 name="Kd">%1.2f %1.2f %1.2f</float3>\n'% (color[0], color[1],color[2]))
|
285 |
+
else:
|
286 |
+
print "WARNING WARNING WARNING: Can not find 'baseColor' in", element, matName
|
287 |
+
f.writelines(' <float3 name="Kd">1 0 0</float3>\n')
|
288 |
+
|
289 |
+
#for val in valueDict:
|
290 |
+
# if val in DIS2PBRT:
|
291 |
+
# # common parameters
|
292 |
+
# f.writelines(' "%s" [%1.2f]\n' % (DIS2PBRT[val], valueDict[val]))
|
293 |
+
|
294 |
+
#if "type" in valueDict and valueDict["type"] == "thin":
|
295 |
+
# f.writelines(' "bool thin" ["true"]\n')
|
296 |
+
# f.writelines(' "float difftrans" [%1.2f]\n' % valueDict["diffTrans"])
|
297 |
+
# f.writelines(' "float flatness" [%1.2f]\n\n' % valueDict['flatness'])
|
298 |
+
#else: # solid
|
299 |
+
# f.writelines(' "rgb scatterdistance" [%1.2f %1.2f %1.2f]\n\n' % (valueDict["scatterDistance"][0],
|
300 |
+
# valueDict["scatterDistance"][1],
|
301 |
+
# valueDict["scatterDistance"][2]))
|
302 |
+
|
303 |
+
f.writelines(' </parameters>\n')
|
304 |
+
f.writelines(' </material>\n\n')
|
305 |
+
f.writelines('</assign>\n\n')
|
306 |
+
|
307 |
+
def matToPbrt(element, matFile, pbrtFile):
|
308 |
+
"""
|
309 |
+
Take a json file and convert it into a pbrt "Named" material file which will be used for reference.
|
310 |
+
:param element: Element name -- Used for error codes and top-of-file comments.
|
311 |
+
:param matFile: Json material file to be parsed.
|
312 |
+
:param pbrtFile: Pbrt material file to be output.
|
313 |
+
:return: None
|
314 |
+
"""
|
315 |
+
with open(matFile, "r") as jf:
|
316 |
+
matDict = json.load(jf)
|
317 |
+
|
318 |
+
if not matDict:
|
319 |
+
print "ERROR: Unable to parse matfile: ", matFile
|
320 |
+
return
|
321 |
+
print "Converting ", matFile
|
322 |
+
|
323 |
+
pbrtFileObj = os.open(pbrtFile, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
324 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
325 |
+
|
326 |
+
try:
|
327 |
+
f = os.fdopen(pbrtFileObj,'w')
|
328 |
+
except IOError as (errno, strerror):
|
329 |
+
print "Couldn't open %s for write: %s" % (pbrtFile, strerror)
|
330 |
+
return
|
331 |
+
|
332 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
333 |
+
f.writelines("<!--Materials for %s-->\n"%element)
|
334 |
+
f.writelines("<!--Converted from %s-->\n\n"%matFile)
|
335 |
+
|
336 |
+
f.writelines('<scene>\n\n')
|
337 |
+
|
338 |
+
f.writelines('<assign type="material" id="default">\n')
|
339 |
+
f.writelines(' <material>\n')
|
340 |
+
f.writelines(' <code>"OBJ"</code>\n')
|
341 |
+
f.writelines(' <parameters>\n')
|
342 |
+
f.writelines(' <float3 name="Kd">1 0 0</float3>\n')
|
343 |
+
f.writelines(' </parameters>\n')
|
344 |
+
f.writelines(' </material>\n\n')
|
345 |
+
f.writelines('</assign>\n\n')
|
346 |
+
|
347 |
+
for matName, valueDict in matDict.iteritems():
|
348 |
+
|
349 |
+
if matName == "hidden":
|
350 |
+
f.writelines('<assign type="material" id="%s">\n'%matName)
|
351 |
+
f.writelines(' <material>\n')
|
352 |
+
f.writelines(' <code>"OBJ"</code>\n')
|
353 |
+
f.writelines(' <parameters>\n')
|
354 |
+
f.writelines(' <float3 name="Kd">1 0 0</float3>\n')
|
355 |
+
f.writelines(' </parameters>\n')
|
356 |
+
f.writelines(' </material>\n')
|
357 |
+
f.writelines('</assign>\n\n')
|
358 |
+
continue
|
359 |
+
|
360 |
+
writeMaterial(f,matName,valueDict)
|
361 |
+
|
362 |
+
f.writelines('</scene>\n\n')
|
363 |
+
|
364 |
+
os.fsync(pbrtFileObj)
|
365 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
366 |
+
f.close()
|
367 |
+
os.chmod(pbrtFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
368 |
+
print "Writing XML file: ", pbrtFile
|
369 |
+
|
370 |
+
|
371 |
+
def jsonPrimitiveToPbrt(primType, element, primitiveName, iDict):
|
372 |
+
if primType == "curve":
|
373 |
+
return jsonPrimitiveCurveToPbrt(element, primitiveName, iDict)
|
374 |
+
elif primType == "element":
|
375 |
+
return jsonPrimitiveElementToPbrt(element, primitiveName, iDict)
|
376 |
+
else:
|
377 |
+
return jsonPrimitiveArchiveToPbrt(element, primitiveName, primitiveJsonFile=iDict["jsonFile"])
|
378 |
+
|
379 |
+
|
380 |
+
def jsonPrimitiveArchiveToPbrt(element, primitiveName, primitiveJsonFile):
|
381 |
+
"""
|
382 |
+
Create the pbrt reference file for a particular primitive instance. This will be a raw list
|
383 |
+
of all the instances that make up this particular primitive with the transformations.
|
384 |
+
:param element: The name of the element (used the build paths)
|
385 |
+
:param primitiveName: The name of the primitive description we're converting.
|
386 |
+
:param primitiveJsonFile: Json file containing the archives and all instances of them.
|
387 |
+
:return: The 'short' path name, which is the partial path without the pbrt directory in front
|
388 |
+
"""
|
389 |
+
fileName = os.path.basename(primitiveJsonFile)[:-4] + "xml" if primitiveJsonFile else primitiveName + ".xml"
|
390 |
+
pbrtPrimitiveFile = os.path.join("embree", element, primitiveName, fileName)
|
391 |
+
root = "../../"
|
392 |
+
shortFileName = os.path.join(element, primitiveName, fileName)
|
393 |
+
iDict = readJsonFile(primitiveJsonFile)
|
394 |
+
|
395 |
+
pbrtFileObj = os.open(pbrtPrimitiveFile, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
396 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
397 |
+
|
398 |
+
try:
|
399 |
+
f = os.fdopen(pbrtFileObj,'w')
|
400 |
+
except IOError as (errno, strerror):
|
401 |
+
print "Couldn't open %s for write: %s" % (pbrtPrimitiveFile, strerror)
|
402 |
+
return
|
403 |
+
|
404 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
405 |
+
f.writelines("<!--Converted from %s-->\n\n" % primitiveJsonFile)
|
406 |
+
f.writelines('<scene>\n\n')
|
407 |
+
|
408 |
+
for archive, primitiveDict in iDict.iteritems():
|
409 |
+
# Create one file per archive xgen Description
|
410 |
+
archiveName = os.path.basename(archive)[:-4]
|
411 |
+
for instanceName, transform in primitiveDict.iteritems():
|
412 |
+
writeInstance(f, root, archiveName, instanceName, transform, concat=True)
|
413 |
+
|
414 |
+
f.writelines('</scene>\n\n')
|
415 |
+
os.fsync(pbrtFileObj)
|
416 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
417 |
+
f.close()
|
418 |
+
os.chmod(pbrtPrimitiveFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
419 |
+
print "Writing primitive archive XML file: ", pbrtPrimitiveFile
|
420 |
+
return shortFileName
|
421 |
+
|
422 |
+
|
423 |
+
def jsonPrimitiveCurveToPbrt(element, primitiveName, cDict):
|
424 |
+
"""
|
425 |
+
Convert json primitive curve to pbrt curve
|
426 |
+
:param element: used to find json files
|
427 |
+
:param primitiveName: used to find json files
|
428 |
+
:param cDict: dictionary of all curves
|
429 |
+
:return:
|
430 |
+
"""
|
431 |
+
primitiveJsonFile = cDict["jsonFile"]
|
432 |
+
matFile = os.path.join("json", element, "materials.json")
|
433 |
+
fileName = os.path.basename(primitiveJsonFile)[:-4] + "xml" if primitiveJsonFile else primitiveName + ".xml"
|
434 |
+
pbrtPrimitiveFile = os.path.join("embree", element, primitiveName, fileName)
|
435 |
+
shortFileName = os.path.join(element, primitiveName, fileName)
|
436 |
+
curveList = readJsonFile(primitiveJsonFile)
|
437 |
+
|
438 |
+
pbrtFileObj = os.open(pbrtPrimitiveFile, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
439 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
440 |
+
|
441 |
+
try:
|
442 |
+
f = os.fdopen(pbrtFileObj,'w')
|
443 |
+
except IOError as (errno, strerror):
|
444 |
+
print "Couldn't open %s for write: %s" % (pbrtPrimitiveFile, strerror)
|
445 |
+
return
|
446 |
+
|
447 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
448 |
+
f.writelines("<!--Converted from %s-->\n\n" % primitiveJsonFile)
|
449 |
+
f.writelines('<scene>\n\n')
|
450 |
+
|
451 |
+
f.writelines(' <Curves type="round" basis="bspline">\n\n')
|
452 |
+
|
453 |
+
# Curves don't inherit materials like the OBJs so, so we need to insert the material at the top.
|
454 |
+
mat = findMaterial(primitiveName, readJsonFile(matFile))
|
455 |
+
if mat:
|
456 |
+
f.writelines(' <material id="%s"/>\n'%mat)
|
457 |
+
else:
|
458 |
+
f.writelines(' <material id="default"/>\n')
|
459 |
+
print "WARNING: curve has no material"
|
460 |
+
f.writelines('\n')
|
461 |
+
|
462 |
+
i=0
|
463 |
+
f.writelines(' <indices>\n')
|
464 |
+
for curve in curveList:
|
465 |
+
i=writeCurveIndices(f, i, curve, cDict)
|
466 |
+
f.writelines('\n')
|
467 |
+
f.writelines(' </indices>\n')
|
468 |
+
f.writelines('\n')
|
469 |
+
|
470 |
+
f.writelines(' <positions>\n')
|
471 |
+
for curve in curveList:
|
472 |
+
writeCurveVertices(f, curve, cDict)
|
473 |
+
f.writelines('\n')
|
474 |
+
f.writelines(' </positions>\n')
|
475 |
+
|
476 |
+
f.writelines(' </Curves>\n\n')
|
477 |
+
|
478 |
+
f.writelines('</scene>\n\n')
|
479 |
+
os.fsync(pbrtFileObj)
|
480 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
481 |
+
f.close()
|
482 |
+
os.chmod(pbrtPrimitiveFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
483 |
+
print "Writing primitive curve XML file: ", pbrtPrimitiveFile
|
484 |
+
return shortFileName
|
485 |
+
|
486 |
+
|
487 |
+
def jsonPrimitiveElementToPbrt(element, primitiveName, eDict):
|
488 |
+
"""
|
489 |
+
The primitive being instanced around is a copy of another element, which could include its own primitive data.
|
490 |
+
:param element: The name of the element (used the build paths)
|
491 |
+
:param primitiveName: The name of the primitive description we're converting.
|
492 |
+
:param eDict: Dictionary includes reference element, possible variant and the source json file with the transforms
|
493 |
+
by variant. "base" variant is assumed to the the top level element definition.
|
494 |
+
:return: The 'short' path name, which is the partial path without the pbrt directory in front
|
495 |
+
"""
|
496 |
+
primitiveJsonFile = eDict["jsonFile"]
|
497 |
+
fileName = os.path.basename(primitiveJsonFile)[:-4] + "xml" if primitiveJsonFile else primitiveName + ".xml"
|
498 |
+
pbrtPrimitiveFile = os.path.join("embree", element, primitiveName, fileName)
|
499 |
+
root = "../../"
|
500 |
+
shortFileName = os.path.join(element, primitiveName, fileName)
|
501 |
+
iDict = readJsonFile(primitiveJsonFile)
|
502 |
+
|
503 |
+
# we also need to load the source element json file so we can access it's information for inclusion.
|
504 |
+
sourceJsonFile = os.path.abspath(os.path.join("json", eDict["element"], eDict["element"] + ".json"))
|
505 |
+
sourceDict = readJsonFile(sourceJsonFile)
|
506 |
+
|
507 |
+
pbrtFileObj = os.open(pbrtPrimitiveFile, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
508 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
509 |
+
|
510 |
+
try:
|
511 |
+
f = os.fdopen(pbrtFileObj,'w')
|
512 |
+
except IOError as (errno, strerror):
|
513 |
+
print "Couldn't open %s for write: %s" % (pbrtPrimitiveFile, strerror)
|
514 |
+
return
|
515 |
+
|
516 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
517 |
+
f.writelines("<!--Converted from %s-->\n\n" % primitiveJsonFile)
|
518 |
+
f.writelines('<scene>\n\n')
|
519 |
+
|
520 |
+
for variant, primitiveDict in iDict.iteritems(): # each variant is the key to a dictionary of instance name/transforms
|
521 |
+
inclFileList = [] # TODO:
|
522 |
+
if variant == "base":
|
523 |
+
instanceRef = os.path.basename(sourceDict["geomObjFile"])[:-4]
|
524 |
+
if "instancedPrimitiveJsonFiles" in sourceDict:
|
525 |
+
for primitiveName, ipDict in sourceDict["instancedPrimitiveJsonFiles"].iteritems():
|
526 |
+
fileName = os.path.basename(ipDict["jsonFile"])[:-4] + "xml"
|
527 |
+
inclFileList.append(os.path.join(eDict["element"], primitiveName, fileName))
|
528 |
+
|
529 |
+
elif variant in sourceDict["variants"]:
|
530 |
+
instanceRef = os.path.basename(sourceDict["variants"][variant]["geomObjFile"])[:-4]
|
531 |
+
if "instancedPrimitiveJsonFiles" in sourceDict["variants"][variant]:
|
532 |
+
for primitiveName, ipDict in sourceDict["variants"][variant]["instancedPrimitiveJsonFiles"].iteritems():
|
533 |
+
fileName = os.path.basename(ipDict["jsonFile"])[:-4] + "xml"
|
534 |
+
inclFileList.append(os.path.join(eDict["element"], primitiveName, fileName))
|
535 |
+
|
536 |
+
else:
|
537 |
+
print "Error: Problems finding variant %s for element %s\n" %(variant, eDict["element"])
|
538 |
+
sys.exit()
|
539 |
+
|
540 |
+
for instanceName, transform in primitiveDict.iteritems():
|
541 |
+
writeInstance(f, root, instanceRef, instanceName, transform, inclFileList=inclFileList, concat=True)
|
542 |
+
|
543 |
+
f.writelines('</scene>\n\n')
|
544 |
+
os.fsync(pbrtFileObj)
|
545 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
546 |
+
f.close()
|
547 |
+
os.chmod(pbrtPrimitiveFile, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
548 |
+
print "Writing primitive archive embree file: ", pbrtPrimitiveFile
|
549 |
+
return shortFileName
|
550 |
+
|
551 |
+
|
552 |
+
def writeObject(f, objectName, pbrtGeometryFile, matFile=None):
|
553 |
+
"""
|
554 |
+
Create named object definition around single geometry file.
|
555 |
+
:param f:
|
556 |
+
:param objectName: What to call the object
|
557 |
+
:param pbrtGeometryFile: The file being referenced
|
558 |
+
:param matFile: Some variants need a separate matFile, include override for that here.
|
559 |
+
:return:
|
560 |
+
"""
|
561 |
+
f.writelines(' <assign type="scene" id="%s">\n' % objectName)
|
562 |
+
f.writelines(' <xml src="../%s"/>\n' % pbrtGeometryFile)
|
563 |
+
f.writelines(' </assign>\n')
|
564 |
+
|
565 |
+
def writeInstance(f, root, objectName, instanceName, xfm, inclFileList=[], concat=False):
|
566 |
+
"""
|
567 |
+
Create instances of previously named object
|
568 |
+
:param f:
|
569 |
+
:param objectName: Name of object
|
570 |
+
:param instanceName: Name of instance (for reference back to json file)
|
571 |
+
:param transform: Transform
|
572 |
+
:param inclFileList: For primitive files that need to be referenced after object
|
573 |
+
:param concat: Use ConcatTransform to properly inherit final instance position of copies of elements.
|
574 |
+
:return:
|
575 |
+
"""
|
576 |
+
f.writelines('<!-- %s -->\n' % instanceName)
|
577 |
+
f.writelines('<Transform>\n')
|
578 |
+
if concat:
|
579 |
+
f.writelines(' <AffineSpace>%f %f %f %f %f %f %f %f %f %f %f %f</AffineSpace>\n' % (xfm[0],xfm[4],xfm[8],xfm[12],xfm[1],xfm[5],xfm[9],xfm[13],xfm[2],xfm[6],xfm[10],xfm[14]) )
|
580 |
+
else:
|
581 |
+
f.writelines(' <AffineSpace>%f %f %f %f %f %f %f %f %f %f %f %f</AffineSpace>\n' % (xfm[0],xfm[4],xfm[8],xfm[12],xfm[1],xfm[5],xfm[9],xfm[13],xfm[2],xfm[6],xfm[10],xfm[14]) )
|
582 |
+
f.writelines(' <ref id="%s"/>\n' % objectName)
|
583 |
+
for inclFile in inclFileList:
|
584 |
+
f.writelines(' <xml src="' + root + '%s"/>\n' % inclFile)
|
585 |
+
f.writelines('</Transform>\n\n')
|
586 |
+
|
587 |
+
|
588 |
+
def writeCurveIndices(f, i, curve, cDict):
|
589 |
+
for j in range(0, len(curve)-1):
|
590 |
+
f.writelines(' %i\n'%i)
|
591 |
+
i = i+1
|
592 |
+
i = i+3
|
593 |
+
return i
|
594 |
+
|
595 |
+
def writeCurveVertices(f, curve, cDict):
|
596 |
+
"""
|
597 |
+
Updated to work with new pbrt bspline format.
|
598 |
+
:param f:
|
599 |
+
:return:
|
600 |
+
"""
|
601 |
+
w0 = cDict["widthRoot"]
|
602 |
+
w1 = cDict["widthTip"]
|
603 |
+
# TODO: Should be change cylinder to flat?
|
604 |
+
# ctype = "cylinder" if cDict["faceCamera"] else "flat"
|
605 |
+
|
606 |
+
i=0
|
607 |
+
f.writelines(' %f %f %f %f\n' % (curve[0][0], curve[0][1], curve[0][2], w0)) # stack
|
608 |
+
for p in curve:
|
609 |
+
x=i/float(len(curve)-1)
|
610 |
+
w=(1-x)*w0 + x*w1
|
611 |
+
f.writelines(' %f %f %f %f\n' % (p[0], p[1], p[2], w))
|
612 |
+
i=i+1
|
613 |
+
f.writelines(' %f %f %f %f\n' % (curve[-1][0], curve[-1][1], curve[-1][2], w1)) # stack
|
614 |
+
|
615 |
+
def writeObjectFile(element, pbrtOutGeometry, instCopies = None, primDict = None):
|
616 |
+
"""
|
617 |
+
Keep all the object references in a single file to keep the main element file readable. Because we can't embed
|
618 |
+
instances in pbrt, we need to include all references here, both the main element and all primitives or variants
|
619 |
+
it might be referring too.
|
620 |
+
:param element: main element
|
621 |
+
:param pbrtOutGeometry: main element geometry file
|
622 |
+
:param instCopies: if an instanced copy has its own geometry, we need to reference that as well.
|
623 |
+
:param primDict: And all primitives used by the geometry.
|
624 |
+
:return:
|
625 |
+
"""
|
626 |
+
# put all the primitive objects at the top of the file since we can embed objects within objects.
|
627 |
+
if not pbrtOutGeometry and not primDict and not instCopies:
|
628 |
+
return ""
|
629 |
+
|
630 |
+
shortName = os.path.join(element, "objects.xml")
|
631 |
+
pbrtOutObjects = os.path.abspath(os.path.join("embree", shortName))
|
632 |
+
|
633 |
+
pbrtFileObj = os.open(pbrtOutObjects, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
634 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
635 |
+
|
636 |
+
try:
|
637 |
+
f = os.fdopen(pbrtFileObj,'w')
|
638 |
+
except IOError as (errno, strerror):
|
639 |
+
print "Couldn't open %s for write: %s" % (pbrtOutObjects, strerror)
|
640 |
+
return
|
641 |
+
|
642 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
643 |
+
f.writelines('<scene>\n\n')
|
644 |
+
|
645 |
+
# there are all the archives used by the primitive description
|
646 |
+
if primDict:
|
647 |
+
for primName, primInstanceDict in primDict.iteritems(): # for each xgen description
|
648 |
+
f.writelines("\n<!-- archives used by %s -->\n" % primName)
|
649 |
+
# for each archives used by this description
|
650 |
+
if "archives" in primInstanceDict:
|
651 |
+
for archive in primInstanceDict["archives"]:
|
652 |
+
# the object reference is the archive or geo file base name
|
653 |
+
archiveName = os.path.basename(archive)[:-4]
|
654 |
+
# the object file is the archive or geo file base name + _geometry
|
655 |
+
pbrtArchiveFile = os.path.join(element, primName, archiveName + "_geometry.xml")
|
656 |
+
# if this is type 'element', we need to drop in the element's material file #HACKY
|
657 |
+
matFile = os.path.join(primInstanceDict["element"], "materials.xml")\
|
658 |
+
if primInstanceDict["type"] == "element" else ""
|
659 |
+
writeObject(f, archiveName, pbrtArchiveFile, matFile=matFile)
|
660 |
+
|
661 |
+
# This is the main element object
|
662 |
+
if pbrtOutGeometry:
|
663 |
+
f.writelines("\n<!-- main object for the element: %s -->\n" % element)
|
664 |
+
writeObject(f, element, pbrtOutGeometry)
|
665 |
+
|
666 |
+
# Instanced copies here.
|
667 |
+
if instCopies:
|
668 |
+
f.writelines("\n<!-- instanced copies of the element with their own geometry -->\n")
|
669 |
+
for instanceName, icDict in instCopies.iteritems():
|
670 |
+
if "geomObjFile" in icDict and icDict["geomObjFile"]:
|
671 |
+
# convert obj name to pbrt location
|
672 |
+
pbrtOutFile =icDict["geomObjFile"][4:-4] + "_geometry.xml"
|
673 |
+
writeObject(f, icDict["name"], pbrtOutFile)
|
674 |
+
|
675 |
+
f.writelines('</scene>\n\n')
|
676 |
+
os.fsync(pbrtFileObj)
|
677 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
678 |
+
f.close()
|
679 |
+
os.chmod(pbrtOutObjects, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
680 |
+
print "Writing XML file: ", pbrtOutObjects
|
681 |
+
return shortName
|
682 |
+
|
683 |
+
|
684 |
+
def writeMainElement(pbrtOutElement, pbrtOutMaterials, pbrtOutGeometry, primitiveFiles, sourceJsonFile=""):
|
685 |
+
|
686 |
+
jDict = readJsonFile(sourceJsonFile)
|
687 |
+
element = jDict["name"]
|
688 |
+
transform = jDict["transformMatrix"]
|
689 |
+
|
690 |
+
pbrtFileObj = os.open(pbrtOutElement, os.O_WRONLY | os.O_CREAT | os.O_TRUNC)
|
691 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_EX)
|
692 |
+
|
693 |
+
try:
|
694 |
+
f = os.fdopen(pbrtFileObj,'w')
|
695 |
+
except IOError as (errno, strerror):
|
696 |
+
print "Couldn't open %s for write: %s" % (pbrtOutElement, strerror)
|
697 |
+
return
|
698 |
+
|
699 |
+
f.writelines('<?xml version="1.0"?>\n\n')
|
700 |
+
f.writelines('<scene>\n\n')
|
701 |
+
|
702 |
+
if sourceJsonFile:
|
703 |
+
f.writelines("<!-- Converted from %s -->\n\n" % sourceJsonFile)
|
704 |
+
|
705 |
+
################################## Materials
|
706 |
+
|
707 |
+
#f.writelines("AttributeBegin\n\n")
|
708 |
+
f.writelines("<xml src=\"../%s\"/>\n" % pbrtOutMaterials)
|
709 |
+
|
710 |
+
################################## Objects
|
711 |
+
# Notes about objects: Since pbrt can instance within an instance, only _geometry files should be defined as objects.
|
712 |
+
# For simplicity, lets defines all _geometry files as objects.
|
713 |
+
|
714 |
+
primitiveDict = jDict["instancedPrimitiveJsonFiles"] if "instancedPrimitiveJsonFiles" in jDict else {}
|
715 |
+
instancedCopiesDict = jDict["instancedCopies"] if "instancedCopies" in jDict else {}
|
716 |
+
|
717 |
+
objectsFile = writeObjectFile(element, pbrtOutGeometry, instCopies=instancedCopiesDict, primDict=primitiveDict)
|
718 |
+
if objectsFile:
|
719 |
+
f.writelines("<xml src=\"../%s\"/>\n" % objectsFile)
|
720 |
+
|
721 |
+
############################ Main elements
|
722 |
+
|
723 |
+
f.writelines("\n<!-- Main element -->\n\n")
|
724 |
+
|
725 |
+
primList = [] # a list of all the primitive names associated with this element, i.e. xgBonsai, xgGrass, xgShells
|
726 |
+
primFileList = [] # a list of the primitive files, i.e. isBayCedarA1/xgBonsai/isBayCedarA1_xgBonsai.xml
|
727 |
+
if primitiveDict:
|
728 |
+
for primName, primInstanceDict in primitiveDict.iteritems():
|
729 |
+
primList.append(primName)
|
730 |
+
primFileList.append(os.path.join(element, primName, element + "_" + primName + ".xml"))
|
731 |
+
|
732 |
+
# create the default instance (we have at least once instance of every element)
|
733 |
+
writeInstance(f, "../", element, element, transform, primFileList)
|
734 |
+
|
735 |
+
if instancedCopiesDict:
|
736 |
+
f.writelines("\n<!-- Instanced copies of main element -->\n\n")
|
737 |
+
|
738 |
+
# all the other instances of the element and all primitive files used by element
|
739 |
+
# Note: we can't instance the primitive files themsevles, because they contain references to instanced archives.
|
740 |
+
for instance, icDict in instancedCopiesDict.iteritems():
|
741 |
+
primOverrides = icDict["instancedPrimitiveJsonFiles"].keys() if "instancedPrimitiveJsonFiles" in icDict else []
|
742 |
+
includedPrimFileList = []
|
743 |
+
for prim in primList: # For each primitive associated with this element,
|
744 |
+
# is the primName the instance or element? Depends on is the instancedCopies instance
|
745 |
+
if prim in primOverrides:
|
746 |
+
primName = instance + '_' + prim + ".xml"
|
747 |
+
else:
|
748 |
+
primName = element + '_' + prim + ".xml"
|
749 |
+
includedPrimFileList.append(os.path.join(element, prim, primName)) # isBayCedarA2/xgBonsai/isBayCedarA2_xgBonsai.xml
|
750 |
+
if "geomObjFile" in icDict and icDict["geomObjFile"]:
|
751 |
+
# print "This instance has its own geometry."
|
752 |
+
writeInstance(f, "../", instance, instance, icDict["transformMatrix"], includedPrimFileList)
|
753 |
+
else:
|
754 |
+
writeInstance(f, "../", element, instance, icDict["transformMatrix"], includedPrimFileList)
|
755 |
+
|
756 |
+
#f.writelines("AttributeEnd\n")
|
757 |
+
|
758 |
+
f.writelines('</scene>\n\n')
|
759 |
+
os.fsync(pbrtFileObj)
|
760 |
+
fcntl.flock(pbrtFileObj, fcntl.LOCK_UN)
|
761 |
+
f.close()
|
762 |
+
os.chmod(pbrtOutElement, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
763 |
+
print "Writing XML file: ", pbrtOutElement
|
764 |
+
return pbrtOutElement
|
765 |
+
|
766 |
+
|
767 |
+
def findMaterial(mesh, matDict, hierDict="", quiet=False):
|
768 |
+
"""
|
769 |
+
Given a patch, a materials dictionary and an optional hierarchy dictionary, this finds the correct
|
770 |
+
material for that patch.
|
771 |
+
:param mesh: The name of the mesh
|
772 |
+
:param matDict: A dictionary of materials, created from the json materials file.
|
773 |
+
:param hierDict: A dictionary of hierarchy expansions, created from the json .hier file.
|
774 |
+
:param quiet: Suppress the no bindings error message
|
775 |
+
:return: Matching material as string
|
776 |
+
"""
|
777 |
+
longNameMesh = hierDict[mesh] + '|' + mesh if mesh in hierDict else mesh
|
778 |
+
|
779 |
+
found = []
|
780 |
+
for k, v in matDict.iteritems():
|
781 |
+
# find an assignment that matches
|
782 |
+
bindings = v['assignment']
|
783 |
+
for binding in bindings:
|
784 |
+
if fnmatch.fnmatchcase(longNameMesh, "*" + binding + "*"):
|
785 |
+
found.append(k)
|
786 |
+
if found:
|
787 |
+
# if there's only one match, we found the binding.
|
788 |
+
if len(found) == 1:
|
789 |
+
return found[0]
|
790 |
+
else:
|
791 |
+
# if one is an exact string match, return that one (or the first
|
792 |
+
# occurrence of an exact string match)
|
793 |
+
for f in found:
|
794 |
+
if mesh in matDict[f]['assignment']:
|
795 |
+
return f
|
796 |
+
# if there's not an exact string match, go for the match furthest up the hierarchy chain (this will solve
|
797 |
+
# a problem with the bonsai matching for trunks vs branches vs tips.
|
798 |
+
for f in found:
|
799 |
+
print "f"
|
800 |
+
sys.exit()
|
801 |
+
# otherwise, return the last match. #makingshitup
|
802 |
+
return found[-1]
|
803 |
+
else:
|
804 |
+
if not quiet:
|
805 |
+
print "ERROR: Unable to find binding for mesh: ", mesh
|
806 |
+
return ""
|
807 |
+
|
808 |
+
|
809 |
+
def insertTextureOverrides(pbrtGeomFile, matFile):
|
810 |
+
"""
|
811 |
+
Find a mesh that's using a material with a texture and insert the texture override that includes the specific
|
812 |
+
mesh name. i.e. textures/isGardeniaA/Color/archiveflowerbud0001_geo.ptx
|
813 |
+
:param pbrtGeomFile: The pbrt geometry file created with obj2pbrt
|
814 |
+
:param matFile: The json material file
|
815 |
+
:param hierFile: The file containing the full hierarchy of the meshes (stripped out to create the obj files)
|
816 |
+
:return: None
|
817 |
+
"""
|
818 |
+
COMMENT = "# Inserted materials directly above Shape for custom texture per mesh. v2.\n"
|
819 |
+
handle, tempPbrtFile = tempfile.mkstemp(prefix='IS', suffix='.xml', dir=TMPDIR)
|
820 |
+
tof = open(tempPbrtFile,"w")
|
821 |
+
print "Inserting pbrt materials into: ", tempPbrtFile
|
822 |
+
|
823 |
+
# Create a sub-dictionary of just the materials with textures.
|
824 |
+
mDict = readJsonFile(matFile) # keys are primitive description name, i.e. xgGrass.
|
825 |
+
textureMats = [key for key in mDict if "colorMap" in mDict[key] and mDict[key]["colorMap"]] # keys with materials
|
826 |
+
matDict = {mat: mDict[mat] for mat in textureMats}
|
827 |
+
|
828 |
+
# warning. these can be big files!
|
829 |
+
with open(os.path.abspath(pbrtGeomFile), "r") as pgf:
|
830 |
+
tof.write(COMMENT)
|
831 |
+
meshName = ""
|
832 |
+
colorName = ""
|
833 |
+
dispName = ""
|
834 |
+
colorMap = ""
|
835 |
+
dispMap = ""
|
836 |
+
material = ""
|
837 |
+
for line in pgf.xreadlines(): # use generator
|
838 |
+
if line.startswith(COMMENT[:20]):
|
839 |
+
# Don't duplicate the comment.
|
840 |
+
continue
|
841 |
+
|
842 |
+
if line.startswith("# Name"):
|
843 |
+
m = re.search('# Name "(.+?)"$', line)
|
844 |
+
if not m:
|
845 |
+
tof.write(line)
|
846 |
+
continue
|
847 |
+
meshName = m.group(1)
|
848 |
+
tof.write(line)
|
849 |
+
continue
|
850 |
+
|
851 |
+
if line.startswith("NamedMaterial"):
|
852 |
+
m = re.search('^NamedMaterial "(.+?)"$', line)
|
853 |
+
if not m:
|
854 |
+
tof.write(line)
|
855 |
+
continue
|
856 |
+
material = m.group(1)
|
857 |
+
if material not in matDict:
|
858 |
+
material = ""
|
859 |
+
tof.write(line)
|
860 |
+
continue
|
861 |
+
colorMap = matDict[material]["colorMap"] if "colorMap" in matDict[material] else ""
|
862 |
+
dispMap = matDict[material]["displacementMap"]if "displacementMap" in matDict[material] else ""
|
863 |
+
if colorMap:
|
864 |
+
colorName = material + "_Color"
|
865 |
+
texPath = os.path.join("..", os.path.dirname(colorMap),meshName + ".ptx")
|
866 |
+
tof.write('Texture "%s" "color" "ptex"\n' % colorName)
|
867 |
+
tof.write(' "string filename" ["%s"]\n\n'%texPath)
|
868 |
+
if dispMap:
|
869 |
+
dispName = material + "_Disp"
|
870 |
+
texPath = os.path.join("..", os.path.dirname(dispMap),meshName + ".ptx")
|
871 |
+
tof.write('Texture "%s" "float" "ptex"\n' % dispName)
|
872 |
+
tof.write(' "string filename" ["%s"]\n\n'%texPath)
|
873 |
+
# write back the original NamedMaterial line
|
874 |
+
tof.write(line)
|
875 |
+
continue
|
876 |
+
|
877 |
+
if line.startswith("Shape") and meshName and material:
|
878 |
+
tof.write(line)
|
879 |
+
m = re.search('^Shape "trianglemesh"$', line)
|
880 |
+
if not m: continue
|
881 |
+
if colorMap:
|
882 |
+
tof.write(' "texture color" "%s"\n' % colorName)
|
883 |
+
colorMap = ""
|
884 |
+
if dispMap:
|
885 |
+
tof.write(' "texture bumpmap" "%s"\n' % dispName)
|
886 |
+
dispMap = ""
|
887 |
+
continue
|
888 |
+
|
889 |
+
# everything else just goes into the tempfile
|
890 |
+
tof.write(line)
|
891 |
+
|
892 |
+
tof.close()
|
893 |
+
|
894 |
+
# copy temp file over old one
|
895 |
+
print "Replacing ", pbrtGeomFile
|
896 |
+
shutil.copy2(tempPbrtFile, os.path.abspath(pbrtGeomFile))
|
vae/Irand/island/textures/isPalmDead/Color/rootball0001_geo.ptx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a3d8f4bc8c8e6379d87f72339ceb565a79ceacd8134ff1fae5c030fd34048ca6
|
3 |
+
size 7396823
|
vae/Irand/island/textures/isPalmDead/Color/trunk0001_geo.ptx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6795e910b91db67800bbeca7641c74860770e57d9be509042dae60e0db16b7e0
|
3 |
+
size 10387895
|
vae/Irand/island/textures/isPalmDead/Displacement/rootball0001_geo.ptx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:b8d077f55601064fdbc923a651aec4003ba6ac80090b0f7bc9d13584dc6c7508
|
3 |
+
size 3294182
|
vae/Irand/island/textures/isPalmDead/Displacement/trunk0001_geo.ptx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1b9de237c6f5a6eae8b953e90c6fb180d87ccd0385966f768d5bdf927c7af793
|
3 |
+
size 48879070
|