Added korean location

This commit is contained in:
Vladislav Khorev committed 2026-10-25 01:29:38 +06:00
1 parent d5ef126264
commit 96e748715b
80 files changed
+18949 -80

No files matched your search

@@ -1,11 +1,12 @@
{ {
"id": "uni_exterior", "id": "uni_exterior",
"gameObjects": "resources/config/gameobjects_uni_exterior_x.json", "gameObjects": "resources/w/shelter/game_objects.json",
"interactiveObjects": "resources/w/shelter/interactive_objects.json",
"npcs": "resources/config/npcs_battle_zone.json", "npcs": "resources/config/npcs_battle_zone.json",
"dialogues": "resources/dialogue/battle_zone_dialogues.json", "dialogues": "resources/dialogue/battle_zone_dialogues.json",
"navigation": [ "navigation": [
"resources/navigation/uni_exterior3_trees_car.txt" "resources/navigation/dorm0_large.json"
], ],
"script": "resources/start_battle_zone.lua", "script": "resources/start_battle_zone.lua",
"playerPosition": [5, 0, -18.4] "playerPosition": [-6, 0, 12.8]
} }
@@ -93,22 +93,16 @@
"hp": 200.0, "hp": 200.0,
"pathWaypoints": [], "pathWaypoints": [],
"position": [ "position": [
5.0, -6, 0, 12.8
0.0,
-18.399999618530273
], ],
"requestedWalkTarget": [ "requestedWalkTarget": [
5.0, -6, 0, 12.8
0.0,
-18.399999618530273
], ],
"showWeapon": true, "showWeapon": true,
"targetFacingAngle": 0.0, "targetFacingAngle": 0.0,
"visibleRange": 6.0, "visibleRange": 6.0,
"walkTarget": [ "walkTarget": [
5.0, -6, 0, 12.8
0.0,
-18.399999618530273
] ]
}, },
"scriptGlobals": null, "scriptGlobals": null,
+12 -2
View File
@@ -1,5 +1,11 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying float fogDistance; varying float fogDistance;
@@ -9,8 +15,12 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition.xyz, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
#ifdef INSTANCED
worldPos = mat4(iModel0, iModel1, iModel2, iModel3) * worldPos;
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition.xyz, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
} }
+12 -2
View File
@@ -1,5 +1,11 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying float fogDistance; varying float fogDistance;
@@ -9,8 +15,12 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition.xyz, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
#ifdef INSTANCED
worldPos = mat4(iModel0, iModel1, iModel2, iModel3) * worldPos;
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition.xyz, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
} }
+16 -3
View File
@@ -2,6 +2,12 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying vec4 fragPosLightSpace; varying vec4 fragPosLightSpace;
@@ -15,10 +21,17 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragPosLightSpace = uLightFromCamera * eyePos; fragPosLightSpace = uLightFromCamera * eyePos;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
} }
+16 -3
View File
@@ -1,6 +1,12 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying vec4 fragPosLightSpace; varying vec4 fragPosLightSpace;
@@ -14,10 +20,17 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragPosLightSpace = uLightFromCamera * eyePos; fragPosLightSpace = uLightFromCamera * eyePos;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
} }
+17 -4
View File
@@ -2,6 +2,12 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying float fogDistance; varying float fogDistance;
@@ -15,11 +21,18 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition.xyz, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition.xyz, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragViewPos = eyePos.xyz; fragViewPos = eyePos.xyz;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
fragWorldXZ = vPosition.xz; fragWorldXZ = worldPos.xz;
} }
+17 -4
View File
@@ -2,6 +2,12 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying vec4 fragPosLightSpace; varying vec4 fragPosLightSpace;
@@ -17,12 +23,19 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragViewPos = eyePos.xyz; fragViewPos = eyePos.xyz;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
fragPosLightSpace = uLightFromCamera * eyePos; fragPosLightSpace = uLightFromCamera * eyePos;
fragWorldXZ = vPosition.xz; fragWorldXZ = worldPos.xz;
} }
+17 -4
View File
@@ -2,6 +2,12 @@ precision highp float;
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying vec4 fragPosLightSpace; varying vec4 fragPosLightSpace;
@@ -17,12 +23,19 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragViewPos = eyePos.xyz; fragViewPos = eyePos.xyz;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
fragPosLightSpace = uLightFromCamera * eyePos; fragPosLightSpace = uLightFromCamera * eyePos;
fragWorldXZ = vPosition.xz; fragWorldXZ = worldPos.xz;
} }
+17 -4
View File
@@ -1,6 +1,12 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
attribute vec3 vNormal; attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord; varying vec2 texCoord;
varying float fogDistance; varying float fogDistance;
@@ -14,11 +20,18 @@ uniform vec3 uPlayerEyePos;
void main() void main()
{ {
vec4 eyePos = ModelViewMatrix * vec4(vPosition.xyz, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos); fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * vec4(vPosition.xyz, 1.0); gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord; texCoord = vTexCoord;
fragViewPos = eyePos.xyz; fragViewPos = eyePos.xyz;
fragNormal = mat3(ModelViewMatrix) * vNormal; fragNormal = mat3(ModelViewMatrix) * normal;
fragWorldXZ = vPosition.xz; fragWorldXZ = worldPos.xz;
} }
+11 -1
View File
@@ -1,9 +1,19 @@
attribute vec3 vPosition; attribute vec3 vPosition;
attribute vec2 vTexCoord; attribute vec2 vTexCoord;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
uniform mat4 ProjectionModelViewMatrix; uniform mat4 ProjectionModelViewMatrix;
void main() void main()
{ {
gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); vec4 worldPos = vec4(vPosition, 1.0);
#ifdef INSTANCED
worldPos = mat4(iModel0, iModel1, iModel2, iModel3) * worldPos;
#endif
gl_Position = ProjectionModelViewMatrix * worldPos;
} }
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,108 @@
{
"objects": [
{
"name": "intBin_Cans",
"texturePath": "resources/w/shelter/models/intBin_Cans_atlas.png",
"meshPath": "resources/w/shelter/models/intBin_Cans.txt.bin",
"rotationX": 0.0,
"rotationY": -180.0,
"rotationZ": 0.0,
"positionX": 0.6,
"positionY": 0.0,
"positionZ": 3.85,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intBin_Plastic",
"texturePath": "resources/w/shelter/models/intBin_Plastic_atlas.png",
"meshPath": "resources/w/shelter/models/intBin_Plastic.txt.bin",
"rotationX": 0.0,
"rotationY": -180.0,
"rotationZ": 0.0,
"positionX": 1.4,
"positionY": 0.0,
"positionZ": 3.85,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intBin_Waste_A",
"texturePath": "resources/w/shelter/models/intBin_Waste_A_atlas.png",
"meshPath": "resources/w/shelter/models/intBin_Waste_A.txt.bin",
"rotationX": 0.0,
"rotationY": -180.0,
"rotationZ": 0.0,
"positionX": 2.2,
"positionY": 0.0,
"positionZ": 3.85,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intBin_Waste_B",
"texturePath": "resources/w/shelter/models/intBin_Waste_B_atlas.png",
"meshPath": "resources/w/shelter/models/intBin_Waste_B.txt.bin",
"rotationX": 0.0,
"rotationY": -180.0,
"rotationZ": 0.0,
"positionX": 3.0,
"positionY": 0.0,
"positionZ": 3.85,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intRoof",
"texturePath": "resources/w/shelter/models/intRoof_atlas.png",
"meshPath": "resources/w/shelter/models/intRoof.txt",
"rotationX": 0.0,
"rotationY": 0.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": 0.0,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intVending.00",
"texturePath": "resources/w/shelter/models/vending_atlas.png",
"meshPath": "resources/w/shelter/models/intVending.txt",
"rotationX": 0.0,
"rotationY": -90.0,
"rotationZ": 0.0,
"positionX": -1.0,
"positionY": 0.0,
"positionZ": -3.9,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intVending.01",
"texturePath": "resources/w/shelter/models/vending_atlas.png",
"meshPath": "resources/w/shelter/models/intVending.txt",
"rotationX": 0.0,
"rotationY": -90.0,
"rotationZ": 0.0,
"positionX": 0.0,
"positionY": 0.0,
"positionZ": -3.9,
"scale": 1.0,
"interactionRadius": 0.0
},
{
"name": "intVending.02",
"texturePath": "resources/w/shelter/models/vending_atlas.png",
"meshPath": "resources/w/shelter/models/intVending.txt",
"rotationX": 0.0,
"rotationY": -90.0,
"rotationZ": 0.0,
"positionX": 1.0,
"positionY": 0.0,
"positionZ": -3.9,
"scale": 1.0,
"interactionRadius": 0.0
}
]
}
+33
View File
@@ -0,0 +1,33 @@
===Vertices (Split by UV/Normal): 20
V 0: Pos(0.8, -0.225, 0.42) Norm(0.0, 0.0, 1.0) UV(-0.5, 1.777778)
V 1: Pos(-0.8, 0.225, 0.42) Norm(0.0, 0.0, 1.0) UV(0.5, -1.777778)
V 2: Pos(-0.8, -0.225, 0.42) Norm(0.0, 0.0, 1.0) UV(-0.5, -1.777778)
V 3: Pos(0.8, -0.225, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, 1.777778)
V 4: Pos(-0.8, -0.225, 0.42) Norm(0.0, -1.0, 0.0) UV(0.933333, -1.777778)
V 5: Pos(-0.8, -0.225, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, -1.777778)
V 6: Pos(0.8, 0.225, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, 0.5)
V 7: Pos(0.8, -0.225, 0.42) Norm(1.0, 0.0, 0.0) UV(0.933333, -0.5)
V 8: Pos(0.8, -0.225, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, -0.5)
V 9: Pos(-0.8, 0.225, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, -1.777778)
V 10: Pos(0.8, 0.225, 0.42) Norm(0.0, 1.0, 0.0) UV(0.933333, 1.777778)
V 11: Pos(0.8, 0.225, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, 1.777778)
V 12: Pos(-0.8, -0.225, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, -0.5)
V 13: Pos(-0.8, 0.225, 0.42) Norm(-1.0, 0.0, 0.0) UV(0.933333, 0.5)
V 14: Pos(-0.8, 0.225, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 0.5)
V 15: Pos(0.8, 0.225, 0.42) Norm(0.0, 0.0, 1.0) UV(0.5, 1.777778)
V 16: Pos(0.8, -0.225, 0.42) Norm(0.0, -1.0, 0.0) UV(0.933333, 1.777778)
V 17: Pos(0.8, 0.225, 0.42) Norm(1.0, 0.0, 0.0) UV(0.933333, 0.5)
V 18: Pos(-0.8, 0.225, 0.42) Norm(0.0, 1.0, 0.0) UV(0.933333, -1.777778)
V 19: Pos(-0.8, -0.225, 0.42) Norm(-1.0, 0.0, 0.0) UV(0.933333, -0.5)
===Triangles (Indices): 10
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 0 15 1
Tri: 3 16 4
Tri: 6 17 7
Tri: 9 18 10
Tri: 12 19 13
+33
View File
@@ -0,0 +1,33 @@
===Vertices (Split by UV/Normal): 20
V 0: Pos(0.9, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.642857, -0.464286)
V 1: Pos(-0.9, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.642857, 0.464286)
V 2: Pos(-0.9, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.642857, -0.464286)
V 3: Pos(0.9, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(0.642857, 0.0)
V 4: Pos(-0.9, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(-0.642857, 0.303571)
V 5: Pos(-0.9, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(-0.642857, 0.0)
V 6: Pos(0.9, 0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 7: Pos(0.9, -0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
V 8: Pos(0.9, -0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 9: Pos(-0.9, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(-0.642857, 0.0)
V 10: Pos(0.9, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(0.642857, 0.303571)
V 11: Pos(0.9, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(0.642857, 0.0)
V 12: Pos(-0.9, -0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 13: Pos(-0.9, 0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 14: Pos(-0.9, 0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 15: Pos(0.9, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.642857, 0.464286)
V 16: Pos(0.9, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(0.642857, 0.303571)
V 17: Pos(0.9, 0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 18: Pos(-0.9, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(-0.642857, 0.303571)
V 19: Pos(-0.9, -0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
===Triangles (Indices): 10
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 0 15 1
Tri: 3 16 4
Tri: 6 17 7
Tri: 9 18 10
Tri: 12 19 13
+33
View File
@@ -0,0 +1,33 @@
===Vertices (Split by UV/Normal): 20
V 0: Pos(1.0, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.714286, -0.464286)
V 1: Pos(-1.0, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.714286, 0.464286)
V 2: Pos(-1.0, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.714286, -0.464286)
V 3: Pos(1.0, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(0.714286, 0.0)
V 4: Pos(-1.0, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(-0.714286, 0.303571)
V 5: Pos(-1.0, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(-0.714286, 0.0)
V 6: Pos(1.0, 0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 7: Pos(1.0, -0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
V 8: Pos(1.0, -0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 9: Pos(-1.0, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(-0.714286, 0.0)
V 10: Pos(1.0, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(0.714286, 0.303571)
V 11: Pos(1.0, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(0.714286, 0.0)
V 12: Pos(-1.0, -0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 13: Pos(-1.0, 0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 14: Pos(-1.0, 0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 15: Pos(1.0, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.714286, 0.464286)
V 16: Pos(1.0, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(0.714286, 0.303571)
V 17: Pos(1.0, 0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 18: Pos(-1.0, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(-0.714286, 0.303571)
V 19: Pos(-1.0, -0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
===Triangles (Indices): 10
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 0 15 1
Tri: 3 16 4
Tri: 6 17 7
Tri: 9 18 10
Tri: 12 19 13
+33
View File
@@ -0,0 +1,33 @@
===Vertices (Split by UV/Normal): 20
V 0: Pos(1.1, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.785714, -0.464286)
V 1: Pos(-1.1, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.785714, 0.464286)
V 2: Pos(-1.1, -0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(-0.785714, -0.464286)
V 3: Pos(1.1, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(0.785714, 0.0)
V 4: Pos(-1.1, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(-0.785714, 0.303571)
V 5: Pos(-1.1, -0.65, 0.0) Norm(0.0, -1.0, 0.0) UV(-0.785714, 0.0)
V 6: Pos(1.1, 0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 7: Pos(1.1, -0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
V 8: Pos(1.1, -0.65, 0.0) Norm(1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 9: Pos(-1.1, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(-0.785714, 0.0)
V 10: Pos(1.1, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(0.785714, 0.303571)
V 11: Pos(1.1, 0.65, 0.0) Norm(0.0, 1.0, 0.0) UV(0.785714, 0.0)
V 12: Pos(-1.1, -0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.0)
V 13: Pos(-1.1, 0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 14: Pos(-1.1, 0.65, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.464286, 0.0)
V 15: Pos(1.1, 0.65, 0.425) Norm(0.0, 0.0, 1.0) UV(0.785714, 0.464286)
V 16: Pos(1.1, -0.65, 0.425) Norm(0.0, -1.0, 0.0) UV(0.785714, 0.303571)
V 17: Pos(1.1, 0.65, 0.425) Norm(1.0, 0.0, 0.0) UV(0.464286, 0.303571)
V 18: Pos(-1.1, 0.65, 0.425) Norm(0.0, 1.0, 0.0) UV(-0.785714, 0.303571)
V 19: Pos(-1.1, -0.65, 0.425) Norm(-1.0, 0.0, 0.0) UV(-0.464286, 0.303571)
===Triangles (Indices): 10
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 0 15 1
Tri: 3 16 4
Tri: 6 17 7
Tri: 9 18 10
Tri: 12 19 13
@@ -0,0 +1,59 @@
===Vertices (Split by UV/Normal): 38
V 0: Pos(-0.273827, 0.117924, -0.041259) Norm(0.406167, 0.85222, 0.329773) UV(0.983398, 0.003906)
V 1: Pos(0.089112, -0.373135, 0.780749) Norm(0.406167, 0.85222, 0.329773) UV(0.746094, 0.541016)
V 2: Pos(0.232577, -0.129362, -0.025925) Norm(0.406167, 0.85222, 0.329773) UV(0.746094, 0.003906)
V 3: Pos(0.271487, 0.12939, -0.023922) Norm(0.427718, -0.876634, -0.220388) UV(0.365234, 0.003906)
V 4: Pos(-0.215197, -0.301759, 0.746518) Norm(0.427718, -0.876634, -0.220388) UV(0.001953, 0.753906)
V 5: Pos(-0.269386, -0.129645, -0.043262) Norm(0.427718, -0.876634, -0.220388) UV(0.001953, 0.003906)
V 6: Pos(0.084147, 0.273081, -0.044571) Norm(0.919987, -0.278934, -0.275353) UV(0.365234, 0.003906)
V 7: Pos(0.13565, -0.341112, 0.749688) Norm(0.919987, -0.278934, -0.275353) UV(0.001953, 0.753906)
V 8: Pos(-0.084866, -0.306037, -0.022613) Norm(0.919987, -0.278934, -0.275353) UV(0.001953, 0.003906)
V 9: Pos(-0.076432, 0.270303, -0.021445) Norm(-0.963595, -0.190035, -0.188071) UV(0.001953, 0.003906)
V 10: Pos(-0.093031, -0.334699, 0.674922) Norm(-0.963595, -0.190035, -0.188071) UV(0.365234, 0.753906)
V 11: Pos(-0.205527, 0.21168, 0.699217) Norm(-0.963595, -0.190035, -0.188071) UV(0.001953, 0.753906)
V 12: Pos(-0.215428, 0.242878, -0.003775) Norm(0.745883, 0.638147, 0.19086) UV(0.742188, 0.003906)
V 13: Pos(0.12593, -0.392042, 0.785073) Norm(0.745883, 0.638147, 0.19086) UV(0.369141, 0.753906)
V 14: Pos(0.19619, -0.220397, -0.063409) Norm(0.745883, 0.638147, 0.19086) UV(0.369141, 0.003906)
V 15: Pos(0.247094, 0.014366, -0.049208) Norm(-0.006139, -0.963923, -0.26611) UV(0.742188, 0.003906)
V 16: Pos(-0.245197, -0.183174, 0.677691) Norm(-0.006139, -0.963923, -0.26611) UV(0.369141, 0.753906)
V 17: Pos(-0.2877, 0.00915, -0.017976) Norm(-0.006139, -0.963923, -0.26611) UV(0.369141, 0.003906)
V 18: Pos(0.300358, 0.14707, -0.004204) Norm(-0.533914, 0.789405, 0.302945) UV(0.001953, 0.003906)
V 19: Pos(-0.16047, -0.453601, 0.748836) Norm(-0.533914, 0.789405, 0.302945) UV(0.365234, 0.753906)
V 20: Pos(0.376465, -0.113002, 0.807612) Norm(-0.533914, 0.789405, 0.302945) UV(0.001953, 0.753906)
V 21: Pos(-0.047381, -0.201038, -0.038127) Norm(-0.962285, 0.163946, -0.217092) UV(0.365234, 0.003906)
V 22: Pos(-0.111266, 0.35189, 0.662616) Norm(-0.962285, 0.163946, -0.217092) UV(0.001953, 0.753906)
V 23: Pos(0.042398, 0.337932, -0.029057) Norm(-0.962285, 0.163946, -0.217092) UV(0.001953, 0.003906)
V 24: Pos(-0.116464, 0.256365, -0.006503) Norm(0.878422, 0.424762, -0.218978) UV(0.365234, 0.003906)
V 25: Pos(0.283017, -0.251336, 0.611186) Norm(0.878422, 0.424762, -0.218978) UV(0.001953, 0.753906)
V 26: Pos(0.117711, -0.255846, -0.060681) Norm(0.878422, 0.424762, -0.218978) UV(0.001953, 0.003906)
V 27: Pos(-0.273827, 0.117924, -0.041259) Norm(0.406167, 0.852219, 0.329773) UV(0.983398, 0.003906)
V 28: Pos(-0.417292, -0.12585, 0.765415) Norm(0.406167, 0.852219, 0.329773) UV(0.983398, 0.541016)
V 29: Pos(0.089112, -0.373135, 0.780749) Norm(0.406167, 0.852219, 0.329773) UV(0.746094, 0.541016)
V 30: Pos(0.325676, -0.042723, 0.765857) Norm(0.427718, -0.876634, -0.220388) UV(0.365234, 0.753906)
V 31: Pos(0.304663, 0.238007, 0.72773) Norm(0.919987, -0.278934, -0.275353) UV(0.365234, 0.753906)
V 32: Pos(0.036063, -0.276076, -0.045739) Norm(-0.963595, -0.190035, -0.188071) UV(0.365234, 0.003906)
V 33: Pos(-0.285689, 0.071232, 0.844708) Norm(0.745883, 0.638147, 0.19086) UV(0.742188, 0.753906)
V 34: Pos(0.289597, -0.177957, 0.646459) Norm(-0.006139, -0.963923, -0.26611) UV(0.742188, 0.753906)
V 35: Pos(-0.236577, -0.19353, -0.06298) Norm(-0.533914, 0.789405, 0.302945) UV(0.365234, 0.003906)
V 36: Pos(-0.201045, -0.18708, 0.653547) Norm(-0.962285, 0.163946, -0.217092) UV(0.365234, 0.753906)
V 37: Pos(0.048842, 0.260875, 0.665364) Norm(0.878422, 0.424762, -0.218978) UV(0.365234, 0.753906)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 3 30 4
Tri: 6 31 7
Tri: 9 32 10
Tri: 12 33 13
Tri: 15 34 16
Tri: 18 35 19
Tri: 21 36 22
Tri: 24 37 25
Binary file not shown.
@@ -0,0 +1,57 @@
===Vertices (Split by UV/Normal): 36
V 0: Pos(0.133265, -0.192101, -0.0013) Norm(-0.694625, -0.662526, 0.280277) UV(0.730469, 0.000977)
V 1: Pos(-0.13907, 0.307041, 0.503644) Norm(-0.694625, -0.662526, 0.280277) UV(0.003906, 0.188477)
V 2: Pos(-0.21585, 0.153872, -0.04871) Norm(-0.694625, -0.662526, 0.280277) UV(0.003906, 0.000977)
V 3: Pos(-0.256127, -0.073006, -0.006069) Norm(0.151786, -0.9719, 0.17992) UV(0.003906, 0.569336)
V 4: Pos(0.293837, 0.115855, 0.55016) Norm(0.151786, -0.9719, 0.17992) UV(0.738281, 0.75293)
V 5: Pos(-0.229425, 0.041146, 0.588033) Norm(0.151786, -0.9719, 0.17992) UV(0.003906, 0.75293)
V 6: Pos(-0.191629, -0.167851, -0.025647) Norm(-0.592413, 0.793335, -0.140234) UV(0.738281, 0.569336)
V 7: Pos(0.159993, 0.18866, 0.5058) Norm(-0.592413, 0.793335, -0.140234) UV(0.003906, 0.75293)
V 8: Pos(0.206042, 0.129332, -0.024363) Norm(-0.592413, 0.793335, -0.140234) UV(0.003906, 0.569336)
V 9: Pos(-0.106539, -0.239584, -0.004719) Norm(0.94814, -0.274932, 0.159511) UV(0.003906, 0.19043)
V 10: Pos(-0.031599, 0.325037, 0.523012) Norm(0.94814, -0.274932, 0.159511) UV(0.75, 0.37793)
V 11: Pos(-0.181998, -0.170094, 0.563585) Norm(0.94814, -0.274932, 0.159511) UV(0.003906, 0.37793)
V 12: Pos(-0.094517, 0.149949, -0.027188) Norm(0.80139, 0.583703, -0.13063) UV(0.738281, 0.569336)
V 13: Pos(0.181239, -0.116976, 0.471807) Norm(0.80139, 0.583703, -0.13063) UV(0.003906, 0.75293)
V 14: Pos(0.131929, -0.159971, -0.022823) Norm(0.80139, 0.583703, -0.13063) UV(0.003906, 0.569336)
V 15: Pos(-0.191437, 0.116118, -0.017885) Norm(0.498884, 0.83417, -0.235109) UV(0.599609, 0.379883)
V 16: Pos(0.270816, 0.004641, 0.567461) Norm(0.498884, 0.83417, -0.235109) UV(0.003906, 0.567383)
V 17: Pos(0.178465, -0.109119, -0.032125) Norm(0.498884, 0.83417, -0.235109) UV(0.003906, 0.379883)
V 18: Pos(-0.14981, -0.064021, -0.021972) Norm(-0.38218, 0.846186, 0.371359) UV(0.599609, 0.379883)
V 19: Pos(0.204279, -0.105789, 0.437609) Norm(-0.38218, 0.846186, 0.371359) UV(0.003906, 0.567383)
V 20: Pos(0.117476, 0.059362, -0.028038) Norm(-0.38218, 0.846186, 0.371359) UV(0.003906, 0.379883)
V 21: Pos(0.124339, 0.267927, -0.041489) Norm(0.816073, -0.486746, -0.311615) UV(0.75, 0.19043)
V 22: Pos(0.056945, -0.26634, 0.616546) Norm(0.816073, -0.486746, -0.311615) UV(0.003906, 0.37793)
V 23: Pos(-0.140919, -0.197908, -0.008521) Norm(0.816073, -0.486746, -0.311615) UV(0.003906, 0.19043)
V 24: Pos(-0.061648, 0.23025, -0.028801) Norm(-0.921451, -0.369546, -0.119851) UV(0.003906, 0.19043)
V 25: Pos(0.052085, -0.250515, 0.579165) Norm(-0.921451, -0.369546, -0.119851) UV(0.75, 0.37793)
V 26: Pos(-0.132376, 0.211893, 0.571573) Norm(-0.921451, -0.369546, -0.119851) UV(0.003906, 0.37793)
V 27: Pos(0.210045, -0.038932, 0.551054) Norm(-0.694625, -0.662526, 0.280277) UV(0.730469, 0.188477)
V 28: Pos(0.267135, 0.001703, -0.043941) Norm(0.151786, -0.9719, 0.17992) UV(0.738281, 0.569336)
V 29: Pos(-0.237678, -0.108523, 0.504516) Norm(-0.592413, 0.793335, -0.140234) UV(0.738281, 0.75293)
V 30: Pos(0.04386, 0.255547, -0.045292) Norm(0.94814, -0.274932, 0.159511) UV(0.75, 0.19043)
V 31: Pos(-0.045207, 0.192944, 0.467443) Norm(0.80139, 0.583703, -0.13063) UV(0.738281, 0.75293)
V 32: Pos(-0.099086, 0.229879, 0.581701) Norm(0.498884, 0.83417, -0.235109) UV(0.599609, 0.567383)
V 33: Pos(-0.063007, -0.229171, 0.443675) Norm(-0.38218, 0.846186, 0.371359) UV(0.599609, 0.567383)
V 34: Pos(0.322203, 0.199495, 0.583579) Norm(0.816073, -0.486746, -0.311615) UV(0.75, 0.37793)
V 35: Pos(0.122812, -0.232158, -0.021209) Norm(-0.921451, -0.369546, -0.119851) UV(0.75, 0.19043)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 0 27 1
Tri: 3 28 4
Tri: 6 29 7
Tri: 9 30 10
Tri: 12 31 13
Tri: 15 32 16
Tri: 18 33 19
Tri: 21 34 22
Tri: 24 35 25
Binary file not shown.
@@ -0,0 +1,61 @@
===Vertices (Split by UV/Normal): 40
V 0: Pos(-0.292955, -0.338813, -0.04835) Norm(-0.732031, 0.638136, -0.238565) UV(0.738281, 0.379883)
V 1: Pos(0.085147, 0.491646, 1.012847) Norm(-0.732031, 0.638136, -0.238565) UV(0.003906, 0.563477)
V 2: Pos(0.283903, 0.324209, -0.044909) Norm(-0.732031, 0.638136, -0.238565) UV(0.003906, 0.379883)
V 3: Pos(0.035732, 0.235767, -0.061544) Norm(0.960162, -0.012499, -0.279163) UV(0.599609, 0.000977)
V 4: Pos(0.292007, -0.301712, 0.843961) Norm(0.960162, -0.012499, -0.279163) UV(0.003906, 0.188477)
V 5: Pos(0.036819, -0.347008, -0.031715) Norm(0.960162, -0.012499, -0.279163) UV(0.003906, 0.000977)
V 6: Pos(-0.212795, 0.188657, -0.055539) Norm(-0.684476, -0.690867, -0.232799) UV(0.003906, 0.19043)
V 7: Pos(-0.083911, -0.319072, 1.072278) Norm(-0.684476, -0.690867, -0.232799) UV(0.419922, 0.37793)
V 8: Pos(-0.430032, 0.029853, 1.054459) Norm(-0.684476, -0.690867, -0.232799) UV(0.003906, 0.37793)
V 9: Pos(-0.339503, -0.008897, -0.065504) Norm(0.234614, 0.933666, -0.270599) UV(0.599609, 0.000977)
V 10: Pos(0.269234, 0.115374, 0.89106) Norm(0.234614, 0.933666, -0.270599) UV(0.003906, 0.188477)
V 11: Pos(0.264795, -0.149806, -0.027755) Norm(0.234614, 0.933666, -0.270599) UV(0.003906, 0.000977)
V 12: Pos(-0.135238, -0.099286, -0.057379) Norm(-0.623123, 0.769021, -0.142562) UV(0.419922, 0.19043)
V 13: Pos(0.092676, 0.269747, 0.937106) Norm(-0.623123, 0.769021, -0.142562) UV(0.003906, 0.37793)
V 14: Pos(0.217268, 0.190328, -0.03588) Norm(-0.623123, 0.769021, -0.142562) UV(0.003906, 0.19043)
V 15: Pos(0.211654, 0.474267, -0.022922) Norm(0.926513, -0.352338, -0.132025) UV(0.738281, 0.379883)
V 16: Pos(-0.037064, -0.578193, 1.040368) Norm(0.926513, -0.352338, -0.132025) UV(0.003906, 0.563477)
V 17: Pos(-0.156653, -0.476473, -0.070336) Norm(0.926513, -0.352338, -0.132025) UV(0.003906, 0.379883)
V 18: Pos(-0.122412, 0.493975, -0.016249) Norm(0.983724, 0.100766, 0.148774) UV(0.738281, 0.379883)
V 19: Pos(-0.184249, -0.529219, 1.085646) Norm(0.983724, 0.100766, 0.148774) UV(0.003906, 0.563477)
V 20: Pos(-0.01812, -0.434469, -0.07701) Norm(0.983724, 0.100766, 0.148774) UV(0.003906, 0.379883)
V 21: Pos(0.320231, -0.225643, -0.012691) Norm(-0.475633, -0.833093, -0.282364) UV(0.599609, 0.000977)
V 22: Pos(-0.541321, -0.082362, 1.015826) Norm(-0.475633, -0.833093, -0.282364) UV(0.003906, 0.188477)
V 23: Pos(-0.281624, 0.140977, -0.080568) Norm(-0.475633, -0.833093, -0.282364) UV(0.003906, 0.000977)
V 24: Pos(-0.409436, -0.029761, -0.026775) Norm(-0.198202, 0.972619, -0.121364) UV(0.478516, 0.56543)
V 25: Pos(0.430501, 0.263898, 0.954906) Norm(-0.198202, 0.972619, -0.121364) UV(0.003906, 0.699707)
V 26: Pos(0.40697, 0.131653, -0.066483) Norm(-0.198202, 0.972619, -0.121364) UV(0.003906, 0.56543)
V 27: Pos(-0.491711, -0.171377, 1.009405) Norm(-0.732031, 0.638136, -0.238565) UV(0.738281, 0.563477)
V 28: Pos(0.290921, 0.281063, 0.814133) Norm(0.960162, -0.012499, -0.279163) UV(0.599609, 0.188477)
V 29: Pos(-0.212795, 0.188657, -0.055539) Norm(-0.684477, -0.690867, -0.232799) UV(0.003906, 0.19043)
V 30: Pos(0.133326, -0.160268, -0.03772) Norm(-0.684477, -0.690867, -0.232799) UV(0.419922, 0.19043)
V 31: Pos(-0.083911, -0.319072, 1.072278) Norm(-0.684477, -0.690867, -0.232799) UV(0.419922, 0.37793)
V 32: Pos(-0.335064, 0.256283, 0.853312) Norm(0.234614, 0.933666, -0.270599) UV(0.599609, 0.188477)
V 33: Pos(-0.25983, -0.019868, 0.915607) Norm(-0.623123, 0.769021, -0.142562) UV(0.419922, 0.37793)
V 34: Pos(0.331244, 0.372548, 1.087782) Norm(0.926513, -0.352338, -0.132025) UV(0.738281, 0.563477)
V 35: Pos(-0.288542, 0.399225, 1.146407) Norm(0.983724, 0.100766, 0.148774) UV(0.738281, 0.563477)
V 36: Pos(0.060535, -0.448982, 1.083703) Norm(-0.475633, -0.833093, -0.282364) UV(0.599609, 0.188477)
V 37: Pos(-0.409436, -0.029761, -0.026775) Norm(-0.198202, 0.972618, -0.121364) UV(0.478516, 0.56543)
V 38: Pos(-0.385905, 0.102484, 0.994614) Norm(-0.198202, 0.972618, -0.121364) UV(0.478516, 0.699707)
V 39: Pos(0.430501, 0.263898, 0.954906) Norm(-0.198202, 0.972618, -0.121364) UV(0.003906, 0.699707)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 0 27 1
Tri: 3 28 4
Tri: 29 30 31
Tri: 9 32 10
Tri: 12 33 13
Tri: 15 34 16
Tri: 18 35 19
Tri: 21 36 22
Tri: 37 38 39
Binary file not shown.
@@ -0,0 +1,57 @@
===Vertices (Split by UV/Normal): 36
V 0: Pos(-0.187384, 0.224667, -0.016321) Norm(-0.728664, -0.642917, 0.236023) UV(0.003906, 0.000977)
V 1: Pos(0.25306, -0.085312, 0.499073) Norm(-0.728664, -0.642917, 0.236023) UV(0.730469, 0.188477)
V 2: Pos(-0.081565, 0.298769, 0.512219) Norm(-0.728664, -0.642917, 0.236023) UV(0.003906, 0.188477)
V 3: Pos(-0.217149, 0.025089, -0.007047) Norm(0.139576, 0.927931, -0.345633) UV(0.478516, 0.56543)
V 4: Pos(0.371139, 0.134414, 0.524029) Norm(0.139576, 0.927931, -0.345633) UV(0.003906, 0.699707)
V 5: Pos(0.302301, -0.06485, -0.038741) Norm(0.139576, 0.927931, -0.345633) UV(0.003906, 0.56543)
V 6: Pos(-0.145425, -0.088444, -0.016731) Norm(0.551714, -0.775446, 0.307074) UV(0.003906, 0.379883)
V 7: Pos(0.103839, 0.257524, 0.409087) Norm(0.551714, -0.775446, 0.307074) UV(0.738281, 0.563477)
V 8: Pos(-0.214871, 0.03565, 0.421413) Norm(0.551714, -0.775446, 0.307074) UV(0.003906, 0.563477)
V 9: Pos(0.011233, 0.155862, -0.01215) Norm(0.905965, -0.244038, -0.345938) UV(0.478516, 0.56543)
V 10: Pos(0.065129, -0.245427, 0.412083) Norm(0.905965, -0.244038, -0.345938) UV(0.003906, 0.699707)
V 11: Pos(-0.08527, -0.171931, -0.033638) Norm(0.905965, -0.244038, -0.345938) UV(0.003906, 0.56543)
V 12: Pos(0.174263, -0.191998, -0.04718) Norm(-0.689648, -0.678694, 0.252508) UV(0.75, 0.19043)
V 13: Pos(-0.049463, 0.24368, 0.512803) Norm(-0.689648, -0.678694, 0.252508) UV(0.003906, 0.37793)
V 14: Pos(-0.18047, 0.186531, 0.001392) Norm(-0.689648, -0.678694, 0.252508) UV(0.003906, 0.19043)
V 15: Pos(0.258449, -0.054672, -0.024131) Norm(-0.149538, -0.952501, -0.265292) UV(0.738281, 0.379883)
V 16: Pos(-0.275248, -0.130355, 0.548434) Norm(-0.149538, -0.952501, -0.265292) UV(0.003906, 0.563477)
V 17: Pos(-0.25381, 0.025062, -0.021657) Norm(-0.149538, -0.952501, -0.265292) UV(0.003906, 0.379883)
V 18: Pos(-0.17845, -0.048121, -0.01971) Norm(-0.22137, 0.913185, -0.342183) UV(0.75, 0.19043)
V 19: Pos(0.195669, 0.209498, 0.425768) Norm(-0.22137, 0.913185, -0.342183) UV(0.003906, 0.37793)
V 20: Pos(0.226831, 0.047739, -0.026077) Norm(-0.22137, 0.913185, -0.342183) UV(0.003906, 0.19043)
V 21: Pos(-0.077075, -0.18721, -0.02324) Norm(0.862163, -0.455545, -0.221707) UV(0.003906, 0.56543)
V 22: Pos(0.205583, 0.079241, 0.528464) Norm(0.862163, -0.455545, -0.221707) UV(0.478516, 0.699707)
V 23: Pos(0.033186, -0.246699, 0.527772) Norm(0.862163, -0.455545, -0.221707) UV(0.003906, 0.699707)
V 24: Pos(0.063748, -0.306486, -0.032498) Norm(-0.965932, -0.093567, 0.241288) UV(0.730469, 0.000977)
V 25: Pos(0.159653, 0.256417, 0.569718) Norm(-0.965932, -0.093567, 0.241288) UV(0.003906, 0.188477)
V 26: Pos(0.013368, 0.263139, -0.01329) Norm(-0.965932, -0.093567, 0.241288) UV(0.003906, 0.000977)
V 27: Pos(0.147241, -0.159413, -0.029467) Norm(-0.728664, -0.642917, 0.236023) UV(0.730469, 0.000977)
V 28: Pos(-0.148312, 0.224354, 0.555723) Norm(0.139576, 0.927931, -0.345633) UV(0.478516, 0.699707)
V 29: Pos(0.173285, 0.13343, -0.029057) Norm(0.551714, -0.775446, 0.307074) UV(0.738281, 0.379883)
V 30: Pos(0.161631, 0.082366, 0.433571) Norm(0.905965, -0.244038, -0.345938) UV(0.478516, 0.699707)
V 31: Pos(0.305271, -0.13485, 0.464232) Norm(-0.689648, -0.678694, 0.252508) UV(0.75, 0.37793)
V 32: Pos(0.237011, -0.210089, 0.54596) Norm(-0.149538, -0.952501, -0.265292) UV(0.738281, 0.563477)
V 33: Pos(-0.209612, 0.113637, 0.432135) Norm(-0.22137, 0.913185, -0.342183) UV(0.75, 0.37793)
V 34: Pos(0.095321, 0.13873, -0.022548) Norm(0.862163, -0.455545, -0.221707) UV(0.478516, 0.56543)
V 35: Pos(0.210033, -0.313208, 0.55051) Norm(-0.965932, -0.093567, 0.241288) UV(0.730469, 0.188477)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 0 27 1
Tri: 3 28 4
Tri: 6 29 7
Tri: 9 30 10
Tri: 12 31 13
Tri: 15 32 16
Tri: 18 33 19
Tri: 21 34 22
Tri: 24 35 25
Binary file not shown.
@@ -0,0 +1,59 @@
===Vertices (Split by UV/Normal): 38
V 0: Pos(-0.194076, 0.123011, -0.046649) Norm(0.669016, 0.727036, -0.154393) UV(0.209961, 0.003906)
V 1: Pos(0.15808, -0.018483, 0.813016) Norm(0.669016, 0.727036, -0.154393) UV(0.001953, 0.753906)
V 2: Pos(0.093677, -0.138541, -0.031409) Norm(0.669016, 0.727036, -0.154393) UV(0.001953, 0.003906)
V 3: Pos(-0.18968, -0.022063, -0.047687) Norm(-0.33455, 0.899291, -0.281696) UV(0.209961, 0.003906)
V 4: Pos(0.051268, 0.378755, 0.945735) Norm(-0.33455, 0.899291, -0.281696) UV(0.001953, 0.753906)
V 5: Pos(0.193123, 0.12577, -0.030371) Norm(-0.33455, 0.899291, -0.281696) UV(0.001953, 0.003906)
V 6: Pos(-0.370549, -0.360478, -0.041809) Norm(-0.647232, 0.707403, -0.284027) UV(0.586914, 0.003906)
V 7: Pos(0.091065, 0.453011, 0.932369) Norm(-0.647232, 0.707403, -0.284027) UV(0.213867, 0.753906)
V 8: Pos(0.289575, 0.245729, -0.036249) Norm(-0.647232, 0.707403, -0.284027) UV(0.213867, 0.003906)
V 9: Pos(0.05025, -0.29813, -0.063938) Norm(-0.953061, -0.229138, 0.197917) UV(0.888672, 0.003906)
V 10: Pos(0.090846, 0.26625, 0.78496) Norm(-0.953061, -0.229138, 0.197917) UV(0.59082, 0.753906)
V 11: Pos(-0.08197, 0.294849, -0.01412) Norm(-0.953061, -0.229138, 0.197917) UV(0.59082, 0.003906)
V 12: Pos(0.143008, -0.209035, -0.035602) Norm(-0.662004, -0.726789, -0.18311) UV(0.209961, 0.003906)
V 13: Pos(-0.365585, -0.000767, 0.976489) Norm(-0.662004, -0.726789, -0.18311) UV(0.001953, 0.753906)
V 14: Pos(-0.22714, 0.129845, -0.042456) Norm(-0.662004, -0.726789, -0.18311) UV(0.001953, 0.003906)
V 15: Pos(0.221702, -0.039002, -0.0578) Norm(-0.316479, -0.910379, 0.266555) UV(0.209961, 0.003906)
V 16: Pos(-0.00618, 0.344801, 0.982457) Norm(-0.316479, -0.910379, 0.266555) UV(0.001953, 0.753906)
V 17: Pos(-0.185325, 0.113486, -0.020258) Norm(-0.316479, -0.910379, 0.266555) UV(0.001953, 0.003906)
V 18: Pos(-0.2121, -0.159534, -0.060435) Norm(-0.637761, 0.730999, 0.242695) UV(0.209961, 0.003906)
V 19: Pos(0.203941, -0.106425, 0.872885) Norm(-0.637761, 0.730999, 0.242695) UV(0.001953, 0.753906)
V 20: Pos(0.126795, 0.121921, -0.017623) Norm(-0.637761, 0.730999, 0.242695) UV(0.001953, 0.003906)
V 21: Pos(0.133756, 0.088742, -0.053448) Norm(0.875994, -0.456881, 0.154581) UV(0.209961, 0.003906)
V 22: Pos(-0.093702, -0.07497, 0.751663) Norm(0.875994, -0.456881, 0.154581) UV(0.001953, 0.753906)
V 23: Pos(-0.018984, -0.194356, -0.02461) Norm(0.875994, -0.456881, 0.154581) UV(0.001953, 0.003906)
V 24: Pos(0.077842, -0.199044, -0.042973) Norm(-0.927352, -0.296153, -0.228719) UV(0.888672, 0.003906)
V 25: Pos(-0.287629, 0.234914, 0.876944) Norm(-0.927352, -0.296153, -0.228719) UV(0.59082, 0.753906)
V 26: Pos(-0.087795, 0.313526, -0.035085) Norm(-0.927352, -0.296153, -0.228719) UV(0.59082, 0.003906)
V 27: Pos(-0.129673, 0.243069, 0.797776) Norm(0.669016, 0.727036, -0.154393) UV(0.209961, 0.753906)
V 28: Pos(-0.331536, 0.230922, 0.928418) Norm(-0.33455, 0.899291, -0.281696) UV(0.209961, 0.753906)
V 29: Pos(-0.569059, -0.153196, 0.926809) Norm(-0.647232, 0.707403, -0.284027) UV(0.586914, 0.753906)
V 30: Pos(0.05025, -0.29813, -0.063938) Norm(-0.953061, -0.229138, 0.197916) UV(0.888672, 0.003906)
V 31: Pos(0.223066, -0.326728, 0.735142) Norm(-0.953061, -0.229138, 0.197916) UV(0.888672, 0.753906)
V 32: Pos(0.090846, 0.26625, 0.78496) Norm(-0.953061, -0.229138, 0.197916) UV(0.59082, 0.753906)
V 33: Pos(0.004562, -0.339647, 0.983343) Norm(-0.662004, -0.726789, -0.18311) UV(0.209961, 0.753906)
V 34: Pos(0.400846, 0.192312, 0.944916) Norm(-0.316479, -0.910379, 0.266555) UV(0.209961, 0.753906)
V 35: Pos(-0.134953, -0.38788, 0.830073) Norm(-0.637761, 0.730999, 0.242695) UV(0.209961, 0.753906)
V 36: Pos(0.059039, 0.208128, 0.722826) Norm(0.875994, -0.456881, 0.154581) UV(0.209961, 0.753906)
V 37: Pos(-0.121992, -0.277657, 0.869055) Norm(-0.927352, -0.296153, -0.228719) UV(0.888672, 0.753906)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 0 27 1
Tri: 3 28 4
Tri: 6 29 7
Tri: 30 31 32
Tri: 12 33 13
Tri: 15 34 16
Tri: 18 35 19
Tri: 21 36 22
Tri: 24 37 25
Binary file not shown.
@@ -0,0 +1,59 @@
===Vertices (Split by UV/Normal): 38
V 0: Pos(-0.287772, 0.212075, -0.06502) Norm(-0.422692, -0.845709, -0.325741) UV(0.003906, 0.000977)
V 1: Pos(0.202895, -0.365009, 0.796538) Norm(-0.422692, -0.845709, -0.325741) UV(0.75, 0.188477)
V 2: Pos(-0.476607, -0.000881, 0.732911) Norm(-0.422692, -0.845709, -0.325741) UV(0.003906, 0.188477)
V 3: Pos(-0.260455, -0.017642, -0.050798) Norm(-0.258856, 0.927135, 0.270952) UV(0.599609, 0.19043)
V 4: Pos(0.278523, -0.07725, 0.668084) Norm(-0.258856, 0.927135, 0.270952) UV(0.003906, 0.37793)
V 5: Pos(0.272212, 0.120796, -0.015614) Norm(-0.258856, 0.927135, 0.270952) UV(0.003906, 0.19043)
V 6: Pos(0.160515, 0.270502, -0.013662) Norm(0.788054, -0.581485, -0.202104) UV(0.738281, 0.379883)
V 7: Pos(-0.15246, -0.424885, 0.766704) Norm(0.788054, -0.581485, -0.202104) UV(0.003906, 0.563477)
V 8: Pos(-0.260105, -0.285956, -0.052749) Norm(0.788054, -0.581485, -0.202104) UV(0.003906, 0.379883)
V 9: Pos(0.031654, -0.383817, -0.010768) Norm(-0.934758, -0.052196, -0.351431) UV(0.738281, 0.379883)
V 10: Pos(-0.308207, 0.450217, 0.769342) Norm(-0.934758, -0.052196, -0.351431) UV(0.003906, 0.563477)
V 11: Pos(0.003938, 0.414687, -0.055644) Norm(-0.934758, -0.052196, -0.351431) UV(0.003906, 0.379883)
V 12: Pos(0.133462, -0.218948, -0.042286) Norm(-0.721926, -0.644237, 0.252551) UV(0.599609, 0.19043)
V 13: Pos(-0.096995, 0.358122, 0.771001) Norm(-0.721926, -0.644237, 0.252551) UV(0.003906, 0.37793)
V 14: Pos(-0.268696, 0.238826, -0.024125) Norm(-0.721926, -0.644237, 0.252551) UV(0.003906, 0.19043)
V 15: Pos(-0.292382, 0.000112, -0.017284) Norm(0.072486, 0.972431, 0.22164) UV(0.75, 0.000977)
V 16: Pos(0.319726, -0.217756, 0.738407) Norm(0.072486, 0.972431, 0.22164) UV(0.003906, 0.188477)
V 17: Pos(0.287782, -0.035877, -0.049128) Norm(0.072486, 0.972431, 0.22164) UV(0.003906, 0.000977)
V 18: Pos(-0.171318, -0.131958, -0.025979) Norm(-0.632722, 0.678948, 0.372414) UV(0.599609, 0.19043)
V 19: Pos(0.425246, -0.000126, 0.747226) Norm(-0.632722, 0.678948, 0.372414) UV(0.003906, 0.37793)
V 20: Pos(0.190416, 0.213075, -0.040433) Norm(-0.632722, 0.678948, 0.372414) UV(0.003906, 0.19043)
V 21: Pos(-0.059444, -0.362402, -0.03028) Norm(-0.914595, 0.15541, -0.373315) UV(0.75, 0.000977)
V 22: Pos(-0.237298, 0.350833, 0.702366) Norm(-0.914595, 0.15541, -0.373315) UV(0.003906, 0.188477)
V 23: Pos(0.054416, 0.293616, -0.036131) Norm(-0.914595, 0.15541, -0.373315) UV(0.003906, 0.000977)
V 24: Pos(0.123917, -0.249907, -0.029496) Norm(-0.85265, -0.486589, -0.190314) UV(0.478516, 0.56543)
V 25: Pos(-0.287666, 0.198497, 0.668024) Norm(-0.85265, -0.486589, -0.190314) UV(0.003906, 0.699707)
V 26: Pos(-0.16437, 0.258162, -0.036916) Norm(-0.85265, -0.486589, -0.190314) UV(0.003906, 0.56543)
V 27: Pos(-0.287772, 0.212075, -0.06502) Norm(-0.422692, -0.84571, -0.325741) UV(0.003906, 0.000977)
V 28: Pos(0.39173, -0.152052, -0.001392) Norm(-0.422692, -0.84571, -0.325741) UV(0.75, 0.000977)
V 29: Pos(0.202895, -0.365009, 0.796538) Norm(-0.422692, -0.84571, -0.325741) UV(0.75, 0.188477)
V 30: Pos(-0.254143, -0.215688, 0.6329) Norm(-0.258856, 0.927135, 0.270952) UV(0.599609, 0.37793)
V 31: Pos(0.26816, 0.131573, 0.805791) Norm(0.788054, -0.581485, -0.202104) UV(0.738281, 0.563477)
V 32: Pos(-0.280492, -0.348287, 0.814218) Norm(-0.934758, -0.052196, -0.351431) UV(0.738281, 0.563477)
V 33: Pos(0.305163, -0.099652, 0.75284) Norm(-0.721926, -0.644237, 0.252551) UV(0.599609, 0.37793)
V 34: Pos(-0.260438, -0.181767, 0.770251) Norm(0.072486, 0.972431, 0.22164) UV(0.75, 0.188477)
V 35: Pos(0.063513, -0.345159, 0.76168) Norm(-0.632722, 0.678948, 0.372414) UV(0.599609, 0.37793)
V 36: Pos(-0.351158, -0.305186, 0.708216) Norm(-0.914595, 0.15541, -0.373315) UV(0.75, 0.188477)
V 37: Pos(0.000622, -0.309572, 0.675444) Norm(-0.85265, -0.486589, -0.190314) UV(0.478516, 0.699707)
===Triangles (Indices): 18
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 3 30 4
Tri: 6 31 7
Tri: 9 32 10
Tri: 12 33 13
Tri: 15 34 16
Tri: 18 35 19
Tri: 21 36 22
Tri: 24 37 25
Binary file not shown.
Binary file not shown.
+81
View File
@@ -0,0 +1,81 @@
===Vertices (Split by UV/Normal): 52
V 0: Pos(-4.5, -4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.5, 0.98)
V 1: Pos(-4.68, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(4.5, 0.52)
V 2: Pos(-4.68, -4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.5, 0.52)
V 3: Pos(-4.5, -4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.02)
V 4: Pos(-4.68, -4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.48)
V 5: Pos(-4.68, -4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.02)
V 6: Pos(-4.5, 4.5, -0.02) Norm(1.0, 0.0, 0.0) UV(4.5, 0.02)
V 7: Pos(-4.5, -4.5, 0.2) Norm(1.0, 0.0, 0.0) UV(-4.5, 0.48)
V 8: Pos(-4.5, -4.5, -0.02) Norm(1.0, 0.0, 0.0) UV(-4.5, 0.02)
V 9: Pos(-4.68, -4.5, -0.02) Norm(-1.0, 0.0, 0.0) UV(-4.5, 0.02)
V 10: Pos(-4.68, 4.5, 0.2) Norm(-1.0, 0.0, 0.0) UV(4.5, 0.48)
V 11: Pos(-4.68, 4.5, -0.02) Norm(-1.0, 0.0, 0.0) UV(4.5, 0.02)
V 12: Pos(4.68, -4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.5, 0.98)
V 13: Pos(4.5, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(4.5, 0.52)
V 14: Pos(4.5, -4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.5, 0.52)
V 15: Pos(4.68, -4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.02)
V 16: Pos(4.5, -4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.48)
V 17: Pos(4.5, -4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.02)
V 18: Pos(4.68, 4.5, -0.02) Norm(1.0, 0.0, 0.0) UV(4.5, 0.02)
V 19: Pos(4.68, -4.5, 0.2) Norm(1.0, 0.0, 0.0) UV(-4.5, 0.48)
V 20: Pos(4.68, -4.5, -0.02) Norm(1.0, 0.0, 0.0) UV(-4.5, 0.02)
V 21: Pos(4.5, -4.5, -0.02) Norm(-1.0, 0.0, 0.0) UV(-4.5, 0.02)
V 22: Pos(4.5, 4.5, 0.2) Norm(-1.0, 0.0, 0.0) UV(4.5, 0.48)
V 23: Pos(4.5, 4.5, -0.02) Norm(-1.0, 0.0, 0.0) UV(4.5, 0.02)
V 24: Pos(4.68, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(4.68, 0.52)
V 25: Pos(-4.68, 4.68, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.68, 0.98)
V 26: Pos(-4.68, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(-4.68, 0.52)
V 27: Pos(4.68, 4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(4.68, 0.02)
V 28: Pos(-4.68, 4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(-4.68, 0.48)
V 29: Pos(-4.68, 4.5, -0.02) Norm(0.0, -1.0, 0.0) UV(-4.68, 0.02)
V 30: Pos(4.68, 4.68, -0.02) Norm(1.0, 0.0, 0.0) UV(4.68, 0.02)
V 31: Pos(4.68, 4.5, 0.2) Norm(1.0, 0.0, 0.0) UV(4.68, 0.48)
V 32: Pos(4.68, 4.5, -0.02) Norm(1.0, 0.0, 0.0) UV(4.68, 0.02)
V 33: Pos(-4.68, 4.68, -0.02) Norm(0.0, 1.0, 0.0) UV(-4.68, 0.02)
V 34: Pos(4.68, 4.68, 0.2) Norm(0.0, 1.0, 0.0) UV(4.68, 0.48)
V 35: Pos(4.68, 4.68, -0.02) Norm(0.0, 1.0, 0.0) UV(4.68, 0.02)
V 36: Pos(-4.68, 4.5, -0.02) Norm(-1.0, 0.0, 0.0) UV(-4.68, 0.02)
V 37: Pos(-4.68, 4.68, 0.2) Norm(-1.0, 0.0, 0.0) UV(-4.68, 0.48)
V 38: Pos(-4.68, 4.68, -0.02) Norm(-1.0, 0.0, 0.0) UV(-4.68, 0.02)
V 39: Pos(-4.5, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(4.5, 0.98)
V 40: Pos(-4.5, -4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.48)
V 41: Pos(-4.5, 4.5, 0.2) Norm(1.0, 0.0, 0.0) UV(4.5, 0.48)
V 42: Pos(-4.68, -4.5, 0.2) Norm(-1.0, 0.0, 0.0) UV(-4.5, 0.48)
V 43: Pos(4.68, 4.5, 0.2) Norm(0.0, 0.0, 1.0) UV(4.5, 0.98)
V 44: Pos(4.68, -4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(-4.5, 0.48)
V 45: Pos(4.68, 4.5, 0.2) Norm(1.0, 0.0, 0.0) UV(4.5, 0.48)
V 46: Pos(4.5, -4.5, 0.2) Norm(-1.0, 0.0, 0.0) UV(-4.5, 0.48)
V 47: Pos(4.68, 4.68, 0.2) Norm(0.0, 0.0, 1.0) UV(4.68, 0.98)
V 48: Pos(4.68, 4.5, 0.2) Norm(0.0, -1.0, 0.0) UV(4.68, 0.48)
V 49: Pos(4.68, 4.68, 0.2) Norm(1.0, 0.0, 0.0) UV(4.68, 0.48)
V 50: Pos(-4.68, 4.68, 0.2) Norm(0.0, 1.0, 0.0) UV(-4.68, 0.48)
V 51: Pos(-4.68, 4.5, 0.2) Norm(-1.0, 0.0, 0.0) UV(-4.68, 0.48)
===Triangles (Indices): 26
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 33 34 35
Tri: 36 37 38
Tri: 0 39 1
Tri: 3 40 4
Tri: 6 41 7
Tri: 9 42 10
Tri: 12 43 13
Tri: 15 44 16
Tri: 18 45 19
Tri: 21 46 22
Tri: 24 47 25
Tri: 27 48 28
Tri: 30 49 31
Tri: 33 50 34
Tri: 36 51 37
Binary file not shown.
Binary file not shown.
+231
View File
@@ -0,0 +1,231 @@
===Vertices (Split by UV/Normal): 148
V 0: Pos(-1.45, -1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(-0.90625, -1.09375)
V 1: Pos(-1.75, -1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(-1.09375, -0.90625)
V 2: Pos(-1.75, -1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(-1.09375, -1.09375)
V 3: Pos(-1.45, -1.75, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, -0.90625)
V 4: Pos(-1.75, -1.75, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, -1.09375)
V 5: Pos(-1.75, -1.75, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, -1.09375)
V 6: Pos(-1.45, -1.45, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, -0.90625)
V 7: Pos(-1.45, -1.75, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, -1.09375)
V 8: Pos(-1.45, -1.75, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, -1.09375)
V 9: Pos(-1.75, -1.45, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, -1.09375)
V 10: Pos(-1.45, -1.45, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, -0.90625)
V 11: Pos(-1.45, -1.45, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, -0.90625)
V 12: Pos(-1.75, -1.75, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, -1.09375)
V 13: Pos(-1.75, -1.45, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, -0.90625)
V 14: Pos(-1.75, -1.45, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, -0.90625)
V 15: Pos(-1.45, 1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(-0.90625, 0.90625)
V 16: Pos(-1.75, 1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(-1.09375, 1.09375)
V 17: Pos(-1.75, 1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(-1.09375, 0.90625)
V 18: Pos(-1.45, 1.45, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, -0.90625)
V 19: Pos(-1.75, 1.45, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, -1.09375)
V 20: Pos(-1.75, 1.45, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, -1.09375)
V 21: Pos(-1.45, 1.75, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, 1.09375)
V 22: Pos(-1.45, 1.45, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, 0.90625)
V 23: Pos(-1.45, 1.45, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, 0.90625)
V 24: Pos(-1.75, 1.75, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, -1.09375)
V 25: Pos(-1.45, 1.75, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, -0.90625)
V 26: Pos(-1.45, 1.75, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, -0.90625)
V 27: Pos(-1.75, 1.45, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 0.90625)
V 28: Pos(-1.75, 1.75, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, 1.09375)
V 29: Pos(-1.75, 1.75, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 1.09375)
V 30: Pos(1.75, -1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(1.09375, -1.09375)
V 31: Pos(1.45, -1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(0.90625, -0.90625)
V 32: Pos(1.45, -1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(0.90625, -1.09375)
V 33: Pos(1.75, -1.75, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, 1.09375)
V 34: Pos(1.45, -1.75, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, 0.90625)
V 35: Pos(1.45, -1.75, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, 0.90625)
V 36: Pos(1.75, -1.45, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, -0.90625)
V 37: Pos(1.75, -1.75, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, -1.09375)
V 38: Pos(1.75, -1.75, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, -1.09375)
V 39: Pos(1.45, -1.45, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, 0.90625)
V 40: Pos(1.75, -1.45, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, 1.09375)
V 41: Pos(1.75, -1.45, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, 1.09375)
V 42: Pos(1.45, -1.75, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, -1.09375)
V 43: Pos(1.45, -1.45, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, -0.90625)
V 44: Pos(1.45, -1.45, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, -0.90625)
V 45: Pos(1.75, 1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(1.09375, 0.90625)
V 46: Pos(1.45, 1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(0.90625, 1.09375)
V 47: Pos(1.45, 1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(0.90625, 0.90625)
V 48: Pos(1.75, 1.45, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, 1.09375)
V 49: Pos(1.45, 1.45, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, 0.90625)
V 50: Pos(1.45, 1.45, 0.0) Norm(0.0, -1.0, 0.0) UV(0.0, 0.90625)
V 51: Pos(1.75, 1.75, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, 1.09375)
V 52: Pos(1.75, 1.45, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, 0.90625)
V 53: Pos(1.75, 1.45, 0.0) Norm(1.0, 0.0, 0.0) UV(0.0, 0.90625)
V 54: Pos(1.45, 1.75, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, 0.90625)
V 55: Pos(1.75, 1.75, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, 1.09375)
V 56: Pos(1.75, 1.75, 0.0) Norm(0.0, 1.0, 0.0) UV(0.0, 1.09375)
V 57: Pos(1.45, 1.45, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 0.90625)
V 58: Pos(1.45, 1.75, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, 1.09375)
V 59: Pos(1.45, 1.75, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 1.09375)
V 60: Pos(1.8, 1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(1.125, 0.875)
V 61: Pos(-1.8, 1.8, 2.6) Norm(0.0, 0.0, 1.0) UV(-1.125, 1.125)
V 62: Pos(-1.8, 1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(-1.125, 0.875)
V 63: Pos(1.8, 1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(1.125, 1.375)
V 64: Pos(-1.8, 1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.625)
V 65: Pos(-1.8, 1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.375)
V 66: Pos(1.8, 1.8, 2.2) Norm(1.0, 0.0, 0.0) UV(1.125, 1.375)
V 67: Pos(1.8, 1.4, 2.6) Norm(1.0, 0.0, 0.0) UV(0.875, 1.625)
V 68: Pos(1.8, 1.4, 2.2) Norm(1.0, 0.0, 0.0) UV(0.875, 1.375)
V 69: Pos(-1.8, 1.8, 2.2) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.375)
V 70: Pos(1.8, 1.8, 2.6) Norm(0.0, 1.0, 0.0) UV(1.125, 1.625)
V 71: Pos(1.8, 1.8, 2.2) Norm(0.0, 1.0, 0.0) UV(1.125, 1.375)
V 72: Pos(-1.8, 1.4, 2.2) Norm(-1.0, 0.0, 0.0) UV(0.875, 1.375)
V 73: Pos(-1.8, 1.8, 2.6) Norm(-1.0, 0.0, 0.0) UV(1.125, 1.625)
V 74: Pos(-1.8, 1.8, 2.2) Norm(-1.0, 0.0, 0.0) UV(1.125, 1.375)
V 75: Pos(1.8, -1.8, 2.6) Norm(0.0, 0.0, 1.0) UV(1.125, -1.125)
V 76: Pos(-1.8, -1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(-1.125, -0.875)
V 77: Pos(-1.8, -1.8, 2.6) Norm(0.0, 0.0, 1.0) UV(-1.125, -1.125)
V 78: Pos(1.8, -1.8, 2.2) Norm(0.0, -1.0, 0.0) UV(1.125, 1.375)
V 79: Pos(-1.8, -1.8, 2.6) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.625)
V 80: Pos(-1.8, -1.8, 2.2) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.375)
V 81: Pos(1.8, -1.4, 2.2) Norm(1.0, 0.0, 0.0) UV(-0.875, 1.375)
V 82: Pos(1.8, -1.8, 2.6) Norm(1.0, 0.0, 0.0) UV(-1.125, 1.625)
V 83: Pos(1.8, -1.8, 2.2) Norm(1.0, 0.0, 0.0) UV(-1.125, 1.375)
V 84: Pos(-1.8, -1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.375)
V 85: Pos(1.8, -1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(1.125, 1.625)
V 86: Pos(1.8, -1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(1.125, 1.375)
V 87: Pos(-1.8, -1.8, 2.2) Norm(-1.0, 0.0, 0.0) UV(-1.125, 1.375)
V 88: Pos(-1.8, -1.4, 2.6) Norm(-1.0, 0.0, 0.0) UV(-0.875, 1.625)
V 89: Pos(-1.8, -1.4, 2.2) Norm(-1.0, 0.0, 0.0) UV(-0.875, 1.375)
V 90: Pos(-1.4, -1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(-0.875, -0.875)
V 91: Pos(-1.4, -1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(-0.875, 1.375)
V 92: Pos(-1.8, -1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.625)
V 93: Pos(-1.8, -1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(-1.125, 1.375)
V 94: Pos(-1.4, 1.4, 2.2) Norm(1.0, 0.0, 0.0) UV(0.875, 1.375)
V 95: Pos(-1.4, -1.4, 2.6) Norm(1.0, 0.0, 0.0) UV(-0.875, 1.625)
V 96: Pos(-1.4, -1.4, 2.2) Norm(1.0, 0.0, 0.0) UV(-0.875, 1.375)
V 97: Pos(-1.8, 1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.375)
V 98: Pos(-1.4, 1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(-0.875, 1.625)
V 99: Pos(-1.4, 1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(-0.875, 1.375)
V 100: Pos(-1.8, 1.4, 2.6) Norm(-1.0, 0.0, 0.0) UV(0.875, 1.625)
V 101: Pos(1.8, -1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(1.125, -0.875)
V 102: Pos(1.4, 1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(0.875, 0.875)
V 103: Pos(1.4, -1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(0.875, -0.875)
V 104: Pos(1.8, -1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(1.125, 1.375)
V 105: Pos(1.4, -1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(0.875, 1.625)
V 106: Pos(1.4, -1.4, 2.2) Norm(0.0, -1.0, 0.0) UV(0.875, 1.375)
V 107: Pos(1.8, -1.4, 2.6) Norm(1.0, 0.0, 0.0) UV(-0.875, 1.625)
V 108: Pos(1.4, 1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(0.875, 1.375)
V 109: Pos(1.8, 1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(1.125, 1.625)
V 110: Pos(1.8, 1.4, 2.2) Norm(0.0, 1.0, 0.0) UV(1.125, 1.375)
V 111: Pos(1.4, -1.4, 2.2) Norm(-1.0, 0.0, 0.0) UV(-0.875, 1.375)
V 112: Pos(1.4, 1.4, 2.6) Norm(-1.0, 0.0, 0.0) UV(0.875, 1.625)
V 113: Pos(1.4, 1.4, 2.2) Norm(-1.0, 0.0, 0.0) UV(0.875, 1.375)
V 114: Pos(-1.45, -1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(-0.90625, -0.90625)
V 115: Pos(-1.45, -1.75, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, -0.90625)
V 116: Pos(-1.45, -1.45, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, -0.90625)
V 117: Pos(-1.75, -1.45, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, -1.09375)
V 118: Pos(-1.75, -1.75, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, -1.09375)
V 119: Pos(-1.45, 1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(-0.90625, 1.09375)
V 120: Pos(-1.45, 1.45, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, -0.90625)
V 121: Pos(-1.45, 1.75, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, 1.09375)
V 122: Pos(-1.75, 1.75, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, -1.09375)
V 123: Pos(-1.75, 1.45, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, 0.90625)
V 124: Pos(1.75, -1.45, 2.55) Norm(0.0, 0.0, 1.0) UV(1.09375, -0.90625)
V 125: Pos(1.75, -1.75, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, 1.09375)
V 126: Pos(1.75, -1.45, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, -0.90625)
V 127: Pos(1.45, -1.45, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, 0.90625)
V 128: Pos(1.45, -1.75, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, -1.09375)
V 129: Pos(1.75, 1.75, 2.55) Norm(0.0, 0.0, 1.0) UV(1.09375, 1.09375)
V 130: Pos(1.75, 1.45, 2.55) Norm(0.0, -1.0, 0.0) UV(1.59375, 1.09375)
V 131: Pos(1.75, 1.75, 2.55) Norm(1.0, 0.0, 0.0) UV(1.59375, 1.09375)
V 132: Pos(1.45, 1.75, 2.55) Norm(0.0, 1.0, 0.0) UV(1.59375, 0.90625)
V 133: Pos(1.45, 1.45, 2.55) Norm(-1.0, 0.0, 0.0) UV(1.59375, 0.90625)
V 134: Pos(1.8, 1.8, 2.6) Norm(0.0, 0.0, 1.0) UV(1.125, 1.125)
V 135: Pos(1.8, 1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(1.125, 1.625)
V 136: Pos(1.8, 1.8, 2.6) Norm(1.0, 0.0, 0.0) UV(1.125, 1.625)
V 137: Pos(-1.8, 1.8, 2.6) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.625)
V 138: Pos(1.8, -1.8, 2.6) Norm(0.0, -1.0, 0.0) UV(1.125, 1.625)
V 139: Pos(-1.8, -1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.625)
V 140: Pos(-1.8, -1.8, 2.6) Norm(-1.0, 0.0, 0.0) UV(-1.125, 1.625)
V 141: Pos(-1.4, 1.4, 2.6) Norm(0.0, 0.0, 1.0) UV(-0.875, 0.875)
V 142: Pos(-1.4, -1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(-0.875, 1.625)
V 143: Pos(-1.4, 1.4, 2.6) Norm(1.0, 0.0, 0.0) UV(0.875, 1.625)
V 144: Pos(-1.8, 1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(-1.125, 1.625)
V 145: Pos(1.8, -1.4, 2.6) Norm(0.0, -1.0, 0.0) UV(1.125, 1.625)
V 146: Pos(1.4, 1.4, 2.6) Norm(0.0, 1.0, 0.0) UV(0.875, 1.625)
V 147: Pos(1.4, -1.4, 2.6) Norm(-1.0, 0.0, 0.0) UV(-0.875, 1.625)
===Triangles (Indices): 80
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 33 34 35
Tri: 36 37 38
Tri: 39 40 41
Tri: 42 43 44
Tri: 45 46 47
Tri: 48 49 50
Tri: 51 52 53
Tri: 54 55 56
Tri: 57 58 59
Tri: 60 61 62
Tri: 63 64 65
Tri: 66 67 68
Tri: 69 70 71
Tri: 72 73 74
Tri: 75 76 77
Tri: 78 79 80
Tri: 81 82 83
Tri: 84 85 86
Tri: 87 88 89
Tri: 90 62 76
Tri: 91 92 93
Tri: 94 95 96
Tri: 97 98 99
Tri: 89 100 72
Tri: 101 102 103
Tri: 104 105 106
Tri: 68 107 81
Tri: 108 109 110
Tri: 111 112 113
Tri: 0 114 1
Tri: 3 115 4
Tri: 6 116 7
Tri: 9 117 10
Tri: 12 118 13
Tri: 15 119 16
Tri: 18 120 19
Tri: 21 121 22
Tri: 24 122 25
Tri: 27 123 28
Tri: 30 124 31
Tri: 33 125 34
Tri: 36 126 37
Tri: 39 127 40
Tri: 42 128 43
Tri: 45 129 46
Tri: 48 130 49
Tri: 51 131 52
Tri: 54 132 55
Tri: 57 133 58
Tri: 60 134 61
Tri: 63 135 64
Tri: 66 136 67
Tri: 69 137 70
Tri: 72 100 73
Tri: 75 101 76
Tri: 78 138 79
Tri: 81 107 82
Tri: 84 139 85
Tri: 87 140 88
Tri: 90 141 62
Tri: 91 142 92
Tri: 94 143 95
Tri: 97 144 98
Tri: 89 88 100
Tri: 101 60 102
Tri: 104 145 105
Tri: 68 67 107
Tri: 108 146 109
Tri: 111 147 112
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
===Vertices (Split by UV/Normal): 4
V 0: Pos(4.5, -4.68, -0.01) Norm(0.0, 0.0, 1.0) UV(5.625, -5.85)
V 1: Pos(-4.5, 4.5, -0.01) Norm(0.0, 0.0, 1.0) UV(-5.625, 5.625)
V 2: Pos(-4.5, -4.68, -0.01) Norm(0.0, 0.0, 1.0) UV(-5.625, -5.85)
V 3: Pos(4.5, 4.5, -0.01) Norm(0.0, 0.0, 1.0) UV(5.625, 5.625)
===Triangles (Indices): 2
Tri: 0 1 2
Tri: 0 3 1
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
===Vertices (Split by UV/Normal): 4
V 0: Pos(30.0, -7.68, -0.01) Norm(0.0, 0.0, 1.0) UV(60.0, -15.36)
V 1: Pos(-30.0, -4.68, -0.01) Norm(0.0, 0.0, 1.0) UV(-60.0, -9.36)
V 2: Pos(-30.0, -7.68, -0.01) Norm(0.0, 0.0, 1.0) UV(-60.0, -15.36)
V 3: Pos(30.0, -4.68, -0.01) Norm(0.0, 0.0, 1.0) UV(60.0, -9.36)
===Triangles (Indices): 2
Tri: 0 1 2
Tri: 0 3 1
@@ -0,0 +1,9 @@
===Vertices (Split by UV/Normal): 4
V 0: Pos(3.15, -5.08, 0.0) Norm(0.0, 0.0, 1.0) UV(1.0, 0.0)
V 1: Pos(-0.15, -7.28, 0.0) Norm(0.0, 0.0, 1.0) UV(0.0, 1.0)
V 2: Pos(3.15, -7.28, 0.0) Norm(0.0, 0.0, 1.0) UV(0.0, 0.0)
V 3: Pos(-0.15, -5.08, 0.0) Norm(0.0, 0.0, 1.0) UV(1.0, 1.0)
===Triangles (Indices): 2
Tri: 0 1 2
Tri: 0 3 1
+303
View File
@@ -0,0 +1,303 @@
===Vertices (Split by UV/Normal): 192
V 0: Pos(0.021213, 0.021213, 0.0) Norm(0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 1: Pos(0.03, 0.0, 1.75) Norm(0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 2: Pos(0.03, 0.0, 0.0) Norm(0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 3: Pos(0.0, 0.03, 0.0) Norm(0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 4: Pos(0.021213, 0.021213, 1.75) Norm(0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 5: Pos(0.021213, 0.021213, 0.0) Norm(0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 6: Pos(-0.021213, 0.021213, 0.0) Norm(-0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 7: Pos(0.0, 0.03, 1.75) Norm(-0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 8: Pos(0.0, 0.03, 0.0) Norm(-0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 9: Pos(-0.03, 0.0, 0.0) Norm(-0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 10: Pos(-0.021213, 0.021213, 1.75) Norm(-0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 11: Pos(-0.021213, 0.021213, 0.0) Norm(-0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 12: Pos(-0.021213, -0.021213, 0.0) Norm(-0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 13: Pos(-0.03, 0.0, 1.75) Norm(-0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 14: Pos(-0.03, 0.0, 0.0) Norm(-0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 15: Pos(0.0, -0.03, 0.0) Norm(-0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 16: Pos(-0.021213, -0.021213, 1.75) Norm(-0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 17: Pos(-0.021213, -0.021213, 0.0) Norm(-0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 18: Pos(0.021213, -0.021213, 0.0) Norm(0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 19: Pos(0.0, -0.03, 1.75) Norm(0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 20: Pos(0.0, -0.03, 0.0) Norm(0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 21: Pos(0.03, 0.0, 0.0) Norm(0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 22: Pos(0.021213, -0.021213, 1.75) Norm(0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 23: Pos(0.021213, -0.021213, 0.0) Norm(0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 24: Pos(0.133939, -0.05, 2.123358) Norm(0.0, -1.0, 0.0) UV(0.515636, 0.714526)
V 25: Pos(-0.323358, -0.05, 1.933939) Norm(0.0, -1.0, 0.0) UV(0.035474, 0.515636)
V 26: Pos(-0.133939, -0.05, 1.476642) Norm(0.0, -1.0, 0.0) UV(0.234364, 0.035474)
V 27: Pos(0.323358, -0.03, 1.933939) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 28: Pos(0.35, -0.05, 1.8) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 29: Pos(0.35, -0.03, 1.8) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 30: Pos(0.247487, -0.03, 2.047487) Norm(0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 31: Pos(0.323358, -0.05, 1.933939) Norm(0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 32: Pos(0.323358, -0.03, 1.933939) Norm(0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 33: Pos(0.133939, -0.03, 2.123358) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 34: Pos(0.247487, -0.05, 2.047487) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 35: Pos(0.247487, -0.03, 2.047487) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 36: Pos(0.0, -0.03, 2.15) Norm(0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 37: Pos(0.133939, -0.05, 2.123358) Norm(0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 38: Pos(0.133939, -0.03, 2.123358) Norm(0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 39: Pos(-0.133939, -0.03, 2.123358) Norm(-0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 40: Pos(0.0, -0.05, 2.15) Norm(-0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 41: Pos(0.0, -0.03, 2.15) Norm(-0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 42: Pos(-0.247487, -0.03, 2.047487) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 43: Pos(-0.133939, -0.05, 2.123358) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 44: Pos(-0.133939, -0.03, 2.123358) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 45: Pos(-0.323358, -0.03, 1.933939) Norm(-0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 46: Pos(-0.247487, -0.05, 2.047487) Norm(-0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 47: Pos(-0.247487, -0.03, 2.047487) Norm(-0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 48: Pos(-0.35, -0.03, 1.8) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 49: Pos(-0.323358, -0.05, 1.933939) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 50: Pos(-0.323358, -0.03, 1.933939) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 51: Pos(-0.323358, -0.03, 1.666061) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 52: Pos(-0.35, -0.05, 1.8) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 53: Pos(-0.35, -0.03, 1.8) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 54: Pos(-0.247487, -0.03, 1.552513) Norm(-0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 55: Pos(-0.323358, -0.05, 1.666061) Norm(-0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 56: Pos(-0.323358, -0.03, 1.666061) Norm(-0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 57: Pos(-0.133939, -0.03, 1.476642) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 58: Pos(-0.247487, -0.05, 1.552513) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 59: Pos(-0.247487, -0.03, 1.552513) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 60: Pos(0.0, -0.03, 1.45) Norm(-0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 61: Pos(-0.133939, -0.05, 1.476642) Norm(-0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 62: Pos(-0.133939, -0.03, 1.476642) Norm(-0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 63: Pos(0.133939, -0.03, 1.476642) Norm(0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 64: Pos(0.0, -0.05, 1.45) Norm(0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 65: Pos(0.0, -0.03, 1.45) Norm(0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 66: Pos(0.247487, -0.03, 1.552513) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 67: Pos(0.133939, -0.05, 1.476642) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 68: Pos(0.133939, -0.03, 1.476642) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 69: Pos(0.323358, -0.03, 1.666061) Norm(0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 70: Pos(0.247487, -0.05, 1.552513) Norm(0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 71: Pos(0.247487, -0.03, 1.552513) Norm(0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 72: Pos(0.35, -0.03, 1.8) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 73: Pos(0.323358, -0.05, 1.666061) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 74: Pos(0.323358, -0.03, 1.666061) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 75: Pos(0.35, 0.05, 1.8) Norm(0.0, 1.0, 0.0) UV(0.0075, 0.375)
V 76: Pos(0.0, 0.05, 1.45) Norm(0.0, 1.0, 0.0) UV(0.375, 0.0075)
V 77: Pos(-0.35, 0.05, 1.8) Norm(0.0, 1.0, 0.0) UV(0.7425, 0.375)
V 78: Pos(0.323358, 0.03, 1.933939) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 79: Pos(0.35, 0.05, 1.8) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 80: Pos(0.35, 0.03, 1.8) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 81: Pos(0.247487, 0.03, 2.047487) Norm(-0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 82: Pos(0.323358, 0.05, 1.933939) Norm(-0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 83: Pos(0.323358, 0.03, 1.933939) Norm(-0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 84: Pos(0.133939, 0.03, 2.123358) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 85: Pos(0.247487, 0.05, 2.047487) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 86: Pos(0.247487, 0.03, 2.047487) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 87: Pos(0.0, 0.03, 2.15) Norm(-0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 88: Pos(0.133939, 0.05, 2.123358) Norm(-0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 89: Pos(0.133939, 0.03, 2.123358) Norm(-0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 90: Pos(-0.133939, 0.03, 2.123358) Norm(0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 91: Pos(0.0, 0.05, 2.15) Norm(0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 92: Pos(0.0, 0.03, 2.15) Norm(0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 93: Pos(-0.247487, 0.03, 2.047487) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 94: Pos(-0.133939, 0.05, 2.123358) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 95: Pos(-0.133939, 0.03, 2.123358) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 96: Pos(-0.323358, 0.03, 1.933939) Norm(0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 97: Pos(-0.247487, 0.05, 2.047487) Norm(0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 98: Pos(-0.247487, 0.03, 2.047487) Norm(0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 99: Pos(-0.35, 0.03, 1.8) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 100: Pos(-0.323358, 0.05, 1.933939) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 101: Pos(-0.323358, 0.03, 1.933939) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 102: Pos(-0.323358, 0.03, 1.666061) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 103: Pos(-0.35, 0.05, 1.8) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 104: Pos(-0.35, 0.03, 1.8) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 105: Pos(-0.247487, 0.03, 1.552513) Norm(0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 106: Pos(-0.323358, 0.05, 1.666061) Norm(0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 107: Pos(-0.323358, 0.03, 1.666061) Norm(0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 108: Pos(-0.133939, 0.03, 1.476642) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 109: Pos(-0.247487, 0.05, 1.552513) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 110: Pos(-0.247487, 0.03, 1.552513) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 111: Pos(0.0, 0.03, 1.45) Norm(0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 112: Pos(-0.133939, 0.05, 1.476642) Norm(0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 113: Pos(-0.133939, 0.03, 1.476642) Norm(0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 114: Pos(0.133939, 0.03, 1.476642) Norm(-0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 115: Pos(0.0, 0.05, 1.45) Norm(-0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 116: Pos(0.0, 0.03, 1.45) Norm(-0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 117: Pos(0.247487, 0.03, 1.552513) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 118: Pos(0.133939, 0.05, 1.476642) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 119: Pos(0.133939, 0.03, 1.476642) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 120: Pos(0.323358, 0.03, 1.666061) Norm(-0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 121: Pos(0.247487, 0.05, 1.552513) Norm(-0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 122: Pos(0.247487, 0.03, 1.552513) Norm(-0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 123: Pos(0.35, 0.03, 1.8) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 124: Pos(0.323358, 0.05, 1.666061) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 125: Pos(0.323358, 0.03, 1.666061) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 126: Pos(0.021213, 0.021213, 1.75) Norm(0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 127: Pos(0.0, 0.03, 1.75) Norm(0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 128: Pos(-0.021213, 0.021213, 1.75) Norm(-0.382683, 0.92388, 0.0) UV(0.761719, 0.011719)
V 129: Pos(-0.03, 0.0, 1.75) Norm(-0.92388, 0.382683, 0.0) UV(0.761719, 0.011719)
V 130: Pos(-0.021213, -0.021213, 1.75) Norm(-0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 131: Pos(0.0, -0.03, 1.75) Norm(-0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 132: Pos(0.021213, -0.021213, 1.75) Norm(0.382683, -0.92388, 0.0) UV(0.761719, 0.011719)
V 133: Pos(0.03, 0.0, 1.75) Norm(0.92388, -0.382683, 0.0) UV(0.761719, 0.011719)
V 134: Pos(0.323358, -0.05, 1.666061) Norm(0.0, -1.0, 0.0) UV(0.714526, 0.234364)
V 135: Pos(0.35, -0.05, 1.8) Norm(0.0, -1.0, 0.0) UV(0.7425, 0.375)
V 136: Pos(0.323358, -0.05, 1.933939) Norm(0.0, -1.0, 0.0) UV(0.714526, 0.515636)
V 137: Pos(0.247487, -0.05, 2.047487) Norm(0.0, -1.0, 0.0) UV(0.634862, 0.634862)
V 138: Pos(0.0, -0.05, 2.15) Norm(0.0, -1.0, 0.0) UV(0.375, 0.7425)
V 139: Pos(-0.133939, -0.05, 2.123358) Norm(0.0, -1.0, 0.0) UV(0.234364, 0.714526)
V 140: Pos(-0.247487, -0.05, 2.047487) Norm(0.0, -1.0, 0.0) UV(0.115138, 0.634862)
V 141: Pos(-0.35, -0.05, 1.8) Norm(0.0, -1.0, 0.0) UV(0.0075, 0.375)
V 142: Pos(-0.323358, -0.05, 1.666061) Norm(0.0, -1.0, 0.0) UV(0.035474, 0.234364)
V 143: Pos(-0.247487, -0.05, 1.552513) Norm(0.0, -1.0, 0.0) UV(0.115138, 0.115138)
V 144: Pos(0.0, -0.05, 1.45) Norm(0.0, -1.0, 0.0) UV(0.375, 0.0075)
V 145: Pos(0.133939, -0.05, 1.476642) Norm(0.0, -1.0, 0.0) UV(0.515636, 0.035474)
V 146: Pos(0.247487, -0.05, 1.552513) Norm(0.0, -1.0, 0.0) UV(0.634862, 0.115138)
V 147: Pos(0.323358, -0.05, 1.933939) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 148: Pos(0.247487, -0.05, 2.047487) Norm(0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 149: Pos(0.133939, -0.05, 2.123358) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 150: Pos(0.0, -0.05, 2.15) Norm(0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 151: Pos(-0.133939, -0.05, 2.123358) Norm(-0.195091, 0.0, 0.980785) UV(0.761719, 0.011719)
V 152: Pos(-0.247487, -0.05, 2.047487) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 153: Pos(-0.323358, -0.05, 1.933939) Norm(-0.831469, 0.0, 0.555571) UV(0.761719, 0.011719)
V 154: Pos(-0.35, -0.05, 1.8) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 155: Pos(-0.323358, -0.05, 1.666061) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 156: Pos(-0.247487, -0.05, 1.552513) Norm(-0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 157: Pos(-0.133939, -0.05, 1.476642) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 158: Pos(0.0, -0.05, 1.45) Norm(-0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 159: Pos(0.133939, -0.05, 1.476642) Norm(0.19509, 0.0, -0.980785) UV(0.761719, 0.011719)
V 160: Pos(0.247487, -0.05, 1.552513) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 161: Pos(0.323358, -0.05, 1.666061) Norm(0.83147, 0.0, -0.55557) UV(0.761719, 0.011719)
V 162: Pos(0.35, -0.05, 1.8) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 163: Pos(0.323358, 0.05, 1.666061) Norm(0.0, 1.0, 0.0) UV(0.035474, 0.234364)
V 164: Pos(0.247487, 0.05, 1.552513) Norm(0.0, 1.0, 0.0) UV(0.115138, 0.115138)
V 165: Pos(0.133939, 0.05, 1.476642) Norm(0.0, 1.0, 0.0) UV(0.234364, 0.035474)
V 166: Pos(-0.133939, 0.05, 1.476642) Norm(0.0, 1.0, 0.0) UV(0.515636, 0.035474)
V 167: Pos(-0.247487, 0.05, 1.552513) Norm(0.0, 1.0, 0.0) UV(0.634862, 0.115138)
V 168: Pos(-0.323358, 0.05, 1.666061) Norm(0.0, 1.0, 0.0) UV(0.714526, 0.234364)
V 169: Pos(-0.323358, 0.05, 1.933939) Norm(0.0, 1.0, 0.0) UV(0.714526, 0.515636)
V 170: Pos(-0.247487, 0.05, 2.047487) Norm(0.0, 1.0, 0.0) UV(0.634862, 0.634862)
V 171: Pos(-0.133939, 0.05, 2.123358) Norm(0.0, 1.0, 0.0) UV(0.515636, 0.714526)
V 172: Pos(0.0, 0.05, 2.15) Norm(0.0, 1.0, 0.0) UV(0.375, 0.7425)
V 173: Pos(0.133939, 0.05, 2.123358) Norm(0.0, 1.0, 0.0) UV(0.234364, 0.714526)
V 174: Pos(0.247487, 0.05, 2.047487) Norm(0.0, 1.0, 0.0) UV(0.115138, 0.634862)
V 175: Pos(0.323358, 0.05, 1.933939) Norm(0.0, 1.0, 0.0) UV(0.035474, 0.515636)
V 176: Pos(0.323358, 0.05, 1.933939) Norm(-0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 177: Pos(0.247487, 0.05, 2.047487) Norm(-0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 178: Pos(0.133939, 0.05, 2.123358) Norm(-0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 179: Pos(0.0, 0.05, 2.15) Norm(-0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 180: Pos(-0.133939, 0.05, 2.123358) Norm(0.195091, 0.0, -0.980785) UV(0.761719, 0.011719)
V 181: Pos(-0.247487, 0.05, 2.047487) Norm(0.555571, 0.0, -0.831469) UV(0.761719, 0.011719)
V 182: Pos(-0.323358, 0.05, 1.933939) Norm(0.831469, 0.0, -0.555571) UV(0.761719, 0.011719)
V 183: Pos(-0.35, 0.05, 1.8) Norm(0.980785, 0.0, -0.19509) UV(0.761719, 0.011719)
V 184: Pos(-0.323358, 0.05, 1.666061) Norm(0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
V 185: Pos(-0.247487, 0.05, 1.552513) Norm(0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 186: Pos(-0.133939, 0.05, 1.476642) Norm(0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 187: Pos(0.0, 0.05, 1.45) Norm(0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 188: Pos(0.133939, 0.05, 1.476642) Norm(-0.19509, 0.0, 0.980785) UV(0.761719, 0.011719)
V 189: Pos(0.247487, 0.05, 1.552513) Norm(-0.555571, 0.0, 0.831469) UV(0.761719, 0.011719)
V 190: Pos(0.323358, 0.05, 1.666061) Norm(-0.83147, 0.0, 0.55557) UV(0.761719, 0.011719)
V 191: Pos(0.35, 0.05, 1.8) Norm(-0.980785, 0.0, 0.19509) UV(0.761719, 0.011719)
===Triangles (Indices): 108
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 33 34 35
Tri: 36 37 38
Tri: 39 40 41
Tri: 42 43 44
Tri: 45 46 47
Tri: 48 49 50
Tri: 51 52 53
Tri: 54 55 56
Tri: 57 58 59
Tri: 60 61 62
Tri: 63 64 65
Tri: 66 67 68
Tri: 69 70 71
Tri: 72 73 74
Tri: 75 76 77
Tri: 78 79 80
Tri: 81 82 83
Tri: 84 85 86
Tri: 87 88 89
Tri: 90 91 92
Tri: 93 94 95
Tri: 96 97 98
Tri: 99 100 101
Tri: 102 103 104
Tri: 105 106 107
Tri: 108 109 110
Tri: 111 112 113
Tri: 114 115 116
Tri: 117 118 119
Tri: 120 121 122
Tri: 123 124 125
Tri: 0 126 1
Tri: 3 127 4
Tri: 6 128 7
Tri: 9 129 10
Tri: 12 130 13
Tri: 15 131 16
Tri: 18 132 19
Tri: 21 133 22
Tri: 134 135 136
Tri: 136 137 134
Tri: 137 24 134
Tri: 24 138 139
Tri: 139 140 24
Tri: 140 25 24
Tri: 25 141 142
Tri: 142 143 25
Tri: 143 26 25
Tri: 26 144 134
Tri: 144 145 134
Tri: 145 146 134
Tri: 134 24 26
Tri: 27 147 28
Tri: 30 148 31
Tri: 33 149 34
Tri: 36 150 37
Tri: 39 151 40
Tri: 42 152 43
Tri: 45 153 46
Tri: 48 154 49
Tri: 51 155 52
Tri: 54 156 55
Tri: 57 157 58
Tri: 60 158 61
Tri: 63 159 64
Tri: 66 160 67
Tri: 69 161 70
Tri: 72 162 73
Tri: 75 163 164
Tri: 164 165 76
Tri: 76 166 167
Tri: 167 168 77
Tri: 77 169 170
Tri: 170 171 77
Tri: 171 172 77
Tri: 172 173 174
Tri: 174 175 75
Tri: 75 164 76
Tri: 76 167 77
Tri: 172 174 77
Tri: 174 75 77
Tri: 78 176 79
Tri: 81 177 82
Tri: 84 178 85
Tri: 87 179 88
Tri: 90 180 91
Tri: 93 181 94
Tri: 96 182 97
Tri: 99 183 100
Tri: 102 184 103
Tri: 105 185 106
Tri: 108 186 109
Tri: 111 187 112
Tri: 114 188 115
Tri: 117 189 118
Tri: 120 190 121
Tri: 123 191 124
Binary file not shown.
+69
View File
@@ -0,0 +1,69 @@
===Vertices (Split by UV/Normal): 44
V 0: Pos(0.0175, 0.006, 1.25) Norm(0.0, 0.0, 1.0) UV(0.769531, 0.011719)
V 1: Pos(-0.0175, 0.02525, 1.25) Norm(0.0, 0.0, 1.0) UV(0.769531, 0.011719)
V 2: Pos(-0.0175, 0.006, 1.25) Norm(0.0, 0.0, 1.0) UV(0.769531, 0.011719)
V 3: Pos(0.0175, 0.006, -0.1) Norm(0.0, -1.0, 0.0) UV(0.769531, 0.011719)
V 4: Pos(-0.0175, 0.006, 1.25) Norm(0.0, -1.0, 0.0) UV(0.769531, 0.011719)
V 5: Pos(-0.0175, 0.006, -0.1) Norm(0.0, -1.0, 0.0) UV(0.769531, 0.011719)
V 6: Pos(0.0175, 0.02525, -0.1) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 7: Pos(0.0175, 0.006, 1.25) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 8: Pos(0.0175, 0.006, -0.1) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 9: Pos(-0.0175, 0.02525, -0.1) Norm(0.0, 1.0, 0.0) UV(0.769531, 0.011719)
V 10: Pos(0.0175, 0.02525, 1.25) Norm(0.0, 1.0, 0.0) UV(0.769531, 0.011719)
V 11: Pos(0.0175, 0.02525, -0.1) Norm(0.0, 1.0, 0.0) UV(0.769531, 0.011719)
V 12: Pos(-0.0175, 0.006, -0.1) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 13: Pos(-0.0175, 0.02525, 1.25) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 14: Pos(-0.0175, 0.02525, -0.1) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 15: Pos(0.33, -0.006, 0.8) Norm(0.0, -1.0, 0.0) UV(0.753906, 0.003906)
V 16: Pos(-0.33, -0.006, 1.24) Norm(0.0, -1.0, 0.0) UV(0.003906, 0.509766)
V 17: Pos(-0.33, -0.006, 0.8) Norm(0.0, -1.0, 0.0) UV(0.003906, 0.003906)
V 18: Pos(0.33, 0.006, 1.24) Norm(0.0, 1.0, 0.0) UV(0.792969, 0.011719)
V 19: Pos(-0.33, 0.006, 0.8) Norm(0.0, 1.0, 0.0) UV(0.792969, 0.011719)
V 20: Pos(-0.33, 0.006, 1.24) Norm(0.0, 1.0, 0.0) UV(0.792969, 0.011719)
V 21: Pos(-0.33, 0.006, 0.8) Norm(0.0, 0.0, -1.0) UV(0.792969, 0.011719)
V 22: Pos(0.33, -0.006, 0.8) Norm(0.0, 0.0, -1.0) UV(0.792969, 0.011719)
V 23: Pos(-0.33, -0.006, 0.8) Norm(0.0, 0.0, -1.0) UV(0.792969, 0.011719)
V 24: Pos(0.33, 0.006, 0.8) Norm(1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 25: Pos(0.33, -0.006, 1.24) Norm(1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 26: Pos(0.33, -0.006, 0.8) Norm(1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 27: Pos(0.33, 0.006, 1.24) Norm(0.0, 0.0, 1.0) UV(0.792969, 0.011719)
V 28: Pos(-0.33, -0.006, 1.24) Norm(0.0, 0.0, 1.0) UV(0.792969, 0.011719)
V 29: Pos(0.33, -0.006, 1.24) Norm(0.0, 0.0, 1.0) UV(0.792969, 0.011719)
V 30: Pos(-0.33, 0.006, 1.24) Norm(-1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 31: Pos(-0.33, -0.006, 0.8) Norm(-1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 32: Pos(-0.33, -0.006, 1.24) Norm(-1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 33: Pos(0.0175, 0.02525, 1.25) Norm(0.0, 0.0, 1.0) UV(0.769531, 0.011719)
V 34: Pos(0.0175, 0.006, 1.25) Norm(0.0, -1.0, 0.0) UV(0.769531, 0.011719)
V 35: Pos(0.0175, 0.02525, 1.25) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 36: Pos(-0.0175, 0.02525, 1.25) Norm(0.0, 1.0, 0.0) UV(0.769531, 0.011719)
V 37: Pos(-0.0175, 0.006, 1.25) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.011719)
V 38: Pos(0.33, -0.006, 1.24) Norm(0.0, -1.0, 0.0) UV(0.753906, 0.509766)
V 39: Pos(0.33, 0.006, 0.8) Norm(0.0, 1.0, 0.0) UV(0.792969, 0.011719)
V 40: Pos(0.33, 0.006, 0.8) Norm(0.0, 0.0, -1.0) UV(0.792969, 0.011719)
V 41: Pos(0.33, 0.006, 1.24) Norm(1.0, 0.0, 0.0) UV(0.792969, 0.011719)
V 42: Pos(-0.33, 0.006, 1.24) Norm(0.0, 0.0, 1.0) UV(0.792969, 0.011719)
V 43: Pos(-0.33, 0.006, 0.8) Norm(-1.0, 0.0, 0.0) UV(0.792969, 0.011719)
===Triangles (Indices): 22
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 0 33 1
Tri: 3 34 4
Tri: 6 35 7
Tri: 9 36 10
Tri: 12 37 13
Tri: 15 38 16
Tri: 18 39 19
Tri: 21 40 22
Tri: 24 41 25
Tri: 27 42 28
Tri: 30 43 31
+111
View File
@@ -0,0 +1,111 @@
===Vertices (Split by UV/Normal): 72
V 0: Pos(0.62, -0.036384, -0.050012) Norm(0.0, -0.927184, 0.374607) UV(0.753906, 0.007812)
V 1: Pos(-0.62, 0.143427, 0.395036) Norm(0.0, -0.927184, 0.374607) UV(0.003906, 0.507812)
V 2: Pos(-0.62, -0.036384, -0.050012) Norm(0.0, -0.927184, 0.374607) UV(0.003906, 0.007812)
V 3: Pos(0.62, 0.143427, 0.395036) Norm(0.0, 0.374607, 0.927184) UV(0.769531, 0.023438)
V 4: Pos(-0.62, 0.171243, 0.383798) Norm(0.0, 0.374607, 0.927184) UV(0.769531, 0.023438)
V 5: Pos(-0.62, 0.143427, 0.395036) Norm(0.0, 0.374607, 0.927184) UV(0.769531, 0.023438)
V 6: Pos(0.62, -0.008569, -0.06125) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 7: Pos(0.62, 0.143427, 0.395036) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 8: Pos(0.62, -0.036384, -0.050012) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 9: Pos(-0.62, -0.008569, -0.06125) Norm(0.0, 0.927184, -0.374607) UV(0.769531, 0.023438)
V 10: Pos(0.62, 0.171243, 0.383798) Norm(0.0, 0.927184, -0.374607) UV(0.769531, 0.023438)
V 11: Pos(0.62, -0.008569, -0.06125) Norm(0.0, 0.927184, -0.374607) UV(0.769531, 0.023438)
V 12: Pos(-0.62, -0.036384, -0.050012) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 13: Pos(-0.62, 0.171243, 0.383798) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 14: Pos(-0.62, -0.008569, -0.06125) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 15: Pos(-0.62, -0.008569, -0.06125) Norm(0.0, -0.374606, -0.927184) UV(0.769531, 0.023438)
V 16: Pos(0.62, -0.036384, -0.050012) Norm(0.0, -0.374606, -0.927184) UV(0.769531, 0.023438)
V 17: Pos(-0.62, -0.036384, -0.050012) Norm(0.0, -0.374606, -0.927184) UV(0.769531, 0.023438)
V 18: Pos(-0.3867, 0.411154, -0.045784) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 19: Pos(-0.4317, 0.111154, 0.258977) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 20: Pos(-0.4317, 0.411154, -0.045784) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 21: Pos(-0.3867, 0.411154, -0.045784) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 22: Pos(-0.3867, 0.143223, 0.290545) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 23: Pos(-0.3867, 0.111154, 0.258977) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 24: Pos(-0.4317, 0.443223, -0.014216) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 25: Pos(-0.3867, 0.143223, 0.290545) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 26: Pos(-0.3867, 0.443223, -0.014216) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 27: Pos(-0.4317, 0.443223, -0.014216) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 28: Pos(-0.4317, 0.111154, 0.258977) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 29: Pos(-0.4317, 0.143223, 0.290545) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 30: Pos(-0.3867, 0.111154, 0.258977) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 31: Pos(-0.4317, 0.143223, 0.290545) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 32: Pos(-0.4317, 0.111154, 0.258977) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 33: Pos(-0.3867, 0.443223, -0.014216) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 34: Pos(-0.4317, 0.411154, -0.045784) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 35: Pos(-0.4317, 0.443223, -0.014216) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 36: Pos(0.4317, 0.411154, -0.045784) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 37: Pos(0.3867, 0.111154, 0.258977) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 38: Pos(0.3867, 0.411154, -0.045784) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 39: Pos(0.4317, 0.411154, -0.045784) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 40: Pos(0.4317, 0.143223, 0.290545) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 41: Pos(0.4317, 0.111154, 0.258977) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 42: Pos(0.3867, 0.443223, -0.014216) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 43: Pos(0.4317, 0.143223, 0.290545) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 44: Pos(0.4317, 0.443223, -0.014216) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 45: Pos(0.3867, 0.443223, -0.014216) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 46: Pos(0.3867, 0.111154, 0.258977) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 47: Pos(0.3867, 0.143223, 0.290545) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 48: Pos(0.4317, 0.111154, 0.258977) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 49: Pos(0.3867, 0.143223, 0.290545) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 50: Pos(0.3867, 0.111154, 0.258977) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 51: Pos(0.4317, 0.443223, -0.014216) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 52: Pos(0.3867, 0.411154, -0.045784) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 53: Pos(0.3867, 0.443223, -0.014216) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 54: Pos(0.62, 0.143427, 0.395036) Norm(0.0, -0.927184, 0.374607) UV(0.753906, 0.507812)
V 55: Pos(0.62, 0.171243, 0.383798) Norm(0.0, 0.374607, 0.927184) UV(0.769531, 0.023438)
V 56: Pos(0.62, 0.171243, 0.383798) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 57: Pos(-0.62, 0.171243, 0.383798) Norm(0.0, 0.927184, -0.374607) UV(0.769531, 0.023438)
V 58: Pos(-0.62, 0.143427, 0.395036) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 59: Pos(0.62, -0.008569, -0.06125) Norm(0.0, -0.374606, -0.927184) UV(0.769531, 0.023438)
V 60: Pos(-0.3867, 0.111154, 0.258977) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 61: Pos(-0.3867, 0.443223, -0.014216) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 62: Pos(-0.4317, 0.143223, 0.290545) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 63: Pos(-0.4317, 0.411154, -0.045784) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 64: Pos(-0.3867, 0.143223, 0.290545) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 65: Pos(-0.3867, 0.411154, -0.045784) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
V 66: Pos(0.4317, 0.111154, 0.258977) Norm(0.0, -0.712652, -0.701518) UV(0.769531, 0.023438)
V 67: Pos(0.4317, 0.443223, -0.014216) Norm(1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 68: Pos(0.3867, 0.143223, 0.290545) Norm(0.0, 0.712652, 0.701518) UV(0.769531, 0.023438)
V 69: Pos(0.3867, 0.411154, -0.045784) Norm(-1.0, 0.0, 0.0) UV(0.769531, 0.023438)
V 70: Pos(0.4317, 0.143223, 0.290545) Norm(0.0, -0.701518, 0.712652) UV(0.769531, 0.023438)
V 71: Pos(0.4317, 0.411154, -0.045784) Norm(0.0, 0.701518, -0.712652) UV(0.769531, 0.023438)
===Triangles (Indices): 36
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 33 34 35
Tri: 36 37 38
Tri: 39 40 41
Tri: 42 43 44
Tri: 45 46 47
Tri: 48 49 50
Tri: 51 52 53
Tri: 0 54 1
Tri: 3 55 4
Tri: 6 56 7
Tri: 9 57 10
Tri: 12 58 13
Tri: 15 59 16
Tri: 18 60 19
Tri: 21 61 22
Tri: 24 62 25
Tri: 27 63 28
Tri: 30 64 31
Tri: 33 65 34
Tri: 36 66 37
Tri: 39 67 40
Tri: 42 68 43
Tri: 45 69 46
Tri: 48 70 49
Tri: 51 71 52
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+67
View File
@@ -0,0 +1,67 @@
===Vertices (Split by UV/Normal): 44
V 0: Pos(2.3, -2.3, 2.6) Norm(0.0, -0.948683, -0.316228) UV(0.854614, 0.905029)
V 1: Pos(-2.4, -2.4, 2.9) Norm(0.0, -0.948683, -0.316228) UV(0.125977, 0.951538)
V 2: Pos(-2.3, -2.3, 2.6) Norm(0.0, -0.948683, -0.316228) UV(0.141479, 0.905029)
V 3: Pos(2.4, -2.4, 2.9) Norm(0.0, -1.0, 0.0) UV(0.994141, 0.6014)
V 4: Pos(-2.4, -2.4, 2.96) Norm(0.0, -1.0, 0.0) UV(0.001953, 0.613802)
V 5: Pos(-2.4, -2.4, 2.9) Norm(0.0, -1.0, 0.0) UV(0.001953, 0.6014)
V 6: Pos(-2.4, -2.4, 2.96) Norm(0.0, -0.33035, 0.943858) UV(0.001953, 0.001953)
V 7: Pos(2.4, -2.4, 2.96) Norm(0.0, -0.33035, 0.943858) UV(0.994141, 0.001953)
V 8: Pos(0.0, 0.0, 3.8) Norm(0.0, -0.33035, 0.943858) UV(0.498047, 0.527555)
V 9: Pos(2.3, 2.3, 2.6) Norm(0.948683, 0.0, -0.316228) UV(0.854614, 0.905029)
V 10: Pos(2.4, -2.4, 2.9) Norm(0.948683, 0.0, -0.316228) UV(0.125977, 0.951538)
V 11: Pos(2.3, -2.3, 2.6) Norm(0.948683, 0.0, -0.316228) UV(0.141479, 0.905029)
V 12: Pos(2.4, 2.4, 2.9) Norm(1.0, 0.0, 0.0) UV(0.994141, 0.6014)
V 13: Pos(2.4, -2.4, 2.96) Norm(1.0, 0.0, 0.0) UV(0.001953, 0.613802)
V 14: Pos(2.4, -2.4, 2.9) Norm(1.0, 0.0, 0.0) UV(0.001953, 0.6014)
V 15: Pos(2.4, -2.4, 2.96) Norm(0.33035, 0.0, 0.943858) UV(0.001953, 0.001953)
V 16: Pos(2.4, 2.4, 2.96) Norm(0.33035, 0.0, 0.943858) UV(0.994141, 0.001953)
V 17: Pos(0.0, 0.0, 3.8) Norm(0.33035, 0.0, 0.943858) UV(0.498047, 0.527555)
V 18: Pos(-2.3, 2.3, 2.6) Norm(0.0, 0.948683, -0.316228) UV(0.141479, 0.905029)
V 19: Pos(2.4, 2.4, 2.9) Norm(0.0, 0.948683, -0.316228) UV(0.870117, 0.951538)
V 20: Pos(2.3, 2.3, 2.6) Norm(0.0, 0.948683, -0.316228) UV(0.854614, 0.905029)
V 21: Pos(-2.4, 2.4, 2.9) Norm(0.0, 1.0, 0.0) UV(0.001953, 0.6014)
V 22: Pos(2.4, 2.4, 2.96) Norm(0.0, 1.0, 0.0) UV(0.994141, 0.613802)
V 23: Pos(2.4, 2.4, 2.9) Norm(0.0, 1.0, 0.0) UV(0.994141, 0.6014)
V 24: Pos(2.4, 2.4, 2.96) Norm(0.0, 0.33035, 0.943858) UV(0.994141, 0.001953)
V 25: Pos(-2.4, 2.4, 2.96) Norm(0.0, 0.33035, 0.943858) UV(0.001953, 0.001953)
V 26: Pos(0.0, 0.0, 3.8) Norm(0.0, 0.33035, 0.943858) UV(0.498047, 0.527555)
V 27: Pos(-2.3, -2.3, 2.6) Norm(-0.948683, 0.0, -0.316228) UV(0.141479, 0.905029)
V 28: Pos(-2.4, 2.4, 2.9) Norm(-0.948683, 0.0, -0.316228) UV(0.870117, 0.951538)
V 29: Pos(-2.3, 2.3, 2.6) Norm(-0.948683, 0.0, -0.316228) UV(0.854614, 0.905029)
V 30: Pos(-2.4, -2.4, 2.9) Norm(-1.0, 0.0, 0.0) UV(0.001953, 0.6014)
V 31: Pos(-2.4, 2.4, 2.96) Norm(-1.0, 0.0, 0.0) UV(0.994141, 0.613802)
V 32: Pos(-2.4, 2.4, 2.9) Norm(-1.0, 0.0, 0.0) UV(0.994141, 0.6014)
V 33: Pos(-2.4, 2.4, 2.96) Norm(-0.33035, 0.0, 0.943858) UV(0.994141, 0.001953)
V 34: Pos(-2.4, -2.4, 2.96) Norm(-0.33035, 0.0, 0.943858) UV(0.001953, 0.001953)
V 35: Pos(0.0, 0.0, 3.8) Norm(-0.33035, 0.0, 0.943858) UV(0.498047, 0.527555)
V 36: Pos(2.4, -2.4, 2.9) Norm(0.0, -0.948683, -0.316228) UV(0.870117, 0.951538)
V 37: Pos(2.4, -2.4, 2.96) Norm(0.0, -1.0, 0.0) UV(0.994141, 0.613802)
V 38: Pos(2.4, 2.4, 2.9) Norm(0.948683, 0.0, -0.316228) UV(0.870117, 0.951538)
V 39: Pos(2.4, 2.4, 2.96) Norm(1.0, 0.0, 0.0) UV(0.994141, 0.613802)
V 40: Pos(-2.4, 2.4, 2.9) Norm(0.0, 0.948683, -0.316228) UV(0.125977, 0.951538)
V 41: Pos(-2.4, 2.4, 2.96) Norm(0.0, 1.0, 0.0) UV(0.001953, 0.613802)
V 42: Pos(-2.4, -2.4, 2.9) Norm(-0.948683, 0.0, -0.316228) UV(0.125977, 0.951538)
V 43: Pos(-2.4, -2.4, 2.96) Norm(-1.0, 0.0, 0.0) UV(0.001953, 0.613802)
===Triangles (Indices): 20
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 18 19 20
Tri: 21 22 23
Tri: 24 25 26
Tri: 27 28 29
Tri: 30 31 32
Tri: 33 34 35
Tri: 0 36 1
Tri: 3 37 4
Tri: 9 38 10
Tri: 12 39 13
Tri: 18 40 19
Tri: 21 41 22
Tri: 27 42 28
Tri: 30 43 31
Binary file not shown.
+39
View File
@@ -0,0 +1,39 @@
===Vertices (Split by UV/Normal): 24
V 0: Pos(-0.45, -0.4, 1.83) Norm(-1.0, 0.0, 0.0) UV(0.238116, 1.0)
V 1: Pos(-0.45, 0.4, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.0, 0.29878)
V 2: Pos(-0.45, -0.4, 0.0) Norm(-1.0, 0.0, 0.0) UV(0.238116, 0.29878)
V 3: Pos(-0.45, 0.4, 1.83) Norm(0.0, 1.0, 0.0) UV(1.0, 1.0)
V 4: Pos(0.45, 0.4, 0.0) Norm(0.0, 1.0, 0.0) UV(0.738116, 0.29878)
V 5: Pos(-0.45, 0.4, 0.0) Norm(0.0, 1.0, 0.0) UV(1.0, 0.29878)
V 6: Pos(0.45, 0.4, 1.83) Norm(1.0, 0.0, 0.0) UV(0.738116, 1.0)
V 7: Pos(0.45, -0.4, 0.0) Norm(1.0, 0.0, 0.0) UV(0.5, 0.29878)
V 8: Pos(0.45, 0.4, 0.0) Norm(1.0, 0.0, 0.0) UV(0.738116, 0.29878)
V 9: Pos(0.45, -0.4, 1.83) Norm(0.0, -1.0, 0.0) UV(0.5, 1.0)
V 10: Pos(-0.45, -0.4, 0.0) Norm(0.0, -1.0, 0.0) UV(0.238116, 0.29878)
V 11: Pos(0.45, -0.4, 0.0) Norm(0.0, -1.0, 0.0) UV(0.5, 0.29878)
V 12: Pos(0.45, 0.4, 0.0) Norm(0.0, 0.0, -1.0) UV(0.523768, 0.0)
V 13: Pos(-0.45, -0.4, 0.0) Norm(0.0, 0.0, -1.0) UV(0.261884, 0.298781)
V 14: Pos(-0.45, 0.4, 0.0) Norm(0.0, 0.0, -1.0) UV(0.261884, 0.0)
V 15: Pos(-0.45, 0.4, 1.83) Norm(0.0, 0.0, 1.0) UV(0.0, 0.298781)
V 16: Pos(0.45, -0.4, 1.83) Norm(0.0, 0.0, 1.0) UV(0.261884, 0.0)
V 17: Pos(0.45, 0.4, 1.83) Norm(0.0, 0.0, 1.0) UV(0.261884, 0.298781)
V 18: Pos(-0.45, 0.4, 1.83) Norm(-1.0, 0.0, 0.0) UV(0.0, 1.0)
V 19: Pos(0.45, 0.4, 1.83) Norm(0.0, 1.0, 0.0) UV(0.738116, 1.0)
V 20: Pos(0.45, -0.4, 1.83) Norm(1.0, 0.0, 0.0) UV(0.5, 1.0)
V 21: Pos(-0.45, -0.4, 1.83) Norm(0.0, -1.0, 0.0) UV(0.238116, 1.0)
V 22: Pos(0.45, -0.4, 0.0) Norm(0.0, 0.0, -1.0) UV(0.523768, 0.298781)
V 23: Pos(-0.45, -0.4, 1.83) Norm(0.0, 0.0, 1.0) UV(0.0, 0.0)
===Triangles (Indices): 12
Tri: 0 1 2
Tri: 3 4 5
Tri: 6 7 8
Tri: 9 10 11
Tri: 12 13 14
Tri: 15 16 17
Tri: 0 18 1
Tri: 3 19 4
Tri: 6 20 7
Tri: 9 21 10
Tri: 12 22 13
Tri: 15 23 16
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+17 -1
View File
@@ -243,7 +243,15 @@ namespace FRG
renderer.shaderManager.AddShaderFromFiles("night_fog_skinning", "resources/shaders/night_fog_skinning_web.vertex", "resources/shaders/night_fog_web.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("night_fog_skinning", "resources/shaders/night_fog_skinning_web.vertex", "resources/shaders/night_fog_web.fragment", CONST_ZIP_FILE);
renderer.shaderManager.AddShaderFromFiles("night_fog_shadow", "resources/shaders/night_fog_shadow_web.vertex", "resources/shaders/night_fog_shadow_web.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("night_fog_shadow", "resources/shaders/night_fog_shadow_web.vertex", "resources/shaders/night_fog_shadow_web.fragment", CONST_ZIP_FILE);
renderer.shaderManager.AddShaderFromFiles("night_fog_skinning_shadow", "resources/shaders/night_fog_skinning_shadow_web.vertex", "resources/shaders/night_fog_shadow_web.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("night_fog_skinning_shadow", "resources/shaders/night_fog_skinning_shadow_web.vertex", "resources/shaders/night_fog_shadow_web.fragment", CONST_ZIP_FILE);
// Instancing variants of the static-object shaders (same sources + INSTANCED define)
renderer.shaderManager.AddShaderFromFiles("fog_inst", "resources/shaders/fog.vertex", "resources/shaders/fog_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("darklands_fog_inst", "resources/shaders/darklands_fog.vertex", "resources/shaders/darklands_fog_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("shadow_depth_inst", "resources/shaders/shadow_depth.vertex", "resources/shaders/shadow_depth_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("fog_shadow_inst", "resources/shaders/fog_shadow_web.vertex", "resources/shaders/fog_shadow_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("night_fog_inst", "resources/shaders/night_fog_web.vertex", "resources/shaders/night_fog_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("night_fog_shadow_inst", "resources/shaders/night_fog_shadow_web.vertex", "resources/shaders/night_fog_shadow_web.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("text2d", renderer.shaderManager.AddShaderFromFiles("text2d",
"resources/shaders/text2d.vertex", "resources/shaders/text2d.vertex",
"resources/shaders/text2d_web.fragment", "resources/shaders/text2d_web.fragment",
@@ -303,6 +311,14 @@ namespace FRG
renderer.shaderManager.AddShaderFromFiles("night_fog_shadow", "resources/shaders/night_fog_shadow.vertex", "resources/shaders/night_fog_shadow_desktop.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("night_fog_shadow", "resources/shaders/night_fog_shadow.vertex", "resources/shaders/night_fog_shadow_desktop.fragment", CONST_ZIP_FILE);
renderer.shaderManager.AddShaderFromFiles("night_fog_skinning_shadow", "resources/shaders/night_fog_skinning_shadow.vertex", "resources/shaders/night_fog_shadow_desktop.fragment", CONST_ZIP_FILE); renderer.shaderManager.AddShaderFromFiles("night_fog_skinning_shadow", "resources/shaders/night_fog_skinning_shadow.vertex", "resources/shaders/night_fog_shadow_desktop.fragment", CONST_ZIP_FILE);
// Instancing variants of the static-object shaders (same sources + INSTANCED define)
renderer.shaderManager.AddShaderFromFiles("fog_inst", "resources/shaders/fog.vertex", "resources/shaders/fog_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("darklands_fog_inst", "resources/shaders/darklands_fog.vertex", "resources/shaders/darklands_fog_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("shadow_depth_inst", "resources/shaders/shadow_depth.vertex", "resources/shaders/shadow_depth_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("fog_shadow_inst", "resources/shaders/fog_shadow.vertex", "resources/shaders/fog_shadow_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("night_fog_inst", "resources/shaders/night_fog.vertex", "resources/shaders/night_fog_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("night_fog_shadow_inst", "resources/shaders/night_fog_shadow.vertex", "resources/shaders/night_fog_shadow_desktop.fragment", CONST_ZIP_FILE, "#define INSTANCED\n");
renderer.shaderManager.AddShaderFromFiles("text2d", renderer.shaderManager.AddShaderFromFiles("text2d",
"resources/shaders/text2d.vertex", "resources/shaders/text2d.vertex",
"resources/shaders/text2d_desktop.fragment", "resources/shaders/text2d_desktop.fragment",
+68 -1
View File
@@ -106,7 +106,11 @@ namespace FRG
{ {
// Load static game objects // Load static game objects
gameObjects = GameObjectLoader::loadAndCreateGameObjects(params.gameObjectsJsonPath, renderer, CONST_ZIP_FILE); {
StaticObjectSet staticObjects = GameObjectLoader::loadAndCreateGameObjects(params.gameObjectsJsonPath, renderer, CONST_ZIP_FILE);
gameObjects = std::move(staticObjects.single);
instancedBatches = std::move(staticObjects.batches);
}
SDL_PumpEvents(); SDL_PumpEvents();
// Load interactive objects // Load interactive objects
@@ -683,6 +687,27 @@ namespace FRG
} }
void Location::drawInstancedStatics(const std::string& instancedShaderName, InstancedTexture textureKind,
const std::function<void()>& setUniforms)
{
if (instancedBatches.empty()) return;
renderer.shaderManager.PushShader(instancedShaderName);
if (setUniforms) setUniforms();
renderer.SetMatrix();
for (auto& batch : instancedBatches) {
if (textureKind != InstancedTexture::None) {
const auto& texture = (textureKind == InstancedTexture::Darklands) ? batch.textureDarklands : batch.texture;
if (!texture) continue;
glBindTexture(GL_TEXTURE_2D, texture->getTexID());
}
renderer.DrawInstanced(batch);
}
renderer.shaderManager.PopShader();
}
void Location::drawGame() void Location::drawGame()
{ {
@@ -718,6 +743,11 @@ namespace FRG
glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID()); glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID());
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
drawInstancedStatics("fog_inst", InstancedTexture::Color, [&]() {
renderer.RenderUniform1i(textureUniformName, 0);
renderer.RenderUniform3fv("uPlayerEyePos", playerEyePos);
renderer.RenderUniform1f("uAlpha", 1.0f);
});
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
if (intObj.state.isActive) { if (intObj.state.isActive) {
@@ -812,6 +842,7 @@ namespace FRG
for (auto& [name, gameObj] : gameObjects) { for (auto& [name, gameObj] : gameObjects) {
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
drawInstancedStatics("shadow_depth_inst", InstancedTexture::None);
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
if (intObj.state.castShadow && intObj.loadedObject.texture) { if (intObj.state.castShadow && intObj.loadedObject.texture) {
@@ -907,6 +938,16 @@ namespace FRG
glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID()); glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID());
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
#ifndef DEBUG_LIGHT
drawInstancedStatics("fog_shadow_inst", InstancedTexture::Color, [&]() {
renderer.RenderUniform1i(textureUniformName, 0);
renderer.RenderUniform1i("uShadowMap", 1);
renderer.RenderUniform3fv("uPlayerEyePos", playerEyePos);
renderer.RenderUniformMatrix4fv("uLightFromCamera", false, lightFromCamera.data());
renderer.RenderUniform3fv("uLightDir", lightDirCamera.data());
renderer.RenderUniform1f("uAlpha", 1.0f);
});
#endif
CheckGlError(__FILE__, __LINE__); CheckGlError(__FILE__, __LINE__);
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
@@ -1004,6 +1045,11 @@ namespace FRG
glBindTexture(GL_TEXTURE_2D, gameObj.textureDarklands->getTexID()); glBindTexture(GL_TEXTURE_2D, gameObj.textureDarklands->getTexID());
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
drawInstancedStatics("darklands_fog_inst", InstancedTexture::Darklands, [&]() {
renderer.RenderUniform1i(textureUniformName, 0);
renderer.RenderUniform3fv("uPlayerEyePos", playerEyePos);
renderer.RenderUniform1f("uAlpha", 1.0f);
});
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
if (intObj.state.isActive) { if (intObj.state.isActive) {
@@ -1067,6 +1113,7 @@ namespace FRG
for (auto& [name, gameObj] : gameObjects) { for (auto& [name, gameObj] : gameObjects) {
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
drawInstancedStatics("shadow_depth_inst", InstancedTexture::None);
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
if (intObj.state.castShadowNight && intObj.loadedObject.texture) { if (intObj.state.castShadowNight && intObj.loadedObject.texture) {
renderer.PushMatrix(); renderer.PushMatrix();
@@ -1279,6 +1326,26 @@ namespace FRG
glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID()); glBindTexture(GL_TEXTURE_2D, gameObj.texture->getTexID());
renderer.DrawVertexRenderStruct(gameObj.mesh); renderer.DrawVertexRenderStruct(gameObj.mesh);
} }
drawInstancedStatics(hasShadows ? "night_fog_shadow_inst" : "night_fog_inst", InstancedTexture::Color, [&]() {
renderer.RenderUniform1i(textureUniformName, 0);
if (hasShadows) {
renderer.RenderUniform1i("uShadowMap", 1);
renderer.RenderUniformMatrix4fv("uLightFromCamera", false, lightFromCamera.data());
renderer.RenderUniform3fv("uLightDir", plDirEye);
}
renderer.RenderUniform3fv("uPlayerEyePos", playerEyePos);
renderer.RenderUniform3fv("uAmbientColor", ambientColor);
renderer.RenderUniform3fv("uFogColor", fogColor);
renderer.RenderUniform1i("uPointLightCount", lightCount);
if (lightCount > 0) {
renderer.RenderUniform3fvArray("uPointLightPos[0]", lightCount, plPosEye);
renderer.RenderUniform3fvArray("uPointLightDir[0]", lightCount, plDirEye);
renderer.RenderUniform3fvArray("uPointLightColor[0]", lightCount, plColors);
renderer.RenderUniform2fvArray("uPointLightWorldXZ[0]", lightCount, plWorldXZ);
renderer.RenderUniform2fvArray("uPointLightLimitXZ[0]", lightCount, plLimitXZ);
}
renderer.RenderUniform1f("uAlpha", 1.0f);
});
for (auto& intObj : interactiveObjects) { for (auto& intObj : interactiveObjects) {
if (intObj.state.isActive) { if (intObj.state.isActive) {
+11
View File
@@ -77,6 +77,9 @@ namespace FRG
std::unordered_map<std::string, LoadedGameObject> gameObjects; std::unordered_map<std::string, LoadedGameObject> gameObjects;
// Repeated static objects (same mesh + textures) drawn with one instanced call each.
std::vector<InstancedBatch> instancedBatches;
std::vector<InteractiveObject> interactiveObjects; std::vector<InteractiveObject> interactiveObjects;
// Shared: the same player moves from location to location and outlives them. // Shared: the same player moves from location to location and outlives them.
@@ -207,6 +210,14 @@ namespace FRG
int findInteractiveObjectIndex(const InteractiveObject* obj) const; int findInteractiveObjectIndex(const InteractiveObject* obj) const;
int findTeleportZoneIndex(const TeleportZone* tz) const; int findTeleportZoneIndex(const TeleportZone* tz) const;
enum class InstancedTexture { None, Color, Darklands };
// Draws instancedBatches with the instancing variant of the current pass shader
// (e.g. "fog_inst"). The variant is a separate program, so setUniforms must re-send
// the pass uniforms; the matrix stack tops are uploaded here.
void drawInstancedStatics(const std::string& instancedShaderName, InstancedTexture textureKind,
const std::function<void()>& setUniforms = {});
void resolveCharacterCollisions(); void resolveCharacterCollisions();
void updateDynamicReplans(int64_t deltaMs); void updateDynamicReplans(int64_t deltaMs);
void loadTeleportZones(const std::string& jsonPath, const char* zipFile); void loadTeleportZones(const std::string& jsonPath, const char* zipFile);
+102 -31
View File
@@ -55,6 +55,7 @@ namespace FRG {
data.positionY = item.value("positionY", 0.0f); data.positionY = item.value("positionY", 0.0f);
data.positionZ = item.value("positionZ", 0.0f); data.positionZ = item.value("positionZ", 0.0f);
data.scale = item.value("scale", 1.0f); data.scale = item.value("scale", 1.0f);
data.instanced = item.value("instanced", true);
return data; return data;
} }
@@ -154,6 +155,36 @@ namespace FRG {
return st; return st;
} }
static VertexDataStruct loadMeshData(const std::string& meshPath, const std::string& zipPath)
{
if (meshPath.size() > 4 && meshPath.compare(meshPath.size() - 4, 4, ".bin") == 0)
return LoadModelFromBinFile(meshPath, zipPath);
return LoadFromTextFile02(meshPath, zipPath);
}
static Eigen::Matrix3f makeRotationMatrix(const GameObjectData& data)
{
constexpr float kDeg2Rad = static_cast<float>(M_PI) / 180.0f;
Eigen::Quaternionf rot = Eigen::Quaternionf::Identity();
if (data.rotationX != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationX * kDeg2Rad, Eigen::Vector3f::UnitX())) * rot;
if (data.rotationY != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationY * kDeg2Rad, Eigen::Vector3f::UnitY())) * rot;
if (data.rotationZ != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationZ * kDeg2Rad, Eigen::Vector3f::UnitZ())) * rot;
return rot.toRotationMatrix();
}
// Equivalent of what buildLoadedObject + Move() bake into the vertices:
// RotateByMatrix computes v^T * R (= R^T * v), then Scale, then Move.
static Eigen::Matrix4f makeInstanceMatrix(const GameObjectData& data)
{
Eigen::Matrix4f m = Eigen::Matrix4f::Identity();
m.block<3, 3>(0, 0) = data.scale * makeRotationMatrix(data).transpose();
m.block<3, 1>(0, 3) = Eigen::Vector3f(data.positionX, data.positionY, data.positionZ);
return m;
}
LoadedGameObject GameObjectLoader::buildLoadedObject(const GameObjectData& data, Renderer& renderer, const std::string& zipPath) LoadedGameObject GameObjectLoader::buildLoadedObject(const GameObjectData& data, Renderer& renderer, const std::string& zipPath)
{ {
LoadedGameObject obj; LoadedGameObject obj;
@@ -164,20 +195,9 @@ namespace FRG {
if (!data.textureDarkandsPath.empty()) if (!data.textureDarkandsPath.empty())
obj.textureDarklands = renderer.textureManager.LoadFromPng(data.textureDarkandsPath, zipPath); obj.textureDarklands = renderer.textureManager.LoadFromPng(data.textureDarkandsPath, zipPath);
if (data.meshPath.size() > 4 && data.meshPath.compare(data.meshPath.size() - 4, 4, ".bin") == 0) obj.mesh.data = loadMeshData(data.meshPath, zipPath);
obj.mesh.data = LoadModelFromBinFile(data.meshPath, zipPath);
else
obj.mesh.data = LoadFromTextFile02(data.meshPath, zipPath);
constexpr float kDeg2Rad = static_cast<float>(M_PI) / 180.0f; obj.mesh.data.RotateByMatrix(makeRotationMatrix(data));
Eigen::Quaternionf rot = Eigen::Quaternionf::Identity();
if (data.rotationX != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationX * kDeg2Rad, Eigen::Vector3f::UnitX())) * rot;
if (data.rotationY != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationY * kDeg2Rad, Eigen::Vector3f::UnitY())) * rot;
if (data.rotationZ != 0.0f)
rot = Eigen::Quaternionf(Eigen::AngleAxisf(data.rotationZ * kDeg2Rad, Eigen::Vector3f::UnitZ())) * rot;
obj.mesh.data.RotateByMatrix(rot.toRotationMatrix());
if (data.scale != 1.0f) if (data.scale != 1.0f)
obj.mesh.data.Scale(data.scale); obj.mesh.data.Scale(data.scale);
@@ -189,34 +209,85 @@ namespace FRG {
// Public API // Public API
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
std::unordered_map<std::string, LoadedGameObject> GameObjectLoader::loadAndCreateGameObjects( StaticObjectSet GameObjectLoader::loadAndCreateGameObjects(
const std::string& jsonPath, const std::string& jsonPath,
Renderer& renderer, Renderer& renderer,
const std::string& zipPath) const std::string& zipPath)
{ {
std::unordered_map<std::string, LoadedGameObject> gameObjects; StaticObjectSet result;
for (const auto& data : loadFromJson(jsonPath, zipPath)) { std::vector<GameObjectData> allData = loadFromJson(jsonPath, zipPath);
// Service the OS message queue between loads so the window doesn't
// get flagged as "not responding" during long location loads.
SDL_PumpEvents();
logger() << "Loading game object: " << data.name << std::endl;
try {
LoadedGameObject obj = buildLoadedObject(data, renderer, zipPath);
if (data.positionX != 0.0f || data.positionY != 0.0f || data.positionZ != 0.0f) // Group objects sharing mesh + textures (in file order) so they can be drawn instanced.
obj.mesh.data.Move({ data.positionX, data.positionY, data.positionZ }); std::vector<std::vector<const GameObjectData*>> groups;
std::unordered_map<std::string, size_t> groupIndexByKey;
obj.mesh.RefreshVBO(); for (const auto& data : allData) {
gameObjects[data.name] = std::move(obj); if (!data.instanced) {
logger() << "Successfully loaded: " << data.name << std::endl; groups.push_back({ &data });
} catch (const std::exception& e) { continue;
std::cerr << "GameObjectLoader: Failed to load '" << data.name << "': " << e.what() << std::endl; }
std::string key = data.meshPath + '\n' + data.texturePath + '\n' + data.textureDarkandsPath;
auto it = groupIndexByKey.find(key);
if (it == groupIndexByKey.end()) {
groupIndexByKey[key] = groups.size();
groups.push_back({ &data });
} else {
groups[it->second].push_back(&data);
} }
} }
logger() << "Total game objects loaded: " << gameObjects.size() << std::endl; for (const auto& group : groups) {
return gameObjects; // Service the OS message queue between loads so the window doesn't
// get flagged as "not responding" during long location loads.
SDL_PumpEvents();
const GameObjectData& first = *group.front();
if (group.size() == 1) {
logger() << "Loading game object: " << first.name << std::endl;
try {
LoadedGameObject obj = buildLoadedObject(first, renderer, zipPath);
if (first.positionX != 0.0f || first.positionY != 0.0f || first.positionZ != 0.0f)
obj.mesh.data.Move({ first.positionX, first.positionY, first.positionZ });
obj.mesh.RefreshVBO();
result.single[first.name] = std::move(obj);
logger() << "Successfully loaded: " << first.name << std::endl;
} catch (const std::exception& e) {
std::cerr << "GameObjectLoader: Failed to load '" << first.name << "': " << e.what() << std::endl;
}
continue;
}
logger() << "Loading instanced batch: " << first.meshPath << " x" << group.size() << std::endl;
try {
InstancedBatch batch;
batch.name = first.name;
batch.texture = renderer.textureManager.LoadFromPng(first.texturePath, zipPath);
if (!first.textureDarkandsPath.empty())
batch.textureDarklands = renderer.textureManager.LoadFromPng(first.textureDarkandsPath, zipPath);
// Mesh stays in local space; rotation, scale and position live in the instance matrices.
batch.mesh.data = loadMeshData(first.meshPath, zipPath);
batch.mesh.RefreshVBO();
batch.instances.reserve(group.size());
for (const GameObjectData* d : group)
batch.instances.push_back(makeInstanceMatrix(*d));
batch.RefreshInstanceVBO();
result.batches.push_back(std::move(batch));
logger() << "Successfully loaded instanced batch: " << first.meshPath << std::endl;
} catch (const std::exception& e) {
std::cerr << "GameObjectLoader: Failed to load instanced batch '" << first.meshPath << "': " << e.what() << std::endl;
}
}
logger() << "Total game objects loaded: " << result.single.size() << " single, "
<< result.batches.size() << " instanced batches" << std::endl;
return result;
} }
std::vector<InteractiveObject> GameObjectLoader::loadAndCreateInteractiveObjects( std::vector<InteractiveObject> GameObjectLoader::loadAndCreateInteractiveObjects(
+11 -1
View File
@@ -26,10 +26,20 @@ namespace FRG {
float positionY = 0.0f; float positionY = 0.0f;
float positionZ = 0.0f; float positionZ = 0.0f;
float scale = 1.0f; float scale = 1.0f;
// Objects sharing mesh and textures are drawn with one instanced call.
// Set "instanced": false in the JSON to keep an object as a standalone mesh.
bool instanced = true;
LoadedGameObjectState toLoadedGameObjectState() const; LoadedGameObjectState toLoadedGameObjectState() const;
}; };
// Result of loading a static object list: unique objects keep their own mesh,
// repeated ones are merged into instanced batches.
struct StaticObjectSet {
std::unordered_map<std::string, LoadedGameObject> single;
std::vector<InstancedBatch> batches;
};
struct InteractiveObjectData { struct InteractiveObjectData {
GameObjectData base; GameObjectData base;
float interactionRadius = 2.0f; float interactionRadius = 2.0f;
@@ -86,7 +96,7 @@ namespace FRG {
class GameObjectLoader { class GameObjectLoader {
public: public:
static std::unordered_map<std::string, LoadedGameObject> loadAndCreateGameObjects( static StaticObjectSet loadAndCreateGameObjects(
const std::string& jsonPath, const std::string& jsonPath,
Renderer& renderer, Renderer& renderer,
const std::string& zipPath = "" const std::string& zipPath = ""
+16 -4
View File
@@ -113,9 +113,12 @@ PFNGLBINDBUFFERBASEPROC glBindBufferBase = NULL;
PFNGLGENVERTEXARRAYSPROC glGenVertexArrays = NULL; PFNGLGENVERTEXARRAYSPROC glGenVertexArrays = NULL;
PFNGLBINDVERTEXARRAYPROC glBindVertexArray = NULL; PFNGLBINDVERTEXARRAYPROC glBindVertexArray = NULL;
PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArray = NULL; PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays = NULL;
#endif PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced = NULL;
PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor = NULL;
#endif
namespace FRG { namespace FRG {
@@ -308,11 +311,20 @@ namespace FRG {
glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)wglGetProcAddress("glGenVertexArrays"); glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)wglGetProcAddress("glGenVertexArrays");
glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)wglGetProcAddress("glBindVertexArray"); glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)wglGetProcAddress("glBindVertexArray");
glDeleteVertexArray = (PFNGLDELETEVERTEXARRAYSPROC)wglGetProcAddress("glBindVertexArray"); glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)wglGetProcAddress("glDeleteVertexArrays");
if (glGenVertexArrays == NULL || if (glGenVertexArrays == NULL ||
glBindVertexArray == NULL || glBindVertexArray == NULL ||
glDeleteVertexArray == NULL) glDeleteVertexArrays == NULL)
{
ok = false;
}
glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)wglGetProcAddress("glDrawArraysInstanced");
glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)wglGetProcAddress("glVertexAttribDivisor");
if (glDrawArraysInstanced == NULL ||
glVertexAttribDivisor == NULL)
{ {
ok = false; ok = false;
} }
+5 -1
View File
@@ -150,7 +150,11 @@ extern PFNGLBINDBUFFERBASEPROC glBindBufferBase;
extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays; extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray; extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArray; extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
//Instancing (core since OpenGL 3.3)
extern PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
extern PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
#else #else
#endif #endif
+67 -2
View File
@@ -131,7 +131,7 @@ namespace FRG {
glDeleteVertexArrays(1, &vao); glDeleteVertexArrays(1, &vao);
#else #else
//Windows //Windows
glDeleteVertexArray(1, &vao); glDeleteVertexArrays(1, &vao);
#endif #endif
#endif #endif
#endif #endif
@@ -920,7 +920,73 @@ namespace FRG {
glDisableVertexAttribArray(it->second); glDisableVertexAttribArray(it->second);
} }
void InstancedBatch::RefreshInstanceVBO()
{
if (instances.empty())
{
return;
}
if (!instanceVBO)
{
instanceVBO = std::make_shared<VBOHolder>();
}
// Matrix4f is column-major with no padding: 16 floats per instance.
glBindBuffer(GL_ARRAY_BUFFER, instanceVBO->getBuffer());
glBufferData(GL_ARRAY_BUFFER, instances.size() * sizeof(Matrix4f), instances.data(), GL_STATIC_DRAW);
}
void Renderer::DrawVertexRenderStruct(const VertexRenderStruct& VertexRenderStruct) void Renderer::DrawVertexRenderStruct(const VertexRenderStruct& VertexRenderStruct)
{
BindVertexRenderStructAttribs(VertexRenderStruct);
glDrawArrays(GL_TRIANGLES, 0, static_cast<GLsizei>(VertexRenderStruct.data.PositionData.size()));
}
void Renderer::DrawInstanced(const InstancedBatch& batch)
{
if (batch.instances.empty() || !batch.instanceVBO || !batch.mesh.positionVBO)
{
return;
}
BindVertexRenderStructAttribs(batch.mesh);
static const char* const instanceAttribNames[4] = { "iModel0", "iModel1", "iModel2", "iModel3" };
auto shader = shaderManager.GetCurrentShader();
glBindBuffer(GL_ARRAY_BUFFER, batch.instanceVBO->getBuffer());
for (int i = 0; i < 4; i++)
{
auto it = shader->attribList.find(instanceAttribNames[i]);
if (it == shader->attribList.end())
{
continue;
}
glVertexAttribPointer(it->second, 4, GL_FLOAT, GL_FALSE, sizeof(Matrix4f),
reinterpret_cast<const void*>(static_cast<size_t>(i) * 4 * sizeof(float)));
glVertexAttribDivisor(it->second, 1);
}
glDrawArraysInstanced(GL_TRIANGLES, 0,
static_cast<GLsizei>(batch.mesh.data.PositionData.size()),
static_cast<GLsizei>(batch.instances.size()));
// The divisor is vertex array state: reset it so that later non-instanced draws
// with these attribute locations are not affected.
for (int i = 0; i < 4; i++)
{
auto it = shader->attribList.find(instanceAttribNames[i]);
if (it != shader->attribList.end())
{
glVertexAttribDivisor(it->second, 0);
}
}
}
void Renderer::BindVertexRenderStructAttribs(const VertexRenderStruct& VertexRenderStruct)
{ {
#ifndef EMSCRIPTEN #ifndef EMSCRIPTEN
#ifndef __ANDROID__ #ifndef __ANDROID__
@@ -988,7 +1054,6 @@ namespace FRG {
glBindBuffer(GL_ARRAY_BUFFER, VertexRenderStruct.positionVBO->getBuffer()); glBindBuffer(GL_ARRAY_BUFFER, VertexRenderStruct.positionVBO->getBuffer());
VertexAttribPointer3fv(vPosition, 0, NULL); VertexAttribPointer3fv(vPosition, 0, NULL);
glDrawArrays(GL_TRIANGLES, 0, static_cast<GLsizei>(VertexRenderStruct.data.PositionData.size()));
} }
void worldToScreenCoordinates(Vector3f objectPos, void worldToScreenCoordinates(Vector3f objectPos,
+22
View File
@@ -87,6 +87,22 @@ namespace FRG {
void AssignFrom(const VertexDataStruct& v); void AssignFrom(const VertexDataStruct& v);
}; };
// One mesh drawn many times with a per-instance model matrix (glDrawArraysInstanced).
// The mesh is stored in local space; each instance matrix is fed to the *_inst shaders
// as four vec4 attributes (iModel0..iModel3, divisor 1).
struct InstancedBatch
{
std::string name;
VertexRenderStruct mesh;
std::shared_ptr<Texture> texture;
std::shared_ptr<Texture> textureDarklands;
std::vector<Matrix4f> instances;
std::shared_ptr<VBOHolder> instanceVBO;
void RefreshInstanceVBO();
};
VertexDataStruct CreateRect2D(Vector2f center, Vector2f halfWidthHeight, float zLevel); VertexDataStruct CreateRect2D(Vector2f center, Vector2f halfWidthHeight, float zLevel);
VertexDataStruct CreatePolygonFloor(const std::vector<Eigen::Vector2f>& polygon, float yLevel, const Vector3f& color); VertexDataStruct CreatePolygonFloor(const std::vector<Eigen::Vector2f>& polygon, float yLevel, const Vector3f& color);
VertexDataStruct CreateRectHorizontalSections2D(Vector2f center, Vector2f halfWidthHeight, float zLevel, size_t sectionCount); VertexDataStruct CreateRectHorizontalSections2D(Vector2f center, Vector2f halfWidthHeight, float zLevel, size_t sectionCount);
@@ -150,6 +166,12 @@ namespace FRG {
void DisableVertexAttribArray(const std::string& attribName); void DisableVertexAttribArray(const std::string& attribName);
void DrawVertexRenderStruct(const VertexRenderStruct& VertexRenderStruct); void DrawVertexRenderStruct(const VertexRenderStruct& VertexRenderStruct);
// The current shader must be an instancing variant (compiled with INSTANCED).
void DrawInstanced(const InstancedBatch& batch);
protected:
void BindVertexRenderStructAttribs(const VertexRenderStruct& VertexRenderStruct);
}; };
+28
View File
@@ -160,10 +160,36 @@ namespace FRG {
} }
static std::string insertDefinesAfterVersion(const std::string &source, const std::string &defines) {
if (defines.empty()) {
return source;
}
size_t versionPos = source.find("#version");
if (versionPos == std::string::npos) {
return defines + source;
}
size_t lineEnd = source.find('\n', versionPos);
if (lineEnd == std::string::npos) {
return source + "\n" + defines;
}
return source.substr(0, lineEnd + 1) + defines + source.substr(lineEnd + 1);
}
void ShaderManager::AddShaderFromFiles(const std::string &shaderName, void ShaderManager::AddShaderFromFiles(const std::string &shaderName,
const std::string &vertexShaderFileName, const std::string &vertexShaderFileName,
const std::string &fragmentShaderFileName, const std::string &fragmentShaderFileName,
const std::string &ZIPFileName) { const std::string &ZIPFileName) {
AddShaderFromFiles(shaderName, vertexShaderFileName, fragmentShaderFileName, ZIPFileName, "");
}
void ShaderManager::AddShaderFromFiles(const std::string &shaderName,
const std::string &vertexShaderFileName,
const std::string &fragmentShaderFileName,
const std::string &ZIPFileName,
const std::string &vertexDefines) {
#ifdef __ANDROID__ #ifdef __ANDROID__
__android_log_print(ANDROID_LOG_INFO, "ShaderManager", __android_log_print(ANDROID_LOG_INFO, "ShaderManager",
"Loading shader: %s", shaderName.c_str()); "Loading shader: %s", shaderName.c_str());
@@ -194,6 +220,8 @@ namespace FRG {
fragmentShader = readTextFile(fragmentShaderFileName); fragmentShader = readTextFile(fragmentShaderFileName);
} }
vertexShader = insertDefinesAfterVersion(vertexShader, vertexDefines);
shaderResourceMap[shaderName] = std::make_shared<ShaderResource>(vertexShader, shaderResourceMap[shaderName] = std::make_shared<ShaderResource>(vertexShader,
fragmentShader); fragmentShader);
} }
+4
View File
@@ -38,6 +38,10 @@ namespace FRG {
public: public:
void AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName, const std::string& ZIPFileName = ""); void AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName, const std::string& ZIPFileName = "");
// Same as above, but vertexDefines (e.g. "#define INSTANCED\n") is inserted into the
// vertex shader source right after its #version line (or at the very top if it has none).
void AddShaderFromFiles(const std::string& shaderName, const std::string& vertexShaderFileName, const std::string& fragmentShaderFileName, const std::string& ZIPFileName, const std::string& vertexDefines);
void PushShader(const std::string& shaderName); void PushShader(const std::string& shaderName);
void PopShader(); void PopShader();
void EnableVertexAttribArrays(); void EnableVertexAttribArrays();