Compare commits
97 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efc696de09 | ||
|
|
074c586edf | ||
|
|
d64659c8d6 | ||
|
|
d557c4b530 | ||
|
|
fd098e8346 | ||
|
|
3622f2b888 | ||
|
|
ce8bc2d142 | ||
|
|
e293f58413 | ||
|
|
0495c3946c | ||
|
|
28a3ace187 | ||
|
|
61d806a7a1 | ||
|
|
e4bcf62afa | ||
|
|
709327b3af | ||
|
|
920376d686 | ||
|
|
a6d9716ddf | ||
|
|
1a6410dc12 | ||
|
|
360d6999c2 | ||
|
|
7fe425bf07 | ||
|
|
c9324bd30b | ||
|
|
777ee30a24 | ||
|
|
c9e9755e28 | ||
|
|
f8b4174eea | ||
|
|
9d4da63e36 | ||
|
|
a0b0db6f6a | ||
|
|
60a1422232 | ||
|
|
25bb79fb42 | ||
|
|
8e0936836e | ||
|
|
542939207f | ||
|
|
2195542974 | ||
|
|
c6bd5385e3 | ||
|
|
abd3da30e2 | ||
|
|
bc62c34cf7 | ||
|
|
0d7d430909 | ||
|
|
57789eed24 | ||
|
|
8efe063749 | ||
|
|
e6f332244c | ||
|
|
77827af150 | ||
|
|
66da012d5a | ||
|
|
b3a5e36e1b | ||
|
|
b633aa01f5 | ||
|
|
8191db025f | ||
|
|
c198f39515 | ||
|
|
01be8852c6 | ||
|
|
1bf54b5367 | ||
|
|
fe01a5d1b2 | ||
|
|
b6e0422d71 | ||
|
|
3778a603f2 | ||
|
|
e310822462 | ||
|
|
3d3c3b2a36 | ||
|
|
b5bcd3a812 | ||
| 16e7580418 | |||
| be4dcd4cf9 | |||
|
|
a1dda3fd50 | ||
|
|
92ba3f2b60 | ||
|
|
f2f56125f0 | ||
|
|
2ef2e456f7 | ||
|
|
83cceecccd | ||
|
|
24851a89e8 | ||
|
|
d47cfd1b6b | ||
|
|
71346b4227 | ||
|
|
08e1174eaf | ||
|
|
cc2eba1352 | ||
|
|
cfee60d71a | ||
|
|
dc76986cd3 | ||
|
|
61665434ab | ||
| 2494a44e4a | |||
|
|
d8795ec076 | ||
| ceebb13719 | |||
|
|
a47306533e | ||
|
|
f708843747 | ||
|
|
a589765b7e | ||
| 4eaefd25d4 | |||
|
|
eff7322140 | ||
|
|
44dd09fcb5 | ||
|
|
de2e18e38f | ||
|
|
984d7489d5 | ||
|
|
f7e6f063d1 | ||
|
|
db8b9b7a18 | ||
|
|
493eb5a5d7 | ||
|
|
422ff1fbe3 | ||
| 6465549c3b | |||
|
|
34759326b9 | ||
| 7125674308 | |||
|
|
bc2997d86f | ||
|
|
943b6b4d21 | ||
|
|
b3fda88784 | ||
|
|
e1b491be73 | ||
|
|
178f69967b | ||
|
|
90e2a369f4 | ||
|
|
403b93e7f5 | ||
|
|
63c9d7b35b | ||
|
|
995e2c8e5b | ||
|
|
2e4a7ab467 | ||
|
|
a96d0b207a | ||
|
|
7840bfdb4e | ||
|
|
56ce826205 | ||
|
|
5364b97235 |
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -1,3 +1,7 @@
|
|||||||
*.bmp filter=lfs diff=lfs merge=lfs -text
|
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.anim filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|||||||
BIN
audio/ETM_Titles_track.ogg
(Stored with Git LFS)
Normal file
BIN
audio/ETM_Titles_track.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
audio/naprtyag_loop.ogg
(Stored with Git LFS)
Normal file
BIN
audio/naprtyag_loop.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
65
blender scripts/blender_join_anims.py
Normal file
65
blender scripts/blender_join_anims.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
import bpy
|
||||||
|
|
||||||
|
def append_layered_action_5_0(source_obj_name, target_obj_name):
|
||||||
|
source_obj = bpy.data.objects.get(source_obj_name)
|
||||||
|
target_obj = bpy.data.objects.get(target_obj_name)
|
||||||
|
|
||||||
|
if not (source_obj and target_obj):
|
||||||
|
print("Ошибка: Объекты не найдены")
|
||||||
|
return
|
||||||
|
|
||||||
|
src_action = source_obj.animation_data.action
|
||||||
|
tgt_action = target_obj.animation_data.action
|
||||||
|
|
||||||
|
# 1. Получаем слои (обычно первый)
|
||||||
|
src_layer = src_action.layers[0]
|
||||||
|
tgt_layer = tgt_action.layers[0]
|
||||||
|
|
||||||
|
# 2. Получаем стрипы
|
||||||
|
src_strip = src_layer.strips[0]
|
||||||
|
tgt_strip = tgt_layer.strips[0]
|
||||||
|
|
||||||
|
# Смещение (опираемся на конец диапазона целевого экшена)
|
||||||
|
offset = tgt_action.frame_range[1]
|
||||||
|
|
||||||
|
# 3. Итерируемся по channelbags в исходном стрипе
|
||||||
|
for src_bag in src_strip.channelbags:
|
||||||
|
# Ищем или создаем соответствующий bag в целевом стрипе
|
||||||
|
# Обычно они сопоставляются по имени или типу (например, 'Keyframe Channel Bag')
|
||||||
|
# В простейшем случае берем первый или сопоставляем по индексу
|
||||||
|
dst_bag = None
|
||||||
|
if len(tgt_strip.channelbags) > 0:
|
||||||
|
# Пытаемся найти по названию (если оно есть) или берем тот же индекс
|
||||||
|
dst_bag = tgt_strip.channelbags[0]
|
||||||
|
|
||||||
|
if not dst_bag:
|
||||||
|
# Если в целевом стрипе нет сумок, это странно, но можно создать
|
||||||
|
# (Метод создания может зависеть от конкретного подтипа стрипа в 5.0)
|
||||||
|
continue
|
||||||
|
|
||||||
|
#print(f"Обработка channelbag: {src_bag.name}, кривых: {len(src_bag.fcurves)}")
|
||||||
|
|
||||||
|
# 4. Итерируемся по fcurves внутри сумки
|
||||||
|
for src_fcurve in src_bag.fcurves:
|
||||||
|
dst_fcurve = dst_bag.fcurves.find(src_fcurve.data_path, index=src_fcurve.array_index)
|
||||||
|
|
||||||
|
if not dst_fcurve:
|
||||||
|
dst_fcurve = dst_bag.fcurves.new(data_path=src_fcurve.data_path, index=src_fcurve.array_index)
|
||||||
|
|
||||||
|
# 5. Копируем ключи с офсетом
|
||||||
|
for keyframe in src_fcurve.keyframe_points:
|
||||||
|
new_frame = keyframe.co[0] + offset
|
||||||
|
new_value = keyframe.co[1]
|
||||||
|
|
||||||
|
new_kp = dst_fcurve.keyframe_points.insert(new_frame, new_value, options={'FAST'})
|
||||||
|
new_kp.interpolation = keyframe.interpolation
|
||||||
|
|
||||||
|
# Обновляем интерполяцию
|
||||||
|
for fc in dst_bag.fcurves:
|
||||||
|
fc.update()
|
||||||
|
|
||||||
|
print(f"Анимация успешно дозаписана. Новый конец: {tgt_action.frame_range[1]}")
|
||||||
|
|
||||||
|
append_layered_action_5_0('Armature.001', 'Armature')
|
||||||
|
|
||||||
192
blender scripts/bone_anim_script01.py
Normal file
192
blender scripts/bone_anim_script01.py
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
import bpy
|
||||||
|
import bmesh
|
||||||
|
|
||||||
|
# Имена mesh и арматуры
|
||||||
|
mesh_name = "arm"
|
||||||
|
armature_name = "Reference"
|
||||||
|
|
||||||
|
# Находим объект mesh по имени
|
||||||
|
mesh_obj = bpy.data.objects.get(mesh_name)
|
||||||
|
|
||||||
|
# Находим объект арматуры по имени
|
||||||
|
armature_obj = bpy.data.objects.get(armature_name)
|
||||||
|
|
||||||
|
# Устанавливаем текущий кадр на 0
|
||||||
|
bpy.context.scene.frame_set(0)
|
||||||
|
|
||||||
|
# Принудительно обновляем сцену, чтобы применить анимацию
|
||||||
|
bpy.context.view_layer.update()
|
||||||
|
|
||||||
|
# Открываем файл для записи
|
||||||
|
with open("C:\\Work\\Projects\\witcher001\\resources\\w\\zombie002.txt", "w") as file:
|
||||||
|
# Обработка арматуры и анимации
|
||||||
|
if armature_obj and armature_obj.type == 'ARMATURE':
|
||||||
|
file.write("=== Armature Matrix ===\n")
|
||||||
|
for row in armature_obj.matrix_world:
|
||||||
|
file.write(f"{row}\n")
|
||||||
|
file.write(f"=== Armature Bones: {len(armature_obj.data.bones)}\n")
|
||||||
|
for bone in armature_obj.data.bones:
|
||||||
|
# Записываем имя кости, длину и связи
|
||||||
|
file.write(f"Bone: {bone.name}\n")
|
||||||
|
file.write(f" HEAD_LOCAL: {bone.head_local}\n")
|
||||||
|
file.write(f" TAIL_LOCAL: {bone.tail_local}\n")
|
||||||
|
file.write(f" Length: {(bone.tail_local - bone.head_local).length}\n")
|
||||||
|
for row in bone.matrix:
|
||||||
|
file.write(f" {row}\n")
|
||||||
|
file.write(f" Parent: {bone.parent.name if bone.parent else 'None'}\n")
|
||||||
|
file.write(f" Children: {[child.name for child in bone.children]}\n")
|
||||||
|
|
||||||
|
# Обработка mesh
|
||||||
|
if mesh_obj and mesh_obj.type == 'MESH':
|
||||||
|
# Создаем копию mesh, чтобы не изменять оригинал
|
||||||
|
mesh_copy = mesh_obj.copy()
|
||||||
|
mesh_copy.data = mesh_obj.data.copy()
|
||||||
|
bpy.context.collection.objects.link(mesh_copy)
|
||||||
|
|
||||||
|
# Убедимся, что объект активен
|
||||||
|
bpy.context.view_layer.objects.active = mesh_copy
|
||||||
|
mesh_copy.select_set(True)
|
||||||
|
|
||||||
|
# Применяем модификатор Armature (если он есть)
|
||||||
|
for modifier in mesh_copy.modifiers:
|
||||||
|
if modifier.type == 'ARMATURE':
|
||||||
|
# Включаем модификатор, если он отключен
|
||||||
|
if not modifier.show_viewport:
|
||||||
|
modifier.show_viewport = True
|
||||||
|
if not modifier.show_render:
|
||||||
|
modifier.show_render = True
|
||||||
|
|
||||||
|
# Проверяем, что модификатор связан с арматурой
|
||||||
|
if modifier.object is None:
|
||||||
|
print(f"Модификатор Armature на объекте {mesh_copy.name} не связан с арматурой. Пропускаем.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Временно применяем модификатор, чтобы получить правильные координаты вершин
|
||||||
|
try:
|
||||||
|
bpy.ops.object.modifier_apply(modifier=modifier.name)
|
||||||
|
except RuntimeError as e:
|
||||||
|
print(f"Ошибка при применении модификатора Armature: {e}")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Переходим в режим редактирования
|
||||||
|
bpy.ops.object.mode_set(mode='EDIT')
|
||||||
|
|
||||||
|
# Получаем BMesh представление mesh
|
||||||
|
bm = bmesh.from_edit_mesh(mesh_copy.data)
|
||||||
|
|
||||||
|
# Записываем список вершин
|
||||||
|
file.write(f"===Vertices: {len(bm.verts)}\n")
|
||||||
|
for vertex in bm.verts:
|
||||||
|
file.write(f"Vertex {vertex.index}: {vertex.co}\n")
|
||||||
|
|
||||||
|
# Убедимся, что у меша есть UV слой
|
||||||
|
uv_layer = bm.loops.layers.uv.active
|
||||||
|
if not uv_layer:
|
||||||
|
file.write("UV слой не найден.\n")
|
||||||
|
|
||||||
|
if uv_layer:
|
||||||
|
file.write(f"===UV Coordinates:\n")
|
||||||
|
file.write(f"Face count: {len(bm.faces)}\n")
|
||||||
|
|
||||||
|
for face in bm.faces:
|
||||||
|
file.write(f"Face {face.index}\n")
|
||||||
|
file.write(f"UV Count: {len(face.loops)}\n")
|
||||||
|
for loop in face.loops:
|
||||||
|
uv_coords = loop[uv_layer].uv
|
||||||
|
file.write(f" UV {uv_coords}\n")
|
||||||
|
|
||||||
|
# Записываем нормали
|
||||||
|
file.write(f"===Normals:\n")
|
||||||
|
for vertex in bm.verts:
|
||||||
|
file.write(f"Vertex {vertex.index}: Normal {vertex.normal}\n")
|
||||||
|
|
||||||
|
# Записываем треугольники (индексы вершин)
|
||||||
|
file.write(f"===Triangles: {len(bm.faces)}\n")
|
||||||
|
for face in bm.faces:
|
||||||
|
if len(face.verts) == 3: # Проверяем, что это треугольник
|
||||||
|
verts_indices = [vert.index for vert in face.verts]
|
||||||
|
file.write(f"Triangle: {verts_indices}\n")
|
||||||
|
|
||||||
|
# Возвращаемся в объектный режим
|
||||||
|
bpy.ops.object.mode_set(mode='OBJECT')
|
||||||
|
|
||||||
|
# Записываем веса вершин
|
||||||
|
file.write("=== Vertex Weights ===\n")
|
||||||
|
for vertex in mesh_copy.data.vertices:
|
||||||
|
file.write(f"Vertex {vertex.index}:\n")
|
||||||
|
file.write(f"Vertex groups: {len(vertex.groups)}\n")
|
||||||
|
for group in vertex.groups:
|
||||||
|
group_name = mesh_copy.vertex_groups[group.group].name
|
||||||
|
file.write(f" Group: '{group_name}', Weight: {group.weight}\n")
|
||||||
|
|
||||||
|
# Удаляем временную копию mesh
|
||||||
|
bpy.data.objects.remove(mesh_copy)
|
||||||
|
else:
|
||||||
|
file.write(f"Объект с именем '{mesh_name}' не найден или не является mesh.\n")
|
||||||
|
|
||||||
|
# Обработка арматуры и анимации
|
||||||
|
if armature_obj and armature_obj.type == 'ARMATURE':
|
||||||
|
|
||||||
|
# Получаем все ключевые кадры для арматуры
|
||||||
|
file.write("=== Animation Keyframes ===\n")
|
||||||
|
if armature_obj.animation_data and armature_obj.animation_data.action:
|
||||||
|
action = armature_obj.animation_data.action
|
||||||
|
|
||||||
|
# Собираем все уникальные ключевые кадры
|
||||||
|
keyframes = set()
|
||||||
|
|
||||||
|
# Логика для Blender 5.0 (Strip-based / ChannelBag structure)
|
||||||
|
if hasattr(action, "layers"):
|
||||||
|
for layer in action.layers:
|
||||||
|
if hasattr(layer, "strips"):
|
||||||
|
for strip in layer.strips:
|
||||||
|
# Проверяем наличие channelbags (согласно вашему dir(strip))
|
||||||
|
if hasattr(strip, "channelbags"):
|
||||||
|
for bag in strip.channelbags:
|
||||||
|
for fcurve in bag.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
# На случай, если в этой версии используется единственное число
|
||||||
|
elif hasattr(strip, "channelbag") and strip.channelbag:
|
||||||
|
for fcurve in strip.channelbag.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
# Фоллбек для Legacy экшенов
|
||||||
|
if not keyframes and hasattr(action, "fcurves"):
|
||||||
|
for fcurve in action.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
keyframes = sorted(keyframes)
|
||||||
|
|
||||||
|
# Сортируем ключевые кадры
|
||||||
|
keyframes = sorted(keyframes)
|
||||||
|
|
||||||
|
# Сохраняем координаты и матрицы поворота для каждой кости на каждом ключевом кадре
|
||||||
|
file.write("=== Bone Transforms per Keyframe ===\n")
|
||||||
|
file.write(f"Keyframes: {len(keyframes)}\n")
|
||||||
|
for frame in keyframes:
|
||||||
|
# Устанавливаем текущий кадр
|
||||||
|
bpy.context.scene.frame_set(frame)
|
||||||
|
bpy.context.view_layer.update() # Обновляем сцену
|
||||||
|
|
||||||
|
file.write(f"Frame: {frame}\n")
|
||||||
|
for bone in armature_obj.pose.bones:
|
||||||
|
# Получаем координаты и матрицу поворота кости в мировом пространстве
|
||||||
|
matrix = bone.matrix
|
||||||
|
location = matrix.translation
|
||||||
|
rotation = matrix.to_euler()
|
||||||
|
|
||||||
|
# Записываем данные
|
||||||
|
file.write(f" Bone: {bone.name}\n")
|
||||||
|
file.write(f" Location: {location}\n")
|
||||||
|
file.write(f" Rotation: {rotation}\n")
|
||||||
|
file.write(f" Matrix:\n")
|
||||||
|
for row in matrix:
|
||||||
|
file.write(f" {row}\n")
|
||||||
|
else:
|
||||||
|
file.write(f"Объект с именем '{armature_name}' не найден или не является арматурой.\n")
|
||||||
|
|
||||||
|
print("Данные сохранены в файл 'mesh_armature_and_animation_data.txt'")
|
||||||
228
blender scripts/export_anim_001.py
Normal file
228
blender scripts/export_anim_001.py
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
import bpy
|
||||||
|
import bmesh
|
||||||
|
|
||||||
|
#!
|
||||||
|
|
||||||
|
# Имена mesh и арматуры
|
||||||
|
mesh_name = "Joined"
|
||||||
|
armature_name = "Armature"
|
||||||
|
|
||||||
|
# Находим объект mesh по имени
|
||||||
|
mesh_obj = bpy.data.objects.get(mesh_name)
|
||||||
|
|
||||||
|
# Находим объект арматуры по имени
|
||||||
|
armature_obj = bpy.data.objects.get(armature_name)
|
||||||
|
|
||||||
|
# Устанавливаем текущий кадр на 0
|
||||||
|
bpy.context.scene.frame_set(0)
|
||||||
|
|
||||||
|
# Принудительно обновляем сцену, чтобы применить анимацию
|
||||||
|
bpy.context.view_layer.update()
|
||||||
|
|
||||||
|
# Открываем файл для записи
|
||||||
|
with open("C:\\Work\\Media\\witcher\\2026-04-13\\output\\gg_stand_idle001.txt", "w") as file:
|
||||||
|
# Обработка арматуры и анимации
|
||||||
|
if armature_obj and armature_obj.type == 'ARMATURE':
|
||||||
|
file.write("=== Armature Matrix ===\n")
|
||||||
|
for row in armature_obj.matrix_world:
|
||||||
|
file.write(f"{row}\n")
|
||||||
|
file.write(f"=== Armature Bones: {len(armature_obj.data.bones)}\n")
|
||||||
|
for bone in armature_obj.data.bones:
|
||||||
|
# Записываем имя кости, длину и связи
|
||||||
|
file.write(f"Bone: {bone.name}\n")
|
||||||
|
file.write(f" HEAD_LOCAL: {bone.head_local}\n")
|
||||||
|
file.write(f" TAIL_LOCAL: {bone.tail_local}\n")
|
||||||
|
file.write(f" Length: {(bone.tail_local - bone.head_local).length}\n")
|
||||||
|
for row in bone.matrix:
|
||||||
|
file.write(f" {row}\n")
|
||||||
|
file.write(f" Parent: {bone.parent.name if bone.parent else 'None'}\n")
|
||||||
|
file.write(f" Children: {[child.name for child in bone.children]}\n")
|
||||||
|
|
||||||
|
# Обработка mesh
|
||||||
|
if mesh_obj and mesh_obj.type == 'MESH':
|
||||||
|
# Создаем копию mesh, чтобы не изменять оригинал
|
||||||
|
mesh_copy = mesh_obj.copy()
|
||||||
|
mesh_copy.data = mesh_obj.data.copy()
|
||||||
|
bpy.context.collection.objects.link(mesh_copy)
|
||||||
|
|
||||||
|
# Убедимся, что объект активен
|
||||||
|
bpy.context.view_layer.objects.active = mesh_copy
|
||||||
|
mesh_copy.select_set(True)
|
||||||
|
|
||||||
|
# Применяем модификатор Armature (если он есть)
|
||||||
|
for modifier in mesh_copy.modifiers:
|
||||||
|
if modifier.type == 'ARMATURE':
|
||||||
|
# Включаем модификатор, если он отключен
|
||||||
|
if not modifier.show_viewport:
|
||||||
|
modifier.show_viewport = True
|
||||||
|
if not modifier.show_render:
|
||||||
|
modifier.show_render = True
|
||||||
|
|
||||||
|
# Проверяем, что модификатор связан с арматурой
|
||||||
|
if modifier.object is None:
|
||||||
|
print(f"Модификатор Armature на объекте {mesh_copy.name} не связан с арматурой. Пропускаем.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Временно применяем модификатор, чтобы получить правильные координаты вершин
|
||||||
|
try:
|
||||||
|
bpy.ops.object.modifier_apply(modifier=modifier.name)
|
||||||
|
except RuntimeError as e:
|
||||||
|
print(f"Ошибка при применении модификатора Armature: {e}")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Переходим в режим редактирования
|
||||||
|
bpy.ops.object.mode_set(mode='EDIT')
|
||||||
|
|
||||||
|
# Получаем BMesh представление mesh
|
||||||
|
bm = bmesh.from_edit_mesh(mesh_copy.data)
|
||||||
|
|
||||||
|
# Записываем список вершин
|
||||||
|
file.write(f"===Vertices: {len(bm.verts)}\n")
|
||||||
|
for vertex in bm.verts:
|
||||||
|
file.write(f"Vertex {vertex.index}: {vertex.co}\n")
|
||||||
|
|
||||||
|
# Убедимся, что у меша есть UV слой
|
||||||
|
uv_layer = bm.loops.layers.uv.active
|
||||||
|
if not uv_layer:
|
||||||
|
file.write("UV слой не найден.\n")
|
||||||
|
|
||||||
|
if uv_layer:
|
||||||
|
file.write(f"===UV Coordinates:\n")
|
||||||
|
file.write(f"Face count: {len(bm.faces)}\n")
|
||||||
|
|
||||||
|
for face in bm.faces:
|
||||||
|
file.write(f"Face {face.index}\n")
|
||||||
|
file.write(f"UV Count: {len(face.loops)}\n")
|
||||||
|
for loop in face.loops:
|
||||||
|
uv_coords = loop[uv_layer].uv
|
||||||
|
file.write(f" UV {uv_coords}\n")
|
||||||
|
|
||||||
|
# Записываем нормали
|
||||||
|
file.write(f"===Normals:\n")
|
||||||
|
for vertex in bm.verts:
|
||||||
|
file.write(f"Vertex {vertex.index}: Normal {vertex.normal}\n")
|
||||||
|
|
||||||
|
# Записываем треугольники (индексы вершин)
|
||||||
|
file.write(f"===Triangles: {len(bm.faces)}\n")
|
||||||
|
for face in bm.faces:
|
||||||
|
if len(face.verts) == 3: # Проверяем, что это треугольник
|
||||||
|
verts_indices = [vert.index for vert in face.verts]
|
||||||
|
file.write(f"Triangle: {verts_indices}\n")
|
||||||
|
|
||||||
|
# Возвращаемся в объектный режим
|
||||||
|
bpy.ops.object.mode_set(mode='OBJECT')
|
||||||
|
|
||||||
|
# Записываем веса вершин
|
||||||
|
file.write("=== Vertex Weights (Max 5 bones per vertex) ===\n")
|
||||||
|
|
||||||
|
MAX_BONES = 5
|
||||||
|
|
||||||
|
for vertex in mesh_copy.data.vertices:
|
||||||
|
# Извлекаем все группы и веса для текущей вершины
|
||||||
|
all_weights = []
|
||||||
|
for group_element in vertex.groups:
|
||||||
|
all_weights.append({
|
||||||
|
'index': group_element.group,
|
||||||
|
'weight': group_element.weight
|
||||||
|
})
|
||||||
|
|
||||||
|
# Если костей больше лимита, фильтруем и перераспределяем
|
||||||
|
if len(all_weights) > MAX_BONES:
|
||||||
|
# Сортируем по весу (от большего к меньшему)
|
||||||
|
all_weights.sort(key=lambda x: x['weight'], reverse=True)
|
||||||
|
|
||||||
|
# Берем только топ-5
|
||||||
|
kept_weights = all_weights[:MAX_BONES]
|
||||||
|
|
||||||
|
# Считаем сумму весов оставшихся костей для нормализации
|
||||||
|
total_weight = sum(gw['weight'] for gw in kept_weights)
|
||||||
|
|
||||||
|
if total_weight > 0:
|
||||||
|
for gw in kept_weights:
|
||||||
|
gw['weight'] /= total_weight
|
||||||
|
else:
|
||||||
|
# На случай, если у всех веса были по 0.0 (редкий баг меша)
|
||||||
|
kept_weights[0]['weight'] = 1.0
|
||||||
|
|
||||||
|
final_weights = kept_weights
|
||||||
|
else:
|
||||||
|
final_weights = all_weights
|
||||||
|
|
||||||
|
file.write(f"Vertex {vertex.index}:\n")
|
||||||
|
file.write(f"Vertex groups: {len(final_weights)}\n")
|
||||||
|
|
||||||
|
for gw in final_weights:
|
||||||
|
group_name = mesh_copy.vertex_groups[gw['index']].name
|
||||||
|
file.write(f" Group: '{group_name}', Weight: {gw['weight']:.6f}\n")
|
||||||
|
|
||||||
|
# Удаляем временную копию mesh
|
||||||
|
bpy.data.objects.remove(mesh_copy)
|
||||||
|
else:
|
||||||
|
file.write(f"Объект с именем '{mesh_name}' не найден или не является mesh.\n")
|
||||||
|
|
||||||
|
# Обработка арматуры и анимации
|
||||||
|
if armature_obj and armature_obj.type == 'ARMATURE':
|
||||||
|
|
||||||
|
# Получаем все ключевые кадры для арматуры
|
||||||
|
file.write("=== Animation Keyframes ===\n")
|
||||||
|
if armature_obj.animation_data and armature_obj.animation_data.action:
|
||||||
|
action = armature_obj.animation_data.action
|
||||||
|
|
||||||
|
# Собираем все уникальные ключевые кадры
|
||||||
|
keyframes = set()
|
||||||
|
|
||||||
|
# Логика для Blender 5.0 (Strip-based / ChannelBag structure)
|
||||||
|
if hasattr(action, "layers"):
|
||||||
|
for layer in action.layers:
|
||||||
|
if hasattr(layer, "strips"):
|
||||||
|
for strip in layer.strips:
|
||||||
|
# Проверяем наличие channelbags (согласно вашему dir(strip))
|
||||||
|
if hasattr(strip, "channelbags"):
|
||||||
|
for bag in strip.channelbags:
|
||||||
|
for fcurve in bag.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
# На случай, если в этой версии используется единственное число
|
||||||
|
elif hasattr(strip, "channelbag") and strip.channelbag:
|
||||||
|
for fcurve in strip.channelbag.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
# Фоллбек для Legacy экшенов
|
||||||
|
if not keyframes and hasattr(action, "fcurves"):
|
||||||
|
for fcurve in action.fcurves:
|
||||||
|
for keyframe in fcurve.keyframe_points:
|
||||||
|
keyframes.add(int(keyframe.co[0]))
|
||||||
|
|
||||||
|
keyframes = sorted(keyframes)
|
||||||
|
|
||||||
|
# Сортируем ключевые кадры
|
||||||
|
keyframes = sorted(keyframes)
|
||||||
|
|
||||||
|
# Сохраняем координаты и матрицы поворота для каждой кости на каждом ключевом кадре
|
||||||
|
file.write("=== Bone Transforms per Keyframe ===\n")
|
||||||
|
file.write(f"Keyframes: {len(keyframes)}\n")
|
||||||
|
for frame in keyframes:
|
||||||
|
# Устанавливаем текущий кадр
|
||||||
|
bpy.context.scene.frame_set(frame)
|
||||||
|
bpy.context.view_layer.update() # Обновляем сцену
|
||||||
|
|
||||||
|
file.write(f"Frame: {frame}\n")
|
||||||
|
for bone in armature_obj.pose.bones:
|
||||||
|
# Получаем координаты и матрицу поворота кости в мировом пространстве
|
||||||
|
matrix = bone.matrix
|
||||||
|
location = matrix.translation
|
||||||
|
rotation = matrix.to_euler()
|
||||||
|
|
||||||
|
# Записываем данные
|
||||||
|
file.write(f" Bone: {bone.name}\n")
|
||||||
|
file.write(f" Location: {location}\n")
|
||||||
|
file.write(f" Rotation: {rotation}\n")
|
||||||
|
file.write(f" Matrix:\n")
|
||||||
|
for row in matrix:
|
||||||
|
file.write(f" {row}\n")
|
||||||
|
else:
|
||||||
|
file.write(f"Объект с именем '{armature_name}' не найден или не является арматурой.\n")
|
||||||
|
|
||||||
|
print("Данные сохранены в файл 'mesh_armature_and_animation_data.txt'")
|
||||||
111
blender scripts/generate_tree001.py
Normal file
111
blender scripts/generate_tree001.py
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
import bpy
|
||||||
|
import bmesh
|
||||||
|
import mathutils
|
||||||
|
import random
|
||||||
|
import math
|
||||||
|
|
||||||
|
class SolidTreeGenerator:
|
||||||
|
def __init__(self, levels=5, length=3.0, radius=0.3):
|
||||||
|
self.levels = levels
|
||||||
|
self.base_length = length
|
||||||
|
self.base_radius = radius
|
||||||
|
|
||||||
|
# Хранилище для данных: (start_pos, end_pos, radius_start, radius_end)
|
||||||
|
self.branches_data = []
|
||||||
|
|
||||||
|
def calculate_tree(self, start_pos, direction, length, radius, level):
|
||||||
|
if level <= 0 or length < 0.1:
|
||||||
|
return
|
||||||
|
|
||||||
|
end_pos = start_pos + direction * length
|
||||||
|
# Сохраняем данные сегмента
|
||||||
|
self.branches_data.append({
|
||||||
|
'start': start_pos.copy(),
|
||||||
|
'end': end_pos.copy(),
|
||||||
|
'r_start': radius,
|
||||||
|
'r_end': radius * 0.7
|
||||||
|
})
|
||||||
|
|
||||||
|
# 1. Основной ствол (продолжение)
|
||||||
|
trunk_dir = (direction + self.get_random_vector(0.1)).normalized()
|
||||||
|
self.calculate_tree(end_pos, trunk_dir, length * 0.8, radius * 0.7, level - 1)
|
||||||
|
|
||||||
|
# 2. Боковые ветки (ветвление)
|
||||||
|
if level > 1:
|
||||||
|
num_sides = random.randint(2, 3) # Минимум 2 ветки для видимости
|
||||||
|
for _ in range(num_sides):
|
||||||
|
# Создаем вектор, сильно отклоненный от ствола (30-60 градусов)
|
||||||
|
axis = self.get_random_vector(1.0).normalized()
|
||||||
|
angle = math.radians(random.uniform(30, 60))
|
||||||
|
|
||||||
|
side_dir = direction.copy()
|
||||||
|
side_dir.rotate(mathutils.Quaternion(axis, angle))
|
||||||
|
|
||||||
|
# Боковые ветки короче
|
||||||
|
self.calculate_tree(end_pos, side_dir, length * 0.6, radius * 0.5, level - 1)
|
||||||
|
|
||||||
|
def get_random_vector(self, intensity):
|
||||||
|
return mathutils.Vector((
|
||||||
|
random.uniform(-intensity, intensity),
|
||||||
|
random.uniform(-intensity, intensity),
|
||||||
|
random.uniform(-intensity, intensity)
|
||||||
|
))
|
||||||
|
|
||||||
|
def build_mesh(self):
|
||||||
|
mesh = bpy.data.meshes.new("TreeMesh")
|
||||||
|
obj = bpy.data.objects.new("Tree", mesh)
|
||||||
|
bpy.context.collection.objects.link(obj)
|
||||||
|
|
||||||
|
bm = bmesh.new()
|
||||||
|
skin_layer = bm.verts.layers.skin.verify()
|
||||||
|
|
||||||
|
# Словарь для предотвращения дублирования вершин в одной точке
|
||||||
|
# Ключ - кортеж координат, Значение - объект вершины BMesh
|
||||||
|
vert_map = {}
|
||||||
|
|
||||||
|
for b in self.branches_data:
|
||||||
|
# Превращаем координаты в кортежи для словаря
|
||||||
|
s_key = tuple(round(v, 4) for v in b['start'])
|
||||||
|
e_key = tuple(round(v, 4) for v in b['end'])
|
||||||
|
|
||||||
|
# Получаем или создаем начальную вершину
|
||||||
|
if s_key not in vert_map:
|
||||||
|
v_start = bm.verts.new(b['start'])
|
||||||
|
v_start[skin_layer].radius = (b['r_start'], b['r_start'])
|
||||||
|
vert_map[s_key] = v_start
|
||||||
|
else:
|
||||||
|
v_start = vert_map[s_key]
|
||||||
|
|
||||||
|
# Получаем или создаем конечную вершину
|
||||||
|
if e_key not in vert_map:
|
||||||
|
v_end = bm.verts.new(b['end'])
|
||||||
|
v_end[skin_layer].radius = (b['r_end'], b['r_end'])
|
||||||
|
vert_map[e_key] = v_end
|
||||||
|
else:
|
||||||
|
v_end = vert_map[e_key]
|
||||||
|
|
||||||
|
# Создаем ребро, если его еще нет
|
||||||
|
if not bm.edges.get((v_start, v_end)):
|
||||||
|
bm.edges.new((v_start, v_end))
|
||||||
|
|
||||||
|
# Находим корень (самую нижнюю точку) и помечаем его
|
||||||
|
root_v = min(bm.verts, key=lambda v: v.co.z)
|
||||||
|
root_v[skin_layer].use_root = True
|
||||||
|
|
||||||
|
bm.to_mesh(mesh)
|
||||||
|
bm.free()
|
||||||
|
|
||||||
|
# Модификаторы
|
||||||
|
obj.modifiers.new(name="Skin", type='SKIN')
|
||||||
|
sub = obj.modifiers.new(name="Subdiv", type='SUBSURF')
|
||||||
|
sub.levels = 1 # Для начала 1, чтобы не тормозило
|
||||||
|
|
||||||
|
# Очистка сцены
|
||||||
|
bpy.ops.object.select_all(action='SELECT')
|
||||||
|
bpy.ops.object.delete()
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
generator = SolidTreeGenerator(levels=5, length=3.0, radius=0.4)
|
||||||
|
generator.calculate_tree(mathutils.Vector((0,0,0)), mathutils.Vector((0,0,1)), 3.0, 0.4, 5)
|
||||||
|
generator.build_mesh()
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ macro(check_and_download URL ARCHIVE_NAME EXTRACTED_DIR_NAME CHECK_FILE)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# 1) ZLIB (Нужна только для инклудов, если не используете emscripten порты)
|
# 1) ZLIB (Нужна только для инклудов, если не используете emscripten порты)
|
||||||
check_and_download("https://www.zlib.net/zlib131.zip" "zlib131.zip" "zlib-1.3.1" "CMakeLists.txt")
|
check_and_download("https://www.zlib.net/zlib132.zip" "zlib132.zip" "zlib-1.3.2" "CMakeLists.txt")
|
||||||
|
|
||||||
# 2) SDL2
|
# 2) SDL2
|
||||||
check_and_download("https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.32.10.zip" "release-2.32.10.zip" "SDL-release-2.32.10" "CMakeLists.txt")
|
check_and_download("https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.32.10.zip" "release-2.32.10.zip" "SDL-release-2.32.10" "CMakeLists.txt")
|
||||||
@ -47,3 +47,12 @@ check_and_download("https://download.savannah.gnu.org/releases/freetype/freetype
|
|||||||
|
|
||||||
# 8) SDL_ttf
|
# 8) SDL_ttf
|
||||||
check_and_download("https://github.com/libsdl-org/SDL_ttf/archive/refs/tags/release-2.24.0.zip" "release-2.24.0.zip" "SDL_ttf-release-2.24.0" "CMakeLists.txt")
|
check_and_download("https://github.com/libsdl-org/SDL_ttf/archive/refs/tags/release-2.24.0.zip" "release-2.24.0.zip" "SDL_ttf-release-2.24.0" "CMakeLists.txt")
|
||||||
|
|
||||||
|
# 9) Lua
|
||||||
|
check_and_download("https://github.com/lua/lua/archive/refs/tags/v5.4.8.zip" "lua-v5.4.8.zip" "lua-5.4.8" "lapi.c")
|
||||||
|
|
||||||
|
# 10) sol2 (header-only C++ bindings for Lua)
|
||||||
|
check_and_download("https://github.com/ThePhD/sol2/archive/refs/tags/v3.3.0.zip" "sol2-v3.3.0.zip" "sol2-3.3.0" "include/sol/sol.hpp")
|
||||||
|
|
||||||
|
# 11) SDL2_mixer
|
||||||
|
check_and_download("https://github.com/libsdl-org/SDL_mixer/archive/refs/tags/release-2.8.0.zip" "SDL_mixer-release-2.8.0.zip" "SDL_mixer-release-2.8.0" "CMakeLists.txt")
|
||||||
|
|||||||
@ -8,11 +8,16 @@ endmacro()
|
|||||||
|
|
||||||
set(BUILD_CONFIGS Debug Release)
|
set(BUILD_CONFIGS Debug Release)
|
||||||
|
|
||||||
|
# Map MinSizeRel and RelWithDebInfo to Release libs for all imported targets.
|
||||||
|
# Without this CMake warns that IMPORTED_LOCATION is missing for those configs.
|
||||||
|
set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release)
|
||||||
|
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release)
|
||||||
|
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
# 1) ZLIB (zlib131.zip → zlib-1.3.1) - без изменений
|
# 1) ZLIB (zlib131.zip → zlib-1.3.2) - без изменений
|
||||||
# ===========================================
|
# ===========================================
|
||||||
set(ZLIB_SRC_DIR "${THIRDPARTY_DIR}/zlib-1.3.1")
|
set(ZLIB_SRC_DIR "${THIRDPARTY_DIR}/zlib-1.3.2")
|
||||||
set(ZLIB_BUILD_DIR "${ZLIB_SRC_DIR}/build")
|
set(ZLIB_BUILD_DIR "${ZLIB_SRC_DIR}/build")
|
||||||
set(ZLIB_INSTALL_DIR "${ZLIB_SRC_DIR}/install")
|
set(ZLIB_INSTALL_DIR "${ZLIB_SRC_DIR}/install")
|
||||||
|
|
||||||
@ -76,8 +81,8 @@ set_target_properties(zlib_external_lib PROPERTIES
|
|||||||
#IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zlib.lib"
|
#IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zlib.lib"
|
||||||
|
|
||||||
# Можно также указать статические библиотеки, если вы хотите их использовать
|
# Можно также указать статические библиотеки, если вы хотите их использовать
|
||||||
IMPORTED_LOCATION_DEBUG "${ZLIB_INSTALL_DIR}/lib/zlibstaticd.lib"
|
IMPORTED_LOCATION_DEBUG "${ZLIB_INSTALL_DIR}/lib/zsd.lib"
|
||||||
IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zlibstatic.lib"
|
IMPORTED_LOCATION_RELEASE "${ZLIB_INSTALL_DIR}/lib/zs.lib"
|
||||||
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INSTALL_DIR}/include"
|
INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_INSTALL_DIR}/include"
|
||||||
)
|
)
|
||||||
@ -546,4 +551,178 @@ if(NOT TARGET boost_external_lib)
|
|||||||
add_library(boost_external_lib INTERFACE)
|
add_library(boost_external_lib INTERFACE)
|
||||||
# Boost заголовки находятся непосредственно в корне распакованной папки
|
# Boost заголовки находятся непосредственно в корне распакованной папки
|
||||||
target_include_directories(boost_external_lib INTERFACE "${BOOST_SRC_DIR}")
|
target_include_directories(boost_external_lib INTERFACE "${BOOST_SRC_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# 9) Lua (5.5.0) - embedded scripting language
|
||||||
|
# ===========================================
|
||||||
|
set(LUA_SRC_DIR "${THIRDPARTY_DIR}/lua-5.4.8")
|
||||||
|
|
||||||
|
if(NOT TARGET lua_static)
|
||||||
|
file(GLOB LUA_SOURCES "${LUA_SRC_DIR}/*.c")
|
||||||
|
# Exclude the standalone interpreter, compiler, and unity-build wrapper.
|
||||||
|
# onelua.c #includes all other .c files — compiling it alongside them
|
||||||
|
# causes every symbol to be defined twice.
|
||||||
|
list(REMOVE_ITEM LUA_SOURCES
|
||||||
|
"${LUA_SRC_DIR}/lua.c"
|
||||||
|
"${LUA_SRC_DIR}/luac.c"
|
||||||
|
"${LUA_SRC_DIR}/onelua.c"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(lua_static STATIC ${LUA_SOURCES})
|
||||||
|
target_include_directories(lua_static PUBLIC "${LUA_SRC_DIR}")
|
||||||
|
target_compile_definitions(lua_static PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# 10) sol2 (3.3.0) - header-only C++ bindings for Lua
|
||||||
|
# ===========================================
|
||||||
|
set(SOL2_SRC_DIR "${THIRDPARTY_DIR}/sol2-3.3.0")
|
||||||
|
|
||||||
|
# Apply patch for Clang/Emscripten compatibility in optional<T&>::emplace().
|
||||||
|
# The sentinel file prevents re-applying on subsequent cmake runs.
|
||||||
|
set(_sol2_sentinel "${SOL2_SRC_DIR}/.patched")
|
||||||
|
if(NOT EXISTS "${_sol2_sentinel}")
|
||||||
|
find_package(Git QUIET)
|
||||||
|
if(GIT_FOUND)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/patches/sol2-3.3.0-clang-optional.patch"
|
||||||
|
WORKING_DIRECTORY "${SOL2_SRC_DIR}"
|
||||||
|
RESULT_VARIABLE _sol2_patch_res
|
||||||
|
)
|
||||||
|
if(_sol2_patch_res EQUAL 0)
|
||||||
|
file(WRITE "${_sol2_sentinel}" "patched\n")
|
||||||
|
message(STATUS "Applied sol2 Clang optional patch")
|
||||||
|
else()
|
||||||
|
message(WARNING "sol2 patch failed (exit ${_sol2_patch_res}) — Clang/Emscripten builds may not compile")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "Git not found — cannot apply sol2 patch automatically. "
|
||||||
|
"Apply cmake/patches/sol2-3.3.0-clang-optional.patch manually.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT TARGET sol2_external_lib)
|
||||||
|
add_library(sol2_external_lib INTERFACE)
|
||||||
|
target_include_directories(sol2_external_lib INTERFACE "${SOL2_SRC_DIR}/include")
|
||||||
|
target_link_libraries(sol2_external_lib INTERFACE lua_static)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ===========================================
|
||||||
|
# 11) SDL2_mixer (2.8.0) – сборка из исходников
|
||||||
|
# ===========================================
|
||||||
|
set(SDL2MIXER_SRC_DIR "${THIRDPARTY_DIR}/SDL_mixer-release-2.8.0")
|
||||||
|
set(SDL2MIXER_BASE_DIR "${SDL2MIXER_SRC_DIR}/install")
|
||||||
|
set(SDL2MIXER_BASE_DIR "${SDL2MIXER_BASE_DIR}" CACHE PATH "SDL2_mixer install base directory" FORCE)
|
||||||
|
|
||||||
|
set(_have_sdl2mixer TRUE)
|
||||||
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
||||||
|
if(NOT EXISTS "${SDL2MIXER_BASE_DIR}-${cfg}/lib/SDL2_mixer.lib" AND
|
||||||
|
NOT EXISTS "${SDL2MIXER_BASE_DIR}-${cfg}/lib/SDL2_mixerd.lib")
|
||||||
|
set(_have_sdl2mixer FALSE)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(NOT _have_sdl2mixer)
|
||||||
|
foreach(cfg IN LISTS BUILD_CONFIGS)
|
||||||
|
if(cfg STREQUAL "Debug")
|
||||||
|
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2d.lib")
|
||||||
|
else()
|
||||||
|
set(_SDL2_LIB "${SDL2_INSTALL_DIR}/lib/SDL2.lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
log("Configuring SDL2_mixer (${cfg}) ...")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-G "${CMAKE_GENERATOR}"
|
||||||
|
-S "${SDL2MIXER_SRC_DIR}"
|
||||||
|
-B "${SDL2MIXER_SRC_DIR}/build-${cfg}"
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${SDL2MIXER_BASE_DIR}-${cfg}
|
||||||
|
-DCMAKE_PREFIX_PATH=${SDL2_INSTALL_DIR}
|
||||||
|
-DSDL2_LIBRARY=${_SDL2_LIB}
|
||||||
|
-DSDL2_INCLUDE_DIR=${SDL2_INSTALL_DIR}/include/SDL2
|
||||||
|
-DSDL2MIXER_DEPS_SHARED=OFF
|
||||||
|
-DSDL2MIXER_VENDORED=ON
|
||||||
|
-DSDL2MIXER_SAMPLES=OFF
|
||||||
|
-DSDL2MIXER_MUSIC_CMD=OFF
|
||||||
|
-DSDL2MIXER_MOD=OFF
|
||||||
|
-DSDL2MIXER_MIDI=OFF
|
||||||
|
-DSDL2MIXER_OPUS=OFF
|
||||||
|
-DSDL2MIXER_WAVPACK=OFF
|
||||||
|
-DSDL2MIXER_MP3_MPG123=OFF
|
||||||
|
-DSDL2MIXER_MP3_DRMP3=ON
|
||||||
|
-DSDL2MIXER_FLAC_DRFLAC=ON
|
||||||
|
-DSDL2MIXER_OGG_STB=ON
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_OGG=TRUE
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_Vorbis=TRUE
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_FLAC=TRUE
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_MPG123=TRUE
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_LibModPlug=TRUE
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_FluidLite=TRUE
|
||||||
|
RESULT_VARIABLE _mixer_cfg_res
|
||||||
|
OUTPUT_VARIABLE _mixer_cfg_out
|
||||||
|
ERROR_VARIABLE _mixer_cfg_err
|
||||||
|
)
|
||||||
|
if(NOT _mixer_cfg_res EQUAL 0)
|
||||||
|
message(STATUS "SDL2_mixer configure stdout: ${_mixer_cfg_out}")
|
||||||
|
message(STATUS "SDL2_mixer configure stderr: ${_mixer_cfg_err}")
|
||||||
|
message(FATAL_ERROR "SDL2_mixer configure failed for ${cfg}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
log("Building SDL2_mixer (${cfg}) ...")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
--build "${SDL2MIXER_SRC_DIR}/build-${cfg}" --config ${cfg}
|
||||||
|
RESULT_VARIABLE _mixer_build_res
|
||||||
|
)
|
||||||
|
if(NOT _mixer_build_res EQUAL 0)
|
||||||
|
message(FATAL_ERROR "SDL2_mixer build failed for ${cfg}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
log("Installing SDL2_mixer (${cfg}) ...")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
--install "${SDL2MIXER_SRC_DIR}/build-${cfg}" --config ${cfg}
|
||||||
|
RESULT_VARIABLE _mixer_inst_res
|
||||||
|
)
|
||||||
|
if(NOT _mixer_inst_res EQUAL 0)
|
||||||
|
message(FATAL_ERROR "SDL2_mixer install failed for ${cfg}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(_mixer_debug_lib "")
|
||||||
|
foreach(cand
|
||||||
|
"${SDL2MIXER_BASE_DIR}-Debug/lib/SDL2_mixerd.lib"
|
||||||
|
"${SDL2MIXER_BASE_DIR}-Debug/lib/SDL2_mixer.lib"
|
||||||
|
)
|
||||||
|
if(EXISTS "${cand}")
|
||||||
|
set(_mixer_debug_lib "${cand}")
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(_mixer_release_lib "")
|
||||||
|
foreach(cand
|
||||||
|
"${SDL2MIXER_BASE_DIR}-Release/lib/SDL2_mixer.lib"
|
||||||
|
)
|
||||||
|
if(EXISTS "${cand}")
|
||||||
|
set(_mixer_release_lib "${cand}")
|
||||||
|
break()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(_mixer_debug_lib STREQUAL "" OR _mixer_release_lib STREQUAL "")
|
||||||
|
message(FATAL_ERROR "SDL2_mixer libs not found in ${SDL2MIXER_BASE_DIR}-Debug/Release")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_library(SDL2_mixer_external_lib UNKNOWN IMPORTED GLOBAL)
|
||||||
|
set_target_properties(SDL2_mixer_external_lib PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG "${_mixer_debug_lib}"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${_mixer_release_lib}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"$<IF:$<CONFIG:Debug>,${SDL2MIXER_BASE_DIR}-Debug/include,${SDL2MIXER_BASE_DIR}-Release/include>"
|
||||||
|
INTERFACE_LINK_LIBRARIES
|
||||||
|
"SDL2_external_lib"
|
||||||
|
)
|
||||||
14
cmake/patches/sol2-3.3.0-clang-optional.patch
Normal file
14
cmake/patches/sol2-3.3.0-clang-optional.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- a/include/sol/optional_implementation.hpp
|
||||||
|
+++ b/include/sol/optional_implementation.hpp
|
||||||
|
@@ -2189,7 +2189,10 @@
|
||||||
|
template <class... Args>
|
||||||
|
T& emplace(Args&&... args) noexcept {
|
||||||
|
static_assert(std::is_constructible<T, Args&&...>::value, "T must be constructible with Args");
|
||||||
|
|
||||||
|
*this = nullopt;
|
||||||
|
- this->construct(std::forward<Args>(args)...);
|
||||||
|
+ // Reference specialization stores a pointer; set it directly.
|
||||||
|
+ // construct() only exists in the non-reference specialization.
|
||||||
|
+ m_value = std::addressof(std::forward<Args>(args)...);
|
||||||
|
+ return *m_value;
|
||||||
|
}
|
||||||
156
config/ui.json
156
config/ui.json
@ -1,156 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1280,
|
|
||||||
"height": 720,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"name": "leftPanel",
|
|
||||||
"x": 100,
|
|
||||||
"y": 100,
|
|
||||||
"width": 320,
|
|
||||||
"height": 400,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"name": "mainButtons",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 300,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "playButton",
|
|
||||||
"x": 100,
|
|
||||||
"y": 300,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/button.png",
|
|
||||||
"hover": "./resources/sand.png",
|
|
||||||
"pressed": "./resources/button.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "settingsButton",
|
|
||||||
"x": 100,
|
|
||||||
"y": 200,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "wait",
|
|
||||||
"duration": 0.5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/sand.png",
|
|
||||||
"hover": "./resources/button.png",
|
|
||||||
"pressed": "./resources/sand.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "exitButton",
|
|
||||||
"x": 100,
|
|
||||||
"y": 100,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "wait",
|
|
||||||
"duration": 1.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bgScroll": {
|
|
||||||
"repeat": true,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
1280,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 5.0,
|
|
||||||
"easing": "linear"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/rock.png",
|
|
||||||
"hover": "./resources/button.png",
|
|
||||||
"pressed": "./resources/rock.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Slider",
|
|
||||||
"name": "musicVolumeSlider",
|
|
||||||
"x": 1140,
|
|
||||||
"y": 100,
|
|
||||||
"width": 10,
|
|
||||||
"height": 500,
|
|
||||||
"value": 0.5,
|
|
||||||
"orientation": "vertical",
|
|
||||||
"textures": {
|
|
||||||
"track": "./resources/musicVolumeBarTexture.png",
|
|
||||||
"knob": "./resources/musicVolumeBarButton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
312
convert_anim_to_binary.py
Normal file
312
convert_anim_to_binary.py
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Convert a text-based bone animation file to the BSAF binary format.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python convert_anim_to_binary.py <input.txt> <output.bin>
|
||||||
|
|
||||||
|
Binary format (BSAF v1) -- all values little-endian:
|
||||||
|
|
||||||
|
HEADER
|
||||||
|
4 bytes magic "BSAF"
|
||||||
|
uint32 version (1)
|
||||||
|
|
||||||
|
BONES
|
||||||
|
uint32 numBones
|
||||||
|
per bone:
|
||||||
|
3 x float boneStartWorld (from HEAD_LOCAL)
|
||||||
|
float boneLength
|
||||||
|
9 x float 3x3 rotation matrix (row-major)
|
||||||
|
int32 parentIndex (-1 if none)
|
||||||
|
uint32 numChildren
|
||||||
|
numChildren x int32 childIndices
|
||||||
|
|
||||||
|
VERTICES
|
||||||
|
uint32 numVertices
|
||||||
|
numVertices x 3 x float positions
|
||||||
|
|
||||||
|
UV COORDINATES
|
||||||
|
uint32 numFaces
|
||||||
|
numFaces x 6 x float 3 UV pairs per face (u0,v0,u1,v1,u2,v2)
|
||||||
|
|
||||||
|
NORMALS
|
||||||
|
numVertices x 3 x float normals
|
||||||
|
|
||||||
|
TRIANGLES
|
||||||
|
uint32 numTriangles
|
||||||
|
numTriangles x 3 x int32 vertex indices
|
||||||
|
|
||||||
|
VERTEX WEIGHTS
|
||||||
|
per vertex (numVertices):
|
||||||
|
uint32 numGroups
|
||||||
|
numGroups x (int32 boneIndex, float weight)
|
||||||
|
|
||||||
|
ANIMATION KEYFRAMES
|
||||||
|
uint32 numKeyframes
|
||||||
|
per keyframe:
|
||||||
|
int32 frameNumber
|
||||||
|
per bone (numBones, in index order 0..N-1):
|
||||||
|
3 x float location
|
||||||
|
16 x float 4x4 matrix (row-major)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import struct
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def parse_floats(line):
|
||||||
|
return [float(x) for x in re.findall(r'[-]?\d+\.\d+', line)]
|
||||||
|
|
||||||
|
|
||||||
|
def parse_first_int(line):
|
||||||
|
m = re.search(r'\d+', line)
|
||||||
|
if m:
|
||||||
|
return int(m.group())
|
||||||
|
raise ValueError(f"No integer found in: {line}")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_children(line):
|
||||||
|
return re.findall(r"'([^']+)'", line)
|
||||||
|
|
||||||
|
|
||||||
|
def convert(input_path, output_path):
|
||||||
|
with open(input_path, 'r', encoding='utf-8', errors='replace') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
idx = 0
|
||||||
|
|
||||||
|
def next_line():
|
||||||
|
nonlocal idx
|
||||||
|
line = lines[idx].rstrip()
|
||||||
|
idx += 1
|
||||||
|
return line
|
||||||
|
|
||||||
|
# --- Skip armature matrix (5 lines) ---
|
||||||
|
for _ in range(5):
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# --- Bone count ---
|
||||||
|
line = next_line() # "=== Armature Bones: 65"
|
||||||
|
num_bones = parse_first_int(line)
|
||||||
|
|
||||||
|
bone_names = []
|
||||||
|
bones = []
|
||||||
|
bone_parent_names = []
|
||||||
|
bone_children_names = []
|
||||||
|
|
||||||
|
for _ in range(num_bones):
|
||||||
|
bone = {}
|
||||||
|
|
||||||
|
# "Bone: mixamorig:Hips"
|
||||||
|
line = next_line()
|
||||||
|
bone_name = line[6:]
|
||||||
|
bone_names.append(bone_name)
|
||||||
|
|
||||||
|
# " HEAD_LOCAL: <Vector (x, y, z)>"
|
||||||
|
line = next_line()
|
||||||
|
bone['head'] = parse_floats(line)[:3]
|
||||||
|
|
||||||
|
# " TAIL_LOCAL: ..." -- skip
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# " Length: 0.123"
|
||||||
|
line = next_line()
|
||||||
|
bone['length'] = parse_floats(line)[0]
|
||||||
|
|
||||||
|
# 3x3 matrix (3 rows)
|
||||||
|
mat = []
|
||||||
|
for _ in range(3):
|
||||||
|
mat.extend(parse_floats(next_line()))
|
||||||
|
bone['matrix_3x3'] = mat
|
||||||
|
|
||||||
|
# " Parent: None" or " Parent: boneName"
|
||||||
|
line = next_line()
|
||||||
|
if line == " Parent: None":
|
||||||
|
bone_parent_names.append(None)
|
||||||
|
else:
|
||||||
|
bone_parent_names.append(line[10:])
|
||||||
|
|
||||||
|
# " Children: ['a', 'b'] or []"
|
||||||
|
line = next_line()
|
||||||
|
bone_children_names.append(parse_children(line))
|
||||||
|
|
||||||
|
bones.append(bone)
|
||||||
|
|
||||||
|
# Build name -> index map
|
||||||
|
name_to_idx = {name: i for i, name in enumerate(bone_names)}
|
||||||
|
|
||||||
|
# Resolve parent / child indices
|
||||||
|
for i in range(num_bones):
|
||||||
|
if bone_parent_names[i] is None:
|
||||||
|
bones[i]['parent'] = -1
|
||||||
|
else:
|
||||||
|
bones[i]['parent'] = name_to_idx[bone_parent_names[i]]
|
||||||
|
bones[i]['children'] = [name_to_idx[c] for c in bone_children_names[i]]
|
||||||
|
|
||||||
|
# --- Vertices ---
|
||||||
|
line = next_line() # "===Vertices: 5140"
|
||||||
|
num_vertices = parse_first_int(line)
|
||||||
|
|
||||||
|
vertices = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
vertices.append(parse_floats(next_line())[:3])
|
||||||
|
|
||||||
|
# --- UV Coordinates ---
|
||||||
|
next_line() # "===UV Coordinates:"
|
||||||
|
line = next_line() # "Face count: 8602"
|
||||||
|
num_faces = parse_first_int(line)
|
||||||
|
|
||||||
|
uvs = []
|
||||||
|
for _ in range(num_faces):
|
||||||
|
next_line() # "Face N"
|
||||||
|
next_line() # "UV Count: 3"
|
||||||
|
face_uvs = []
|
||||||
|
for _ in range(3):
|
||||||
|
face_uvs.extend(parse_floats(next_line())[:2])
|
||||||
|
uvs.append(face_uvs) # 6 floats
|
||||||
|
|
||||||
|
# --- Normals ---
|
||||||
|
next_line() # "===Normals:"
|
||||||
|
|
||||||
|
normals = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
normals.append(parse_floats(next_line())[:3])
|
||||||
|
|
||||||
|
# --- Triangles ---
|
||||||
|
line = next_line() # "===Triangles: 8602"
|
||||||
|
num_triangles = parse_first_int(line)
|
||||||
|
|
||||||
|
triangles = []
|
||||||
|
for _ in range(num_triangles):
|
||||||
|
line = next_line()
|
||||||
|
ints = [int(x) for x in re.findall(r'[-]?\d+', line)]
|
||||||
|
triangles.append(ints[:3])
|
||||||
|
|
||||||
|
# --- Vertex Weights ---
|
||||||
|
next_line() # "=== Vertex Weights ..."
|
||||||
|
|
||||||
|
vertex_weights = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
next_line() # "Vertex N:"
|
||||||
|
line = next_line() # "Vertex groups: 2"
|
||||||
|
num_groups = parse_first_int(line)
|
||||||
|
|
||||||
|
groups = []
|
||||||
|
for _ in range(num_groups):
|
||||||
|
line = next_line()
|
||||||
|
m = re.search(r"'([^']+)'.*?([-]?\d+\.\d+)", line)
|
||||||
|
bone_name = m.group(1)
|
||||||
|
weight = float(m.group(2))
|
||||||
|
groups.append((name_to_idx[bone_name], weight))
|
||||||
|
|
||||||
|
vertex_weights.append(groups)
|
||||||
|
|
||||||
|
# --- Animation Keyframes ---
|
||||||
|
next_line() # "=== Animation Keyframes ==="
|
||||||
|
next_line() # "=== Bone Transforms per Keyframe ==="
|
||||||
|
line = next_line() # "Keyframes: 32"
|
||||||
|
num_keyframes = parse_first_int(line)
|
||||||
|
|
||||||
|
keyframes = []
|
||||||
|
for _ in range(num_keyframes):
|
||||||
|
line = next_line() # "Frame: 0"
|
||||||
|
frame_number = parse_first_int(line)
|
||||||
|
|
||||||
|
bone_data = {}
|
||||||
|
for _ in range(num_bones):
|
||||||
|
line = next_line() # " Bone: mixamorig:Hips"
|
||||||
|
bone_name = line.strip()
|
||||||
|
if bone_name.startswith("Bone: "):
|
||||||
|
bone_name = bone_name[6:]
|
||||||
|
bone_idx = name_to_idx[bone_name]
|
||||||
|
|
||||||
|
# Location
|
||||||
|
location = parse_floats(next_line())[:3]
|
||||||
|
|
||||||
|
# Rotation (skip)
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# " Matrix:" (skip header)
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# 4 rows of 4 floats
|
||||||
|
matrix = []
|
||||||
|
for _ in range(4):
|
||||||
|
matrix.extend(parse_floats(next_line()))
|
||||||
|
|
||||||
|
bone_data[bone_idx] = {
|
||||||
|
'location': location,
|
||||||
|
'matrix': matrix,
|
||||||
|
}
|
||||||
|
|
||||||
|
keyframes.append((frame_number, bone_data))
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
# Write binary file
|
||||||
|
# ================================================================
|
||||||
|
with open(output_path, 'wb') as out:
|
||||||
|
# Header
|
||||||
|
out.write(b'BSAF')
|
||||||
|
out.write(struct.pack('<I', 1))
|
||||||
|
|
||||||
|
# Bones
|
||||||
|
out.write(struct.pack('<I', num_bones))
|
||||||
|
for i in range(num_bones):
|
||||||
|
b = bones[i]
|
||||||
|
out.write(struct.pack('<3f', *b['head']))
|
||||||
|
out.write(struct.pack('<f', b['length']))
|
||||||
|
out.write(struct.pack('<9f', *b['matrix_3x3']))
|
||||||
|
out.write(struct.pack('<i', b['parent']))
|
||||||
|
out.write(struct.pack('<I', len(b['children'])))
|
||||||
|
for c in b['children']:
|
||||||
|
out.write(struct.pack('<i', c))
|
||||||
|
|
||||||
|
# Vertices
|
||||||
|
out.write(struct.pack('<I', num_vertices))
|
||||||
|
for v in vertices:
|
||||||
|
out.write(struct.pack('<3f', *v))
|
||||||
|
|
||||||
|
# UV Coordinates
|
||||||
|
out.write(struct.pack('<I', num_faces))
|
||||||
|
for uv in uvs:
|
||||||
|
out.write(struct.pack('<6f', *uv))
|
||||||
|
|
||||||
|
# Normals
|
||||||
|
for n in normals:
|
||||||
|
out.write(struct.pack('<3f', *n))
|
||||||
|
|
||||||
|
# Triangles
|
||||||
|
out.write(struct.pack('<I', num_triangles))
|
||||||
|
for t in triangles:
|
||||||
|
out.write(struct.pack('<3i', *t))
|
||||||
|
|
||||||
|
# Vertex Weights
|
||||||
|
for vw in vertex_weights:
|
||||||
|
out.write(struct.pack('<I', len(vw)))
|
||||||
|
for bone_idx, weight in vw:
|
||||||
|
out.write(struct.pack('<if', bone_idx, weight))
|
||||||
|
|
||||||
|
# Animation Keyframes
|
||||||
|
out.write(struct.pack('<I', num_keyframes))
|
||||||
|
for frame_num, bone_data in keyframes:
|
||||||
|
out.write(struct.pack('<i', frame_num))
|
||||||
|
for i in range(num_bones):
|
||||||
|
bd = bone_data[i]
|
||||||
|
out.write(struct.pack('<3f', *bd['location']))
|
||||||
|
out.write(struct.pack('<16f', *bd['matrix']))
|
||||||
|
|
||||||
|
input_size = sum(len(l) for l in lines)
|
||||||
|
import os
|
||||||
|
output_size = os.path.getsize(output_path)
|
||||||
|
print(f"Converted: {input_path} ({input_size:,} bytes text) -> {output_path} ({output_size:,} bytes binary)")
|
||||||
|
print(f" Bones: {num_bones}, Vertices: {num_vertices}, Faces: {num_faces}, "
|
||||||
|
f"Triangles: {num_triangles}, Keyframes: {num_keyframes}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if len(sys.argv) != 3:
|
||||||
|
print(f"Usage: {sys.argv[0]} <input.txt> <output.bin>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
convert(sys.argv[1], sys.argv[2])
|
||||||
359
convert_anim_to_binary_new.py
Normal file
359
convert_anim_to_binary_new.py
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Convert a text-based multi-mesh bone animation file to the BSMF binary format.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python convert_anim_to_binary_new.py <input.txt> <output.bin>
|
||||||
|
|
||||||
|
Binary format (BSMF v1) -- all values little-endian:
|
||||||
|
|
||||||
|
HEADER
|
||||||
|
4 bytes magic "BSMF"
|
||||||
|
uint32 version (1)
|
||||||
|
|
||||||
|
ARMATURE MATRIX
|
||||||
|
16 x float 4x4 matrix (row-major)
|
||||||
|
|
||||||
|
BONES
|
||||||
|
uint32 numBones
|
||||||
|
per bone:
|
||||||
|
3 x float boneStartWorld (from HEAD_LOCAL)
|
||||||
|
float boneLength
|
||||||
|
9 x float 3x3 rotation matrix (row-major)
|
||||||
|
int32 parentIndex (-1 if none)
|
||||||
|
uint32 numChildren
|
||||||
|
numChildren x int32 childIndices
|
||||||
|
|
||||||
|
MESHES
|
||||||
|
uint32 numMeshes
|
||||||
|
per mesh:
|
||||||
|
uint32 nameLength
|
||||||
|
nameLength x char meshName (UTF-8, no null terminator)
|
||||||
|
|
||||||
|
VERTICES
|
||||||
|
uint32 numVertices
|
||||||
|
numVertices x 3 x float positions
|
||||||
|
|
||||||
|
UV COORDINATES
|
||||||
|
uint32 numFaces
|
||||||
|
numFaces x 6 x float 3 UV pairs per face (u0,v0,u1,v1,u2,v2)
|
||||||
|
|
||||||
|
NORMALS
|
||||||
|
numVertices x 3 x float normals
|
||||||
|
|
||||||
|
TRIANGLES
|
||||||
|
uint32 numTriangles
|
||||||
|
numTriangles x 3 x int32 vertex indices
|
||||||
|
|
||||||
|
VERTEX WEIGHTS
|
||||||
|
per vertex (numVertices):
|
||||||
|
uint32 numGroups
|
||||||
|
numGroups x (int32 boneIndex, float weight)
|
||||||
|
|
||||||
|
ANIMATION KEYFRAMES
|
||||||
|
uint32 numKeyframes
|
||||||
|
per keyframe:
|
||||||
|
int32 frameNumber
|
||||||
|
per bone (numBones, in index order 0..N-1):
|
||||||
|
3 x float location
|
||||||
|
16 x float 4x4 matrix (row-major)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import struct
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def parse_floats(line):
|
||||||
|
return [float(x) for x in re.findall(r'[-]?\d+\.\d+', line)]
|
||||||
|
|
||||||
|
|
||||||
|
def parse_first_int(line):
|
||||||
|
m = re.search(r'\d+', line)
|
||||||
|
if m:
|
||||||
|
return int(m.group())
|
||||||
|
raise ValueError(f"No integer found in: {line}")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_children(line):
|
||||||
|
return re.findall(r"'([^']+)'", line)
|
||||||
|
|
||||||
|
|
||||||
|
def convert(input_path, output_path):
|
||||||
|
with open(input_path, 'r', encoding='utf-8', errors='replace') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
idx = 0
|
||||||
|
|
||||||
|
def next_line():
|
||||||
|
nonlocal idx
|
||||||
|
line = lines[idx].rstrip()
|
||||||
|
idx += 1
|
||||||
|
return line
|
||||||
|
|
||||||
|
# --- Armature matrix header + 4 rows ---
|
||||||
|
next_line() # "=== Armature Matrix ==="
|
||||||
|
armature_matrix = []
|
||||||
|
for _ in range(4):
|
||||||
|
armature_matrix.extend(parse_floats(next_line())[:4])
|
||||||
|
|
||||||
|
# --- Bone count ---
|
||||||
|
line = next_line() # "=== Armature Bones: 65"
|
||||||
|
num_bones = parse_first_int(line)
|
||||||
|
|
||||||
|
bone_names = []
|
||||||
|
bones = []
|
||||||
|
bone_parent_names = []
|
||||||
|
bone_children_names = []
|
||||||
|
|
||||||
|
for _ in range(num_bones):
|
||||||
|
bone = {}
|
||||||
|
|
||||||
|
# "Bone: mixamorig:Hips"
|
||||||
|
line = next_line()
|
||||||
|
bone_name = line[6:]
|
||||||
|
bone_names.append(bone_name)
|
||||||
|
|
||||||
|
# " HEAD_LOCAL: <Vector (x, y, z)>"
|
||||||
|
line = next_line()
|
||||||
|
bone['head'] = parse_floats(line)[:3]
|
||||||
|
|
||||||
|
# " TAIL_LOCAL: ..." -- skip
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# " Length: 0.123"
|
||||||
|
line = next_line()
|
||||||
|
bone['length'] = parse_floats(line)[0]
|
||||||
|
|
||||||
|
# 3x3 matrix (3 rows)
|
||||||
|
mat = []
|
||||||
|
for _ in range(3):
|
||||||
|
mat.extend(parse_floats(next_line()))
|
||||||
|
bone['matrix_3x3'] = mat
|
||||||
|
|
||||||
|
# " Parent: None" or " Parent: boneName"
|
||||||
|
line = next_line()
|
||||||
|
if line == " Parent: None":
|
||||||
|
bone_parent_names.append(None)
|
||||||
|
else:
|
||||||
|
bone_parent_names.append(line[10:])
|
||||||
|
|
||||||
|
# " Children: ['a', 'b'] or []"
|
||||||
|
line = next_line()
|
||||||
|
bone_children_names.append(parse_children(line))
|
||||||
|
|
||||||
|
bones.append(bone)
|
||||||
|
|
||||||
|
# Build name -> index map
|
||||||
|
name_to_idx = {name: i for i, name in enumerate(bone_names)}
|
||||||
|
|
||||||
|
# Resolve parent / child indices
|
||||||
|
for i in range(num_bones):
|
||||||
|
if bone_parent_names[i] is None:
|
||||||
|
bones[i]['parent'] = -1
|
||||||
|
else:
|
||||||
|
bones[i]['parent'] = name_to_idx[bone_parent_names[i]]
|
||||||
|
bones[i]['children'] = [name_to_idx[c] for c in bone_children_names[i]]
|
||||||
|
|
||||||
|
# --- Multi-mesh header ---
|
||||||
|
line = next_line() # "=== TOTAL MESHES TO EXPORT: 7 ==="
|
||||||
|
num_meshes = parse_first_int(line)
|
||||||
|
|
||||||
|
meshes = []
|
||||||
|
|
||||||
|
for _ in range(num_meshes):
|
||||||
|
# "=== Mesh Object: Name ==="
|
||||||
|
line = next_line()
|
||||||
|
m = re.match(r"===\s*Mesh Object:\s*(.+?)\s*===$", line)
|
||||||
|
if not m:
|
||||||
|
raise ValueError(f"Invalid mesh header: {line}")
|
||||||
|
mesh_name = m.group(1)
|
||||||
|
|
||||||
|
# --- Vertices ---
|
||||||
|
line = next_line() # "===Vertices: N"
|
||||||
|
num_vertices = parse_first_int(line)
|
||||||
|
|
||||||
|
vertices = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
vertices.append(parse_floats(next_line())[:3])
|
||||||
|
|
||||||
|
# --- UV Coordinates ---
|
||||||
|
next_line() # "===UV Coordinates:"
|
||||||
|
line = next_line() # "Face count: M"
|
||||||
|
num_faces = parse_first_int(line)
|
||||||
|
|
||||||
|
uvs = []
|
||||||
|
for _ in range(num_faces):
|
||||||
|
next_line() # "Face N"
|
||||||
|
next_line() # "UV Count: 3"
|
||||||
|
face_uvs = []
|
||||||
|
for _ in range(3):
|
||||||
|
face_uvs.extend(parse_floats(next_line())[:2])
|
||||||
|
uvs.append(face_uvs)
|
||||||
|
|
||||||
|
# --- Normals ---
|
||||||
|
next_line() # "===Normals:"
|
||||||
|
normals = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
normals.append(parse_floats(next_line())[:3])
|
||||||
|
|
||||||
|
# --- Triangles ---
|
||||||
|
line = next_line() # "===Triangles: M"
|
||||||
|
num_triangles = parse_first_int(line)
|
||||||
|
|
||||||
|
triangles = []
|
||||||
|
for _ in range(num_triangles):
|
||||||
|
line = next_line()
|
||||||
|
ints = [int(x) for x in re.findall(r'[-]?\d+', line)]
|
||||||
|
triangles.append(ints[:3])
|
||||||
|
|
||||||
|
# --- Vertex Weights ---
|
||||||
|
next_line() # "=== Vertex Weights (Max 5 bones per vertex) ==="
|
||||||
|
vertex_weights = []
|
||||||
|
for _ in range(num_vertices):
|
||||||
|
next_line() # "Vertex N:"
|
||||||
|
line = next_line() # "Vertex groups: K"
|
||||||
|
num_groups = parse_first_int(line)
|
||||||
|
|
||||||
|
groups = []
|
||||||
|
for _ in range(num_groups):
|
||||||
|
line = next_line()
|
||||||
|
m = re.search(r"'([^']+)'.*?([-]?\d+\.\d+)", line)
|
||||||
|
bone_name = m.group(1)
|
||||||
|
weight = float(m.group(2))
|
||||||
|
groups.append((name_to_idx[bone_name], weight))
|
||||||
|
|
||||||
|
vertex_weights.append(groups)
|
||||||
|
|
||||||
|
meshes.append({
|
||||||
|
'name': mesh_name,
|
||||||
|
'num_vertices': num_vertices,
|
||||||
|
'vertices': vertices,
|
||||||
|
'num_faces': num_faces,
|
||||||
|
'uvs': uvs,
|
||||||
|
'normals': normals,
|
||||||
|
'num_triangles': num_triangles,
|
||||||
|
'triangles': triangles,
|
||||||
|
'vertex_weights': vertex_weights,
|
||||||
|
})
|
||||||
|
|
||||||
|
# --- Animation Keyframes ---
|
||||||
|
next_line() # "=== Animation Keyframes ==="
|
||||||
|
next_line() # "=== Bone Transforms per Keyframe ==="
|
||||||
|
line = next_line() # "Keyframes: N"
|
||||||
|
num_keyframes = parse_first_int(line)
|
||||||
|
|
||||||
|
keyframes = []
|
||||||
|
for _ in range(num_keyframes):
|
||||||
|
line = next_line() # "Frame: N"
|
||||||
|
frame_number = parse_first_int(line)
|
||||||
|
|
||||||
|
bone_data = {}
|
||||||
|
for _ in range(num_bones):
|
||||||
|
line = next_line() # " Bone: mixamorig:Hips"
|
||||||
|
bone_name = line.strip()
|
||||||
|
if bone_name.startswith("Bone: "):
|
||||||
|
bone_name = bone_name[6:]
|
||||||
|
bone_idx = name_to_idx[bone_name]
|
||||||
|
|
||||||
|
# Location
|
||||||
|
location = parse_floats(next_line())[:3]
|
||||||
|
|
||||||
|
# Rotation (skip)
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# " Matrix:" (skip header)
|
||||||
|
next_line()
|
||||||
|
|
||||||
|
# 4 rows of 4 floats
|
||||||
|
matrix = []
|
||||||
|
for _ in range(4):
|
||||||
|
matrix.extend(parse_floats(next_line()))
|
||||||
|
|
||||||
|
bone_data[bone_idx] = {
|
||||||
|
'location': location,
|
||||||
|
'matrix': matrix,
|
||||||
|
}
|
||||||
|
|
||||||
|
keyframes.append((frame_number, bone_data))
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
# Write binary file
|
||||||
|
# ================================================================
|
||||||
|
with open(output_path, 'wb') as out:
|
||||||
|
# Header
|
||||||
|
out.write(b'BSMF')
|
||||||
|
out.write(struct.pack('<I', 1))
|
||||||
|
|
||||||
|
# Armature matrix (16 floats, row-major)
|
||||||
|
out.write(struct.pack('<16f', *armature_matrix))
|
||||||
|
|
||||||
|
# Bones
|
||||||
|
out.write(struct.pack('<I', num_bones))
|
||||||
|
for i in range(num_bones):
|
||||||
|
b = bones[i]
|
||||||
|
out.write(struct.pack('<3f', *b['head']))
|
||||||
|
out.write(struct.pack('<f', b['length']))
|
||||||
|
out.write(struct.pack('<9f', *b['matrix_3x3']))
|
||||||
|
out.write(struct.pack('<i', b['parent']))
|
||||||
|
out.write(struct.pack('<I', len(b['children'])))
|
||||||
|
for c in b['children']:
|
||||||
|
out.write(struct.pack('<i', c))
|
||||||
|
|
||||||
|
# Meshes
|
||||||
|
out.write(struct.pack('<I', num_meshes))
|
||||||
|
for md in meshes:
|
||||||
|
name_bytes = md['name'].encode('utf-8')
|
||||||
|
out.write(struct.pack('<I', len(name_bytes)))
|
||||||
|
out.write(name_bytes)
|
||||||
|
|
||||||
|
# Vertices
|
||||||
|
out.write(struct.pack('<I', md['num_vertices']))
|
||||||
|
for v in md['vertices']:
|
||||||
|
out.write(struct.pack('<3f', *v))
|
||||||
|
|
||||||
|
# UV Coordinates
|
||||||
|
out.write(struct.pack('<I', md['num_faces']))
|
||||||
|
for uv in md['uvs']:
|
||||||
|
out.write(struct.pack('<6f', *uv))
|
||||||
|
|
||||||
|
# Normals
|
||||||
|
for n in md['normals']:
|
||||||
|
out.write(struct.pack('<3f', *n))
|
||||||
|
|
||||||
|
# Triangles
|
||||||
|
out.write(struct.pack('<I', md['num_triangles']))
|
||||||
|
for t in md['triangles']:
|
||||||
|
out.write(struct.pack('<3i', *t))
|
||||||
|
|
||||||
|
# Vertex weights
|
||||||
|
for vw in md['vertex_weights']:
|
||||||
|
out.write(struct.pack('<I', len(vw)))
|
||||||
|
for bone_idx, weight in vw:
|
||||||
|
out.write(struct.pack('<if', bone_idx, weight))
|
||||||
|
|
||||||
|
# Animation Keyframes
|
||||||
|
out.write(struct.pack('<I', num_keyframes))
|
||||||
|
for frame_num, bone_data in keyframes:
|
||||||
|
out.write(struct.pack('<i', frame_num))
|
||||||
|
for i in range(num_bones):
|
||||||
|
bd = bone_data[i]
|
||||||
|
out.write(struct.pack('<3f', *bd['location']))
|
||||||
|
out.write(struct.pack('<16f', *bd['matrix']))
|
||||||
|
|
||||||
|
input_size = sum(len(l) for l in lines)
|
||||||
|
import os
|
||||||
|
output_size = os.path.getsize(output_path)
|
||||||
|
print(f"Converted: {input_path} ({input_size:,} bytes text) -> {output_path} ({output_size:,} bytes binary)")
|
||||||
|
print(f" Bones: {num_bones}, Meshes: {num_meshes}, Keyframes: {num_keyframes}")
|
||||||
|
for md in meshes:
|
||||||
|
print(f" - {md['name']}: {md['num_vertices']} verts, "
|
||||||
|
f"{md['num_faces']} faces, {md['num_triangles']} tris")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if len(sys.argv) != 3:
|
||||||
|
print(f"Usage: {sys.argv[0]} <input.txt> <output.bin>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
convert(sys.argv[1], sys.argv[2])
|
||||||
@ -47,6 +47,7 @@ add_library(main SHARED
|
|||||||
../../../../src/utils/Perlin.cpp
|
../../../../src/utils/Perlin.cpp
|
||||||
../../../../src/utils/TaskManager.cpp
|
../../../../src/utils/TaskManager.cpp
|
||||||
../../../../src/utils/Utils.cpp
|
../../../../src/utils/Utils.cpp
|
||||||
|
../../../../src/navigation/PathFinder.cpp
|
||||||
../../../../src/planet/PlanetData.cpp
|
../../../../src/planet/PlanetData.cpp
|
||||||
../../../../src/planet/PlanetObject.cpp
|
../../../../src/planet/PlanetObject.cpp
|
||||||
../../../../src/planet/StoneObject.cpp
|
../../../../src/planet/StoneObject.cpp
|
||||||
|
|||||||
@ -8,7 +8,7 @@ if(NOT CMAKE_MAKE_PROGRAM AND WIN32)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
project(space-game001 CXX)
|
project(bishkek-witcher LANGUAGES C CXX)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
@ -17,11 +17,52 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/../cmake/FetchDependencies.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/../cmake/FetchDependencies.cmake")
|
||||||
# Теперь гарантированно есть папка ../thirdparty со всеми исходниками
|
# Теперь гарантированно есть папка ../thirdparty со всеми исходниками
|
||||||
|
|
||||||
# Список исходных файлов (без изменений)
|
# ===========================================
|
||||||
|
# Lua (5.5.0) - embedded scripting, pure C, compiles with Emscripten
|
||||||
|
# ===========================================
|
||||||
|
set(LUA_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/lua-5.4.8")
|
||||||
|
file(GLOB LUA_SOURCES "${LUA_SRC_DIR}/*.c")
|
||||||
|
list(REMOVE_ITEM LUA_SOURCES
|
||||||
|
"${LUA_SRC_DIR}/lua.c"
|
||||||
|
"${LUA_SRC_DIR}/luac.c"
|
||||||
|
"${LUA_SRC_DIR}/onelua.c"
|
||||||
|
)
|
||||||
|
add_library(lua_static STATIC ${LUA_SOURCES})
|
||||||
|
target_include_directories(lua_static PUBLIC "${LUA_SRC_DIR}")
|
||||||
|
|
||||||
|
# sol2 (header-only)
|
||||||
|
set(SOL2_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/sol2-3.3.0")
|
||||||
|
|
||||||
|
# Apply patch for Clang/Emscripten compatibility in optional<T&>::emplace().
|
||||||
|
set(_sol2_sentinel "${SOL2_SRC_DIR}/.patched")
|
||||||
|
if(NOT EXISTS "${_sol2_sentinel}")
|
||||||
|
find_package(Git QUIET)
|
||||||
|
if(GIT_FOUND)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../cmake/patches/sol2-3.3.0-clang-optional.patch"
|
||||||
|
WORKING_DIRECTORY "${SOL2_SRC_DIR}"
|
||||||
|
RESULT_VARIABLE _sol2_patch_res
|
||||||
|
)
|
||||||
|
if(_sol2_patch_res EQUAL 0)
|
||||||
|
file(WRITE "${_sol2_sentinel}" "patched\n")
|
||||||
|
message(STATUS "Applied sol2 Clang optional patch")
|
||||||
|
else()
|
||||||
|
message(WARNING "sol2 patch failed (exit ${_sol2_patch_res}) — Clang/Emscripten builds may not compile")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "Git not found — cannot apply sol2 patch automatically. "
|
||||||
|
"Apply cmake/patches/sol2-3.3.0-clang-optional.patch manually.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Список исходных файлов (синхронизирован с proj-windows/CMakeLists.txt)
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
../src/main.cpp
|
../src/main.cpp
|
||||||
../src/Game.cpp
|
../src/Game.cpp
|
||||||
../src/Game.h
|
../src/Game.h
|
||||||
|
../src/Character.cpp
|
||||||
|
../src/Character.h
|
||||||
../src/Environment.cpp
|
../src/Environment.cpp
|
||||||
../src/Environment.h
|
../src/Environment.h
|
||||||
../src/render/Renderer.cpp
|
../src/render/Renderer.cpp
|
||||||
@ -36,58 +77,64 @@ set(SOURCES
|
|||||||
../src/AudioPlayerAsync.h
|
../src/AudioPlayerAsync.h
|
||||||
../src/BoneAnimatedModel.cpp
|
../src/BoneAnimatedModel.cpp
|
||||||
../src/BoneAnimatedModel.h
|
../src/BoneAnimatedModel.h
|
||||||
|
../src/BoneAnimatedModelNew.cpp
|
||||||
|
../src/BoneAnimatedModelNew.h
|
||||||
../src/render/OpenGlExtensions.cpp
|
../src/render/OpenGlExtensions.cpp
|
||||||
../src/render/OpenGlExtensions.h
|
../src/render/OpenGlExtensions.h
|
||||||
../src/utils/Utils.cpp
|
../src/utils/Utils.cpp
|
||||||
../src/utils/Utils.h
|
../src/utils/Utils.h
|
||||||
../src/SparkEmitter.cpp
|
../src/SparkEmitter.cpp
|
||||||
../src/SparkEmitter.h
|
../src/SparkEmitter.h
|
||||||
../src/planet/PlanetObject.cpp
|
../src/utils/Perlin.cpp
|
||||||
../src/planet/PlanetObject.h
|
../src/utils/Perlin.h
|
||||||
../src/planet/PlanetData.cpp
|
../src/utils/TaskManager.cpp
|
||||||
../src/planet/PlanetData.h
|
../src/utils/TaskManager.h
|
||||||
../src/utils/Perlin.cpp
|
../src/render/FrameBuffer.cpp
|
||||||
../src/utils/Perlin.h
|
../src/render/FrameBuffer.h
|
||||||
../src/utils/TaskManager.cpp
|
../src/render/ShadowMap.cpp
|
||||||
../src/utils/TaskManager.h
|
../src/render/ShadowMap.h
|
||||||
../src/planet/StoneObject.cpp
|
|
||||||
../src/planet/StoneObject.h
|
|
||||||
../src/render/FrameBuffer.cpp
|
|
||||||
../src/render/FrameBuffer.h
|
|
||||||
../src/UiManager.cpp
|
../src/UiManager.cpp
|
||||||
../src/UiManager.h
|
../src/UiManager.h
|
||||||
../src/Projectile.h
|
../src/render/TextRenderer.h
|
||||||
../src/Projectile.cpp
|
../src/render/TextRenderer.cpp
|
||||||
../src/network/NetworkInterface.h
|
../src/MenuManager.h
|
||||||
../src/network/LocalClient.h
|
../src/MenuManager.cpp
|
||||||
../src/network/LocalClient.cpp
|
../src/Location.h
|
||||||
../src/network/ClientState.h
|
../src/Location.cpp
|
||||||
../src/network/ClientState.cpp
|
../src/GameConstants.h
|
||||||
../src/network/WebSocketClientBase.h
|
../src/GameConstants.cpp
|
||||||
../src/network/WebSocketClientBase.cpp
|
../src/ScriptEngine.h
|
||||||
../src/network/WebSocketClientEmscripten.h
|
../src/ScriptEngine.cpp
|
||||||
../src/network/WebSocketClientEmscripten.cpp
|
../src/navigation/PathFinder.h
|
||||||
../src/render/TextRenderer.h
|
../src/navigation/PathFinder.cpp
|
||||||
../src/render/TextRenderer.cpp
|
../src/items/GameObjectLoader.h
|
||||||
../src/MenuManager.h
|
../src/items/GameObjectLoader.cpp
|
||||||
../src/MenuManager.cpp
|
../src/items/Item.h
|
||||||
../src/Space.h
|
../src/items/Item.cpp
|
||||||
../src/Space.cpp
|
../src/items/InteractiveObject.h
|
||||||
../src/GameConstants.h
|
../src/items/InteractiveObject.cpp
|
||||||
../src/GameConstants.cpp
|
../src/dialogue/DialogueTypes.h
|
||||||
|
../src/dialogue/DialogueDatabase.h
|
||||||
|
../src/dialogue/DialogueDatabase.cpp
|
||||||
|
../src/dialogue/DialogueRuntime.h
|
||||||
|
../src/dialogue/DialogueRuntime.cpp
|
||||||
|
../src/dialogue/DialogueOverlay.h
|
||||||
|
../src/dialogue/DialogueOverlay.cpp
|
||||||
|
../src/dialogue/DialogueSystem.h
|
||||||
|
../src/dialogue/DialogueSystem.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(space-game001 ${SOURCES})
|
add_executable(bishkek-witcher ${SOURCES})
|
||||||
|
|
||||||
# Настройка путей к инклудам (используем скачанные исходники)
|
# Настройка путей к инклудам (используем скачанные исходники)
|
||||||
target_include_directories(space-game001 PRIVATE
|
target_include_directories(bishkek-witcher PRIVATE
|
||||||
../src
|
../src
|
||||||
../thirdparty/eigen-5.0.0
|
../thirdparty/eigen-5.0.0
|
||||||
../thirdparty/boost_1_90_0
|
../thirdparty/boost_1_90_0
|
||||||
|
"${SOL2_SRC_DIR}/include"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Сборка libzip через add_subdirectory (Emscripten соберет её из исходников)
|
# Сборка libzip через add_subdirectory (Emscripten соберет её из исходников)
|
||||||
# Опции для либзипа, чтобы он не искал лишнего в системе
|
|
||||||
set(ENABLE_GNUTLS OFF CACHE BOOL "" FORCE)
|
set(ENABLE_GNUTLS OFF CACHE BOOL "" FORCE)
|
||||||
set(ENABLE_OPENSSL OFF CACHE BOOL "" FORCE)
|
set(ENABLE_OPENSSL OFF CACHE BOOL "" FORCE)
|
||||||
set(ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "" FORCE)
|
set(ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "" FORCE)
|
||||||
@ -95,7 +142,7 @@ set(ENABLE_COMMONCRYPTO OFF CACHE BOOL "" FORCE)
|
|||||||
|
|
||||||
add_subdirectory("../thirdparty/libzip-1.11.4" libzip-build)
|
add_subdirectory("../thirdparty/libzip-1.11.4" libzip-build)
|
||||||
|
|
||||||
target_link_libraries(space-game001 PRIVATE zip z websocket.js)
|
target_link_libraries(bishkek-witcher PRIVATE zip z lua_static websocket.js)
|
||||||
|
|
||||||
# Эмскриптен-флаги
|
# Эмскриптен-флаги
|
||||||
set(EMSCRIPTEN_FLAGS
|
set(EMSCRIPTEN_FLAGS
|
||||||
@ -104,13 +151,15 @@ set(EMSCRIPTEN_FLAGS
|
|||||||
"-sUSE_LIBPNG=1"
|
"-sUSE_LIBPNG=1"
|
||||||
"-sUSE_ZLIB=1"
|
"-sUSE_ZLIB=1"
|
||||||
"-sUSE_SDL_TTF=2"
|
"-sUSE_SDL_TTF=2"
|
||||||
|
"-sUSE_SDL_MIXER=2"
|
||||||
|
"-sSDL2_MIXER_FORMATS=[ogg,mp3]"
|
||||||
#"-pthread"
|
#"-pthread"
|
||||||
#"-sUSE_PTHREADS=1"
|
#"-sUSE_PTHREADS=1"
|
||||||
"-fexceptions"
|
"-fexceptions"
|
||||||
"-DNETWORK"
|
"-DNETWORK"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_options(space-game001 PRIVATE ${EMSCRIPTEN_FLAGS} "-O2")
|
target_compile_options(bishkek-witcher PRIVATE ${EMSCRIPTEN_FLAGS} "-O2")
|
||||||
|
|
||||||
# Only loading.png and the shaders used before resources.zip is ready are preloaded.
|
# Only loading.png and the shaders used before resources.zip is ready are preloaded.
|
||||||
# resources.zip is downloaded asynchronously at runtime and served as a separate file.
|
# resources.zip is downloaded asynchronously at runtime and served as a separate file.
|
||||||
@ -119,17 +168,19 @@ set(EMSCRIPTEN_LINK_FLAGS
|
|||||||
"-O2"
|
"-O2"
|
||||||
#"-sPTHREAD_POOL_SIZE=4"
|
#"-sPTHREAD_POOL_SIZE=4"
|
||||||
"-sALLOW_MEMORY_GROWTH=1"
|
"-sALLOW_MEMORY_GROWTH=1"
|
||||||
"-sFULL_ES3=1"
|
"-sFULL_ES3=1"
|
||||||
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/loading.png@resources/loading.png"
|
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/loading.png@resources/loading.png"
|
||||||
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/shaders@resources/shaders"
|
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/shaders@resources/shaders"
|
||||||
|
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../resources/start.lua@resources/start.lua"
|
||||||
|
"--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/../audio@audio"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Применяем настройки линковки
|
# Применяем настройки линковки
|
||||||
target_link_options(space-game001 PRIVATE ${EMSCRIPTEN_LINK_FLAGS})
|
target_link_options(bishkek-witcher PRIVATE ${EMSCRIPTEN_LINK_FLAGS})
|
||||||
|
|
||||||
# Для совместимости со старыми версиями CMake, если target_link_options недостаточно
|
# Для совместимости со старыми версиями CMake, если target_link_options недостаточно
|
||||||
string(REPLACE ";" " " EMSCRIPTEN_LINK_FLAGS_STR "${EMSCRIPTEN_LINK_FLAGS}")
|
string(REPLACE ";" " " EMSCRIPTEN_LINK_FLAGS_STR "${EMSCRIPTEN_LINK_FLAGS}")
|
||||||
set_target_properties(space-game001 PROPERTIES
|
set_target_properties(bishkek-witcher PROPERTIES
|
||||||
LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS_STR}"
|
LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS_STR}"
|
||||||
SUFFIX ".html"
|
SUFFIX ".html"
|
||||||
)
|
)
|
||||||
@ -147,34 +198,33 @@ add_custom_command(
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(pack_resources DEPENDS "${RESOURCES_ZIP}")
|
add_custom_target(pack_resources DEPENDS "${RESOURCES_ZIP}")
|
||||||
add_dependencies(space-game001 pack_resources)
|
add_dependencies(bishkek-witcher pack_resources)
|
||||||
|
|
||||||
|
|
||||||
# Определяем путь к директории установки (относительно папки билда)
|
# Определяем путь к директории установки (относительно папки билда)
|
||||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/public")
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/public")
|
||||||
|
|
||||||
# 1. Устанавливаем основной HTML файл
|
# 1. Устанавливаем основной HTML файл
|
||||||
install(TARGETS space-game001
|
install(TARGETS bishkek-witcher
|
||||||
RUNTIME DESTINATION .
|
RUNTIME DESTINATION .
|
||||||
)
|
)
|
||||||
|
|
||||||
# 2. Устанавливаем сопутствующие файлы (JS, WASM и сгенерированный архив данных)
|
# 2. Устанавливаем сопутствующие файлы (JS, WASM и сгенерированный архив данных)
|
||||||
# Emscripten создает их в той же папке, что и таргет
|
install(FILES
|
||||||
install(FILES
|
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.js"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.js"
|
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.wasm"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.wasm"
|
"${CMAKE_CURRENT_BINARY_DIR}/bishkek-witcher.data"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/space-game001.data"
|
|
||||||
DESTINATION .
|
DESTINATION .
|
||||||
)
|
)
|
||||||
|
|
||||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/space-game001plain.html"
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/index.html"
|
||||||
DESTINATION .
|
DESTINATION .
|
||||||
)
|
)
|
||||||
|
|
||||||
# resources.zip is served separately and downloaded asynchronously at runtime
|
# resources.zip is served separately and downloaded asynchronously at runtime
|
||||||
install(FILES "${RESOURCES_ZIP}" DESTINATION .)
|
install(FILES "${RESOURCES_ZIP}" DESTINATION .)
|
||||||
|
|
||||||
add_custom_command(TARGET space-game001 POST_BUILD
|
add_custom_command(TARGET bishkek-witcher POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} --install .
|
COMMAND ${CMAKE_COMMAND} --install .
|
||||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
COMMENT "Automatically deploying to public directory..."
|
COMMENT "Automatically deploying to public directory..."
|
||||||
|
|||||||
82
proj-web/index.html
Normal file
82
proj-web/index.html
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-us">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
|
||||||
|
<title>Bishkek Witcher</title>
|
||||||
|
<style>
|
||||||
|
body, html {
|
||||||
|
margin: 0; padding: 0; width: 100%; height: 100%;
|
||||||
|
overflow: hidden; background-color: #000;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
#canvas {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0; left: 0;
|
||||||
|
width: 100vw; height: 100vh;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fs-button {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px; right: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
z-index: 10;
|
||||||
|
background: rgba(255,255,255,0.3);
|
||||||
|
color: white; border: 1px solid white;
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: sans-serif;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
#status { color: white; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<button id="fs-button">Fullscreen</button>
|
||||||
|
<div id="status">Downloading...</div>
|
||||||
|
<canvas id="canvas" oncontextmenu="event.preventDefault()" tabindex="-1"></canvas>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function prepareModuleEnvironment() {
|
||||||
|
window.Module = window.Module || {};
|
||||||
|
var canvasEl = document.getElementById('canvas');
|
||||||
|
window.Module.canvas = canvasEl;
|
||||||
|
window.Module.setStatus = window.Module.setStatus || function (text) {
|
||||||
|
var statusElement = document.getElementById("status");
|
||||||
|
statusElement.innerHTML = text;
|
||||||
|
statusElement.style.display = text ? 'block' : 'none';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadGameScript() {
|
||||||
|
var s = document.createElement('script');
|
||||||
|
s.src = 'bishkek-witcher.js';
|
||||||
|
s.async = true;
|
||||||
|
document.body.appendChild(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('fs-button').addEventListener('click', function() {
|
||||||
|
if (!document.fullscreenElement) {
|
||||||
|
document.documentElement.requestFullscreen().catch(function(e) {
|
||||||
|
console.error('Fullscreen error: ' + e.message);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
document.exitFullscreen();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
prepareModuleEnvironment();
|
||||||
|
loadGameScript();
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("orientationchange", function() {
|
||||||
|
setTimeout(() => {
|
||||||
|
window.dispatchEvent(new Event('resize'));
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
project(space-game001 LANGUAGES CXX)
|
project(space-game001 LANGUAGES C CXX)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
@ -14,6 +14,8 @@ add_executable(space-game001
|
|||||||
../src/main.cpp
|
../src/main.cpp
|
||||||
../src/Game.cpp
|
../src/Game.cpp
|
||||||
../src/Game.h
|
../src/Game.h
|
||||||
|
../src/Character.cpp
|
||||||
|
../src/Character.h
|
||||||
../src/Environment.cpp
|
../src/Environment.cpp
|
||||||
../src/Environment.h
|
../src/Environment.h
|
||||||
../src/render/Renderer.cpp
|
../src/render/Renderer.cpp
|
||||||
@ -28,47 +30,51 @@ add_executable(space-game001
|
|||||||
../src/AudioPlayerAsync.h
|
../src/AudioPlayerAsync.h
|
||||||
../src/BoneAnimatedModel.cpp
|
../src/BoneAnimatedModel.cpp
|
||||||
../src/BoneAnimatedModel.h
|
../src/BoneAnimatedModel.h
|
||||||
|
../src/BoneAnimatedModelNew.cpp
|
||||||
|
../src/BoneAnimatedModelNew.h
|
||||||
../src/render/OpenGlExtensions.cpp
|
../src/render/OpenGlExtensions.cpp
|
||||||
../src/render/OpenGlExtensions.h
|
../src/render/OpenGlExtensions.h
|
||||||
../src/utils/Utils.cpp
|
../src/utils/Utils.cpp
|
||||||
../src/utils/Utils.h
|
../src/utils/Utils.h
|
||||||
../src/SparkEmitter.cpp
|
../src/SparkEmitter.cpp
|
||||||
../src/SparkEmitter.h
|
../src/SparkEmitter.h
|
||||||
../src/planet/PlanetObject.cpp
|
|
||||||
../src/planet/PlanetObject.h
|
|
||||||
../src/planet/PlanetData.cpp
|
|
||||||
../src/planet/PlanetData.h
|
|
||||||
../src/utils/Perlin.cpp
|
../src/utils/Perlin.cpp
|
||||||
../src/utils/Perlin.h
|
../src/utils/Perlin.h
|
||||||
../src/utils/TaskManager.cpp
|
../src/utils/TaskManager.cpp
|
||||||
../src/utils/TaskManager.h
|
../src/utils/TaskManager.h
|
||||||
../src/planet/StoneObject.cpp
|
|
||||||
../src/planet/StoneObject.h
|
|
||||||
../src/render/FrameBuffer.cpp
|
../src/render/FrameBuffer.cpp
|
||||||
../src/render/FrameBuffer.h
|
../src/render/FrameBuffer.h
|
||||||
|
../src/render/ShadowMap.cpp
|
||||||
|
../src/render/ShadowMap.h
|
||||||
../src/UiManager.cpp
|
../src/UiManager.cpp
|
||||||
../src/UiManager.h
|
../src/UiManager.h
|
||||||
../src/Projectile.h
|
|
||||||
../src/Projectile.cpp
|
|
||||||
../src/network/NetworkInterface.h
|
|
||||||
../src/network/LocalClient.h
|
|
||||||
../src/network/LocalClient.cpp
|
|
||||||
../src/network/ClientState.h
|
|
||||||
../src/network/ClientState.cpp
|
|
||||||
../src/network/WebSocketClient.h
|
|
||||||
../src/network/WebSocketClient.cpp
|
|
||||||
../src/network/WebSocketClientBase.h
|
|
||||||
../src/network/WebSocketClientBase.cpp
|
|
||||||
../src/network/WebSocketClientEmscripten.h
|
|
||||||
../src/network/WebSocketClientEmscripten.cpp
|
|
||||||
../src/render/TextRenderer.h
|
../src/render/TextRenderer.h
|
||||||
../src/render/TextRenderer.cpp
|
../src/render/TextRenderer.cpp
|
||||||
../src/MenuManager.h
|
../src/MenuManager.h
|
||||||
../src/MenuManager.cpp
|
../src/MenuManager.cpp
|
||||||
../src/Space.h
|
../src/Location.h
|
||||||
../src/Space.cpp
|
../src/Location.cpp
|
||||||
../src/GameConstants.h
|
../src/GameConstants.h
|
||||||
../src/GameConstants.cpp
|
../src/GameConstants.cpp
|
||||||
|
../src/ScriptEngine.h
|
||||||
|
../src/ScriptEngine.cpp
|
||||||
|
../src/navigation/PathFinder.h
|
||||||
|
../src/navigation/PathFinder.cpp
|
||||||
|
../src/items/GameObjectLoader.h
|
||||||
|
../src/items/GameObjectLoader.cpp
|
||||||
|
../src/items/Item.h
|
||||||
|
../src/items/Item.cpp
|
||||||
|
../src/items/InteractiveObject.h
|
||||||
|
../src/items/InteractiveObject.cpp
|
||||||
|
../src/dialogue/DialogueTypes.h
|
||||||
|
../src/dialogue/DialogueDatabase.h
|
||||||
|
../src/dialogue/DialogueDatabase.cpp
|
||||||
|
../src/dialogue/DialogueRuntime.h
|
||||||
|
../src/dialogue/DialogueRuntime.cpp
|
||||||
|
../src/dialogue/DialogueOverlay.h
|
||||||
|
../src/dialogue/DialogueOverlay.cpp
|
||||||
|
../src/dialogue/DialogueSystem.h
|
||||||
|
../src/dialogue/DialogueSystem.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Установка проекта по умолчанию для Visual Studio
|
# Установка проекта по умолчанию для Visual Studio
|
||||||
@ -90,8 +96,8 @@ target_compile_definitions(space-game001 PRIVATE
|
|||||||
WIN32_LEAN_AND_MEAN
|
WIN32_LEAN_AND_MEAN
|
||||||
PNG_ENABLED
|
PNG_ENABLED
|
||||||
SDL_MAIN_HANDLED
|
SDL_MAIN_HANDLED
|
||||||
NETWORK
|
# DEBUG_LIGHT
|
||||||
# SIMPLIFIED
|
# SHOW_PATH
|
||||||
)
|
)
|
||||||
|
|
||||||
# Линкуем с SDL2main, если он вообще установлен
|
# Линкуем с SDL2main, если он вообще установлен
|
||||||
@ -107,6 +113,8 @@ target_link_libraries(space-game001 PRIVATE
|
|||||||
SDL2_ttf_external_lib
|
SDL2_ttf_external_lib
|
||||||
eigen_external_lib
|
eigen_external_lib
|
||||||
boost_external_lib
|
boost_external_lib
|
||||||
|
sol2_external_lib
|
||||||
|
SDL2_mixer_external_lib
|
||||||
)
|
)
|
||||||
|
|
||||||
# Линкуем OpenGL (Windows)
|
# Линкуем OpenGL (Windows)
|
||||||
@ -126,11 +134,12 @@ if (WIN32)
|
|||||||
|
|
||||||
set(LIBZIP_DLL_SRC "$<IF:$<CONFIG:Debug>,${LIBZIP_BASE_DIR}-Debug/bin/zip.dll,${LIBZIP_BASE_DIR}-Release/bin/zip.dll>")
|
set(LIBZIP_DLL_SRC "$<IF:$<CONFIG:Debug>,${LIBZIP_BASE_DIR}-Debug/bin/zip.dll,${LIBZIP_BASE_DIR}-Release/bin/zip.dll>")
|
||||||
|
|
||||||
set(ZLIB_DLL_SRC "$<IF:$<CONFIG:Debug>,${ZLIB_INSTALL_DIR}/bin/zlibd.dll,${ZLIB_INSTALL_DIR}/bin/zlib.dll>")
|
set(ZLIB_DLL_SRC "$<IF:$<CONFIG:Debug>,${ZLIB_INSTALL_DIR}/bin/zd.dll,${ZLIB_INSTALL_DIR}/bin/z.dll>")
|
||||||
set(ZLIB_DLL_DST "$<IF:$<CONFIG:Debug>,$<TARGET_FILE_DIR:space-game001>/zlibd.dll,$<TARGET_FILE_DIR:space-game001>/zlib.dll>")
|
set(ZLIB_DLL_DST "$<IF:$<CONFIG:Debug>,$<TARGET_FILE_DIR:space-game001>/zd.dll,$<TARGET_FILE_DIR:space-game001>/z.dll>")
|
||||||
|
|
||||||
set(SDL2TTF_DLL_SRC "$<IF:$<CONFIG:Debug>,${SDL2TTF_BASE_DIR}-Debug/bin/SDL2_ttfd.dll,${SDL2TTF_BASE_DIR}-Release/bin/SDL2_ttf.dll>")
|
set(SDL2TTF_DLL_SRC "$<IF:$<CONFIG:Debug>,${SDL2TTF_BASE_DIR}-Debug/bin/SDL2_ttfd.dll,${SDL2TTF_BASE_DIR}-Release/bin/SDL2_ttf.dll>")
|
||||||
|
|
||||||
|
set(SDL2MIXER_DLL_SRC "$<IF:$<CONFIG:Debug>,${SDL2MIXER_BASE_DIR}-Debug/bin/SDL2_mixerd.dll,${SDL2MIXER_BASE_DIR}-Release/bin/SDL2_mixer.dll>")
|
||||||
|
|
||||||
add_custom_command(TARGET space-game001 POST_BUILD
|
add_custom_command(TARGET space-game001 POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E echo "Copying DLLs to output folder..."
|
COMMAND ${CMAKE_COMMAND} -E echo "Copying DLLs to output folder..."
|
||||||
@ -152,6 +161,10 @@ if (WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
"${SDL2TTF_DLL_SRC}"
|
"${SDL2TTF_DLL_SRC}"
|
||||||
"$<TARGET_FILE_DIR:space-game001>"
|
"$<TARGET_FILE_DIR:space-game001>"
|
||||||
|
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/SDL_mixer-release-2.8.0/install-$<CONFIG>/bin/SDL2_mixer$<$<CONFIG:Debug>:d>.dll"
|
||||||
|
"$<TARGET_FILE_DIR:space-game001>/SDL2_mixer$<$<CONFIG:Debug>:d>.dll"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -162,6 +175,7 @@ endif()
|
|||||||
# Какие папки с ресурсами нужно копировать
|
# Какие папки с ресурсами нужно копировать
|
||||||
set(RUNTIME_RESOURCE_DIRS
|
set(RUNTIME_RESOURCE_DIRS
|
||||||
"resources"
|
"resources"
|
||||||
|
"audio"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Копируем ресурсы и шейдеры в папку exe и в корень build/
|
# Копируем ресурсы и шейдеры в папку exe и в корень build/
|
||||||
@ -177,4 +191,4 @@ foreach(resdir IN LISTS RUNTIME_RESOURCE_DIRS)
|
|||||||
"${CMAKE_SOURCE_DIR}/../${resdir}"
|
"${CMAKE_SOURCE_DIR}/../${resdir}"
|
||||||
"${CMAKE_BINARY_DIR}/${resdir}"
|
"${CMAKE_BINARY_DIR}/${resdir}"
|
||||||
)
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|||||||
BIN
resources/Cargo_Base_color_sRGB.png
(Stored with Git LFS)
BIN
resources/Cargo_Base_color_sRGB.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/MainCharacter_Base_color_sRGB.png
(Stored with Git LFS)
BIN
resources/MainCharacter_Base_color_sRGB.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/bandit.png
(Stored with Git LFS)
Normal file
BIN
resources/bandit.png
(Stored with Git LFS)
Normal file
Binary file not shown.
33
resources/barn/board.txt
Normal file
33
resources/barn/board.txt
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 20
|
||||||
|
V 0: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.014711, 0.022579)
|
||||||
|
V 1: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.547197, 0.022579)
|
||||||
|
V 2: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.576682, 0.976966)
|
||||||
|
V 3: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.014711, 0.94744)
|
||||||
|
V 4: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.591716, 0.022579)
|
||||||
|
V 5: Pos(2.181902, 0.755012, 0.221728) Norm(-1e-06, 0.688307, -0.72542) UV(0.606751, 0.022579)
|
||||||
|
V 6: Pos(2.181902, 0.169635, 0.221728) Norm(-0.0, -0.707106, -0.707107) UV(0.606751, 0.94744)
|
||||||
|
V 7: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.591716, 0.94744)
|
||||||
|
V 8: Pos(2.172386, 0.169635, 0.221728) Norm(-0.577351, -0.57735, -0.57735) UV(0.63682, 0.555065)
|
||||||
|
V 9: Pos(2.181902, 0.169635, 0.221728) Norm(-0.0, -0.707106, -0.707107) UV(0.621785, 0.555065)
|
||||||
|
V 10: Pos(2.181902, 0.169635, 0.558757) Norm(1e-06, -0.717941, 0.696104) UV(0.621785, 0.022579)
|
||||||
|
V 11: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.63682, 0.022579)
|
||||||
|
V 12: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.606751, 0.022579)
|
||||||
|
V 13: Pos(2.181902, 0.7737, 0.577419) Norm(0.0, 0.714705, 0.699426) UV(0.621785, 0.022579)
|
||||||
|
V 14: Pos(2.181902, 0.755012, 0.221728) Norm(-1e-06, 0.688307, -0.72542) UV(0.621785, 0.585325)
|
||||||
|
V 15: Pos(2.172386, 0.755012, 0.221728) Norm(-0.580152, 0.560631, -0.590861) UV(0.606751, 0.585325)
|
||||||
|
V 16: Pos(2.172386, 0.169635, 0.558757) Norm(-0.578984, -0.585366, 0.56756) UV(0.591716, 0.977422)
|
||||||
|
V 17: Pos(2.181902, 0.169635, 0.558757) Norm(1e-06, -0.717941, 0.696104) UV(0.576682, 0.977422)
|
||||||
|
V 18: Pos(2.181902, 0.7737, 0.577419) Norm(0.0, 0.714705, 0.699426) UV(0.576682, 0.022579)
|
||||||
|
V 19: Pos(2.172386, 0.7737, 0.577419) Norm(-0.573104, 0.585688, 0.573167) UV(0.591716, 0.022579)
|
||||||
|
|
||||||
|
===Triangles (Indices): 10
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
63
resources/barn/books1.txt
Normal file
63
resources/barn/books1.txt
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 40
|
||||||
|
V 0: Pos(1.996428, 0.338833, 0.198714) Norm(-0.551234, -0.834351, 0.0) UV(0.971407, 0.5)
|
||||||
|
V 1: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.944505, 0.5)
|
||||||
|
V 2: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.944505, 0.023447)
|
||||||
|
V 3: Pos(1.983381, 0.402683, 0.198714) Norm(-0.83435, 0.551234, 0.0) UV(0.971408, 0.023447)
|
||||||
|
V 4: Pos(1.983381, 0.402683, 0.198714) Norm(-0.83435, 0.551234, 0.0) UV(0.863798, 0.700024)
|
||||||
|
V 5: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.836895, 0.700024)
|
||||||
|
V 6: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.836895, 0.023447)
|
||||||
|
V 7: Pos(2.073946, 0.421188, 0.198714) Norm(0.551236, 0.834349, 0.0) UV(0.863798, 0.023447)
|
||||||
|
V 8: Pos(2.073946, 0.421188, 0.198714) Norm(0.551236, 0.834349, 0.0) UV(0.971408, 0.976553)
|
||||||
|
V 9: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.944505, 0.976553)
|
||||||
|
V 10: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.944505, 0.5)
|
||||||
|
V 11: Pos(2.086992, 0.357338, 0.198714) Norm(0.83435, -0.551236, 0.0) UV(0.971408, 0.5)
|
||||||
|
V 12: Pos(2.086992, 0.357338, 0.198714) Norm(0.83435, -0.551236, 0.0) UV(0.8907, 0.700024)
|
||||||
|
V 13: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.863798, 0.700024)
|
||||||
|
V 14: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.863798, 0.023447)
|
||||||
|
V 15: Pos(1.996428, 0.338833, 0.198714) Norm(-0.551234, -0.834351, 0.0) UV(0.8907, 0.023447)
|
||||||
|
V 16: Pos(2.016325, 0.3535, 0.202405) Norm(-0.212218, -0.977222, 0.0) UV(0.917603, 0.911909)
|
||||||
|
V 17: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.8907, 0.911909)
|
||||||
|
V 18: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.8907, 0.589135)
|
||||||
|
V 19: Pos(1.992261, 0.390504, 0.202405) Norm(-0.977223, 0.212217, 0.0) UV(0.917603, 0.589135)
|
||||||
|
V 20: Pos(2.073946, 0.421188, 0.202329) Norm(0.450082, 0.681244, 0.57735) UV(0.508379, 0.023447)
|
||||||
|
V 21: Pos(1.983381, 0.402683, 0.202329) Norm(-0.681244, 0.450081, 0.57735) UV(0.508379, 0.711448)
|
||||||
|
V 22: Pos(1.996428, 0.338833, 0.202329) Norm(-0.450081, -0.681244, 0.57735) UV(0.023323, 0.711448)
|
||||||
|
V 23: Pos(2.086992, 0.357338, 0.202329) Norm(0.681243, -0.450082, 0.57735) UV(0.023323, 0.023447)
|
||||||
|
V 24: Pos(1.992261, 0.390504, 0.202405) Norm(-0.977223, 0.212217, 0.0) UV(0.917603, 0.023447)
|
||||||
|
V 25: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.944505, 0.023447)
|
||||||
|
V 26: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.944505, 0.589134)
|
||||||
|
V 27: Pos(2.057473, 0.431984, 0.202405) Norm(0.212218, 0.977222, 0.0) UV(0.917603, 0.589134)
|
||||||
|
V 28: Pos(2.057473, 0.431984, 0.202405) Norm(0.212218, 0.977222, 0.0) UV(0.508379, 0.601986)
|
||||||
|
V 29: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.535281, 0.601986)
|
||||||
|
V 30: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.535281, 0.92476)
|
||||||
|
V 31: Pos(2.081536, 0.39498, 0.202405) Norm(0.977222, -0.212219, 0.0) UV(0.508379, 0.92476)
|
||||||
|
V 32: Pos(2.081536, 0.39498, 0.202405) Norm(0.977222, -0.212219, 0.0) UV(0.917603, 0.589135)
|
||||||
|
V 33: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.8907, 0.589135)
|
||||||
|
V 34: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.8907, 0.023447)
|
||||||
|
V 35: Pos(2.016325, 0.3535, 0.202405) Norm(-0.212218, -0.977222, 0.0) UV(0.917603, 0.023447)
|
||||||
|
V 36: Pos(2.057473, 0.431984, 0.206019) Norm(0.173196, 0.797534, 0.577878) UV(0.508379, 0.598686)
|
||||||
|
V 37: Pos(1.992261, 0.390504, 0.206019) Norm(-0.79826, 0.173353, 0.576827) UV(0.508379, 0.023447)
|
||||||
|
V 38: Pos(2.016325, 0.3535, 0.206019) Norm(-0.173196, -0.797534, 0.577877) UV(0.836895, 0.026746)
|
||||||
|
V 39: Pos(2.081536, 0.39498, 0.206019) Norm(0.79826, -0.173354, 0.576827) UV(0.836895, 0.601986)
|
||||||
|
|
||||||
|
===Triangles (Indices): 20
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
|
Tri: 20 21 22
|
||||||
|
Tri: 20 22 23
|
||||||
|
Tri: 24 25 26
|
||||||
|
Tri: 24 26 27
|
||||||
|
Tri: 28 29 30
|
||||||
|
Tri: 28 30 31
|
||||||
|
Tri: 32 33 34
|
||||||
|
Tri: 32 34 35
|
||||||
|
Tri: 36 37 38
|
||||||
|
Tri: 36 38 39
|
||||||
63
resources/barn/books2.txt
Normal file
63
resources/barn/books2.txt
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 40
|
||||||
|
V 0: Pos(1.884571, 0.582254, 0.198714) Norm(-0.993741, -0.111707, 0.0) UV(0.971407, 0.5)
|
||||||
|
V 1: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.944505, 0.5)
|
||||||
|
V 2: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.944505, 0.023447)
|
||||||
|
V 3: Pos(1.925217, 0.633195, 0.198714) Norm(-0.111707, 0.993741, 0.0) UV(0.971408, 0.023447)
|
||||||
|
V 4: Pos(1.925217, 0.633195, 0.198714) Norm(-0.111707, 0.993741, 0.0) UV(0.863798, 0.700024)
|
||||||
|
V 5: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.836895, 0.700024)
|
||||||
|
V 6: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.836895, 0.023447)
|
||||||
|
V 7: Pos(1.997471, 0.575543, 0.198714) Norm(0.993741, 0.111708, 0.0) UV(0.863798, 0.023447)
|
||||||
|
V 8: Pos(1.997471, 0.575543, 0.198714) Norm(0.993741, 0.111708, 0.0) UV(0.971408, 0.976553)
|
||||||
|
V 9: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.944505, 0.976553)
|
||||||
|
V 10: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.944505, 0.5)
|
||||||
|
V 11: Pos(1.956826, 0.524602, 0.198714) Norm(0.111708, -0.993741, 0.0) UV(0.971408, 0.5)
|
||||||
|
V 12: Pos(1.956826, 0.524602, 0.198714) Norm(0.111708, -0.993741, 0.0) UV(0.8907, 0.700024)
|
||||||
|
V 13: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.863798, 0.700024)
|
||||||
|
V 14: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.863798, 0.023447)
|
||||||
|
V 15: Pos(1.884571, 0.582254, 0.198714) Norm(-0.993741, -0.111707, 0.0) UV(0.8907, 0.023447)
|
||||||
|
V 16: Pos(1.908582, 0.576383, 0.202405) Norm(-0.886097, -0.4635, 0.0) UV(0.917603, 0.911909)
|
||||||
|
V 17: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.8907, 0.911909)
|
||||||
|
V 18: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.8907, 0.589135)
|
||||||
|
V 19: Pos(1.921561, 0.618572, 0.202405) Norm(-0.4635, 0.886097, 0.0) UV(0.917603, 0.589135)
|
||||||
|
V 20: Pos(1.997471, 0.575543, 0.202329) Norm(0.811386, 0.091209, 0.57735) UV(0.508379, 0.023447)
|
||||||
|
V 21: Pos(1.925217, 0.633195, 0.202329) Norm(-0.091209, 0.811387, 0.57735) UV(0.508379, 0.711448)
|
||||||
|
V 22: Pos(1.884571, 0.582254, 0.202329) Norm(-0.811386, -0.091209, 0.577351) UV(0.023323, 0.711448)
|
||||||
|
V 23: Pos(1.956826, 0.524602, 0.202329) Norm(0.091209, -0.811386, 0.57735) UV(0.023323, 0.023447)
|
||||||
|
V 24: Pos(1.921561, 0.618572, 0.202405) Norm(-0.4635, 0.886097, 0.0) UV(0.917603, 0.023447)
|
||||||
|
V 25: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.944505, 0.023447)
|
||||||
|
V 26: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.944505, 0.589134)
|
||||||
|
V 27: Pos(1.995198, 0.595107, 0.202405) Norm(0.886097, 0.4635, 0.0) UV(0.917603, 0.589134)
|
||||||
|
V 28: Pos(1.995198, 0.595107, 0.202405) Norm(0.886097, 0.4635, 0.0) UV(0.508379, 0.601986)
|
||||||
|
V 29: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.535281, 0.601986)
|
||||||
|
V 30: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.535281, 0.92476)
|
||||||
|
V 31: Pos(1.98222, 0.552918, 0.202405) Norm(0.4635, -0.886097, 0.0) UV(0.508379, 0.92476)
|
||||||
|
V 32: Pos(1.98222, 0.552918, 0.202405) Norm(0.4635, -0.886097, 0.0) UV(0.917603, 0.589135)
|
||||||
|
V 33: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.8907, 0.589135)
|
||||||
|
V 34: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.8907, 0.023447)
|
||||||
|
V 35: Pos(1.908582, 0.576383, 0.202405) Norm(-0.886097, -0.4635, 0.0) UV(0.917603, 0.023447)
|
||||||
|
V 36: Pos(1.995198, 0.595107, 0.206019) Norm(0.723164, 0.378273, 0.577878) UV(0.508379, 0.598686)
|
||||||
|
V 37: Pos(1.921561, 0.618572, 0.206019) Norm(-0.378618, 0.723823, 0.576827) UV(0.508379, 0.023447)
|
||||||
|
V 38: Pos(1.908582, 0.576383, 0.206019) Norm(-0.723165, -0.378274, 0.577877) UV(0.836895, 0.026746)
|
||||||
|
V 39: Pos(1.98222, 0.552918, 0.206019) Norm(0.378618, -0.723823, 0.576827) UV(0.836895, 0.601986)
|
||||||
|
|
||||||
|
===Triangles (Indices): 20
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
|
Tri: 20 21 22
|
||||||
|
Tri: 20 22 23
|
||||||
|
Tri: 24 25 26
|
||||||
|
Tri: 24 26 27
|
||||||
|
Tri: 28 29 30
|
||||||
|
Tri: 28 30 31
|
||||||
|
Tri: 32 33 34
|
||||||
|
Tri: 32 34 35
|
||||||
|
Tri: 36 37 38
|
||||||
|
Tri: 36 38 39
|
||||||
29
resources/barn/cardboard1.txt
Normal file
29
resources/barn/cardboard1.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 14
|
||||||
|
V 0: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.380616, 0.022463)
|
||||||
|
V 1: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.619384, 0.022463)
|
||||||
|
V 2: Pos(1.948582, 0.45697, 0.107039) Norm(-0.425247, 0.709291, 0.562202) UV(0.619384, 0.261232)
|
||||||
|
V 3: Pos(1.950513, 0.453749, 0.015009) Norm(-0.414235, 0.690923, -0.592482) UV(0.380616, 0.261232)
|
||||||
|
V 4: Pos(2.043009, 0.433329, 0.107039) Norm(0.709291, 0.425246, 0.562202) UV(0.619384, 0.5)
|
||||||
|
V 5: Pos(2.039788, 0.431398, 0.015009) Norm(0.690923, 0.414234, -0.592482) UV(0.380616, 0.5)
|
||||||
|
V 6: Pos(2.019368, 0.338903, 0.107039) Norm(0.425246, -0.709292, 0.562202) UV(0.619384, 0.738768)
|
||||||
|
V 7: Pos(2.017437, 0.342124, 0.015009) Norm(0.414235, -0.690924, -0.592481) UV(0.380616, 0.738768)
|
||||||
|
V 8: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.619384, 0.977537)
|
||||||
|
V 9: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.380616, 0.977537)
|
||||||
|
V 10: Pos(1.950513, 0.453749, 0.015009) Norm(-0.414235, 0.690923, -0.592482) UV(0.141847, 0.5)
|
||||||
|
V 11: Pos(1.928162, 0.364475, 0.015009) Norm(-0.690923, -0.414235, -0.592482) UV(0.141847, 0.738768)
|
||||||
|
V 12: Pos(1.948582, 0.45697, 0.107039) Norm(-0.425247, 0.709291, 0.562202) UV(0.858153, 0.5)
|
||||||
|
V 13: Pos(1.924941, 0.362544, 0.107039) Norm(-0.709291, -0.425247, 0.562202) UV(0.858153, 0.738768)
|
||||||
|
|
||||||
|
===Triangles (Indices): 12
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 3 2 4
|
||||||
|
Tri: 3 4 5
|
||||||
|
Tri: 5 4 6
|
||||||
|
Tri: 5 6 7
|
||||||
|
Tri: 7 6 8
|
||||||
|
Tri: 7 8 9
|
||||||
|
Tri: 10 5 7
|
||||||
|
Tri: 10 7 11
|
||||||
|
Tri: 4 12 13
|
||||||
|
Tri: 4 13 6
|
||||||
29
resources/barn/cardboard2.txt
Normal file
29
resources/barn/cardboard2.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 14
|
||||||
|
V 0: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.380616, 0.022463)
|
||||||
|
V 1: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.619384, 0.022463)
|
||||||
|
V 2: Pos(1.919735, 0.312747, 0.120071) Norm(-0.676743, 0.475339, 0.562202) UV(0.619384, 0.261232)
|
||||||
|
V 3: Pos(1.92324, 0.310285, 0.015108) Norm(-0.659218, 0.463029, -0.592482) UV(0.380616, 0.261232)
|
||||||
|
V 4: Pos(2.029097, 0.331865, 0.120071) Norm(0.475339, 0.676744, 0.562202) UV(0.619384, 0.5)
|
||||||
|
V 5: Pos(2.026635, 0.32836, 0.015108) Norm(0.46303, 0.659218, -0.592482) UV(0.380616, 0.5)
|
||||||
|
V 6: Pos(2.048215, 0.222503, 0.120071) Norm(0.676743, -0.475339, 0.562202) UV(0.619384, 0.738768)
|
||||||
|
V 7: Pos(2.04471, 0.224965, 0.015108) Norm(0.659218, -0.46303, -0.592482) UV(0.380616, 0.738768)
|
||||||
|
V 8: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.619384, 0.977537)
|
||||||
|
V 9: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.380616, 0.977537)
|
||||||
|
V 10: Pos(1.92324, 0.310285, 0.015108) Norm(-0.659218, 0.463029, -0.592482) UV(0.141847, 0.5)
|
||||||
|
V 11: Pos(1.941315, 0.20689, 0.015108) Norm(-0.46303, -0.659218, -0.592482) UV(0.141847, 0.738768)
|
||||||
|
V 12: Pos(1.919735, 0.312747, 0.120071) Norm(-0.676743, 0.475339, 0.562202) UV(0.858153, 0.5)
|
||||||
|
V 13: Pos(1.938853, 0.203385, 0.120071) Norm(-0.475339, -0.676743, 0.562202) UV(0.858153, 0.738768)
|
||||||
|
|
||||||
|
===Triangles (Indices): 12
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 3 2 4
|
||||||
|
Tri: 3 4 5
|
||||||
|
Tri: 5 4 6
|
||||||
|
Tri: 5 6 7
|
||||||
|
Tri: 7 6 8
|
||||||
|
Tri: 7 8 9
|
||||||
|
Tri: 10 5 7
|
||||||
|
Tri: 10 7 11
|
||||||
|
Tri: 4 12 13
|
||||||
|
Tri: 4 13 6
|
||||||
52
resources/barn/cube.txt
Normal file
52
resources/barn/cube.txt
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 29
|
||||||
|
V 0: Pos(2.144698, 1.006366, 0.014196) Norm(0.403294, 0.189282, -0.89528) UV(0.038866, 0.499333)
|
||||||
|
V 1: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.0229, 0.474324)
|
||||||
|
V 2: Pos(2.179514, 0.863888, 0.224368) Norm(0.938676, -0.127483, 0.320367) UV(0.232621, 0.022338)
|
||||||
|
V 3: Pos(2.16982, 0.849805, 0.224272) Norm(0.452238, -0.834195, 0.315593) UV(0.266966, 0.022338)
|
||||||
|
V 4: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.476687, 0.474324)
|
||||||
|
V 5: Pos(2.025633, 0.833386, 0.013027) Norm(-0.02715, -0.436065, -0.899505) UV(0.460721, 0.499333)
|
||||||
|
V 6: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.930474, 0.535066)
|
||||||
|
V 7: Pos(2.171014, 0.869703, 0.229717) Norm(0.054319, 0.477468, 0.876969) UV(0.930474, 0.036794)
|
||||||
|
V 8: Pos(2.179514, 0.863888, 0.224368) Norm(0.938676, -0.127483, 0.320367) UV(0.953787, 0.036794)
|
||||||
|
V 9: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.953787, 0.535066)
|
||||||
|
V 10: Pos(2.017133, 0.839201, 0.018377) Norm(-0.925489, 0.178454, -0.334101) UV(0.492653, 0.499333)
|
||||||
|
V 11: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.476687, 0.474324)
|
||||||
|
V 12: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.686408, 0.022338)
|
||||||
|
V 13: Pos(2.171014, 0.869703, 0.229717) Norm(0.054319, 0.477468, 0.876969) UV(0.720754, 0.022338)
|
||||||
|
V 14: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.930474, 0.474324)
|
||||||
|
V 15: Pos(2.136198, 1.01218, 0.019545) Norm(-0.495043, 0.803811, -0.329878) UV(0.914509, 0.499333)
|
||||||
|
V 16: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.953787, 0.520609)
|
||||||
|
V 17: Pos(2.16982, 0.849805, 0.224272) Norm(0.452238, -0.834195, 0.315593) UV(0.953787, 0.022338)
|
||||||
|
V 18: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.9771, 0.022338)
|
||||||
|
V 19: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.9771, 0.520609)
|
||||||
|
V 20: Pos(2.16132, 0.855619, 0.229622) Norm(-0.432118, -0.229245, 0.872193) UV(0.930474, 0.022338)
|
||||||
|
V 21: Pos(2.017133, 0.839201, 0.018377) Norm(-0.925489, 0.178454, -0.334101) UV(0.046213, 0.515299)
|
||||||
|
V 22: Pos(2.025633, 0.833386, 0.013027) Norm(-0.02715, -0.436065, -0.899505) UV(0.0229, 0.515299)
|
||||||
|
V 23: Pos(2.025819, 0.823535, 0.02403) Norm(-0.017565, -0.942434, -0.333931) UV(0.0229, 0.499333)
|
||||||
|
V 24: Pos(2.017319, 0.829349, 0.02938) Norm(-0.915912, -0.327912, 0.231473) UV(0.046213, 0.499333)
|
||||||
|
V 25: Pos(2.144698, 1.006366, 0.014196) Norm(0.403294, 0.189282, -0.89528) UV(0.0229, 0.937155)
|
||||||
|
V 26: Pos(2.136198, 1.01218, 0.019545) Norm(-0.495043, 0.803811, -0.329878) UV(0.046213, 0.937155)
|
||||||
|
V 27: Pos(2.145396, 1.015422, 0.030637) Norm(-0.022224, 0.970458, 0.240245) UV(0.046213, 0.95312)
|
||||||
|
V 28: Pos(2.153896, 1.009608, 0.025287) Norm(0.876115, 0.355937, -0.325162) UV(0.0229, 0.95312)
|
||||||
|
|
||||||
|
===Triangles (Indices): 20
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 0 3 4
|
||||||
|
Tri: 0 4 5
|
||||||
|
Tri: 6 7 8
|
||||||
|
Tri: 6 8 9
|
||||||
|
Tri: 10 11 12
|
||||||
|
Tri: 10 12 13
|
||||||
|
Tri: 10 13 14
|
||||||
|
Tri: 10 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
|
Tri: 7 20 17
|
||||||
|
Tri: 7 17 8
|
||||||
|
Tri: 21 22 23
|
||||||
|
Tri: 21 23 24
|
||||||
|
Tri: 25 26 27
|
||||||
|
Tri: 25 27 28
|
||||||
|
Tri: 21 26 25
|
||||||
|
Tri: 21 25 22
|
||||||
423
resources/barn/house.txt
Normal file
423
resources/barn/house.txt
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 226
|
||||||
|
V 0: Pos(-2.162589, -1.0, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.531013, 0.882126)
|
||||||
|
V 1: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.491477, 0.882126)
|
||||||
|
V 2: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.491477, 0.666563)
|
||||||
|
V 3: Pos(-2.162589, 1.963949, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.531013, 0.666563)
|
||||||
|
V 4: Pos(2.283504, 1.963949, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.624115, 0.882126)
|
||||||
|
V 5: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.584579, 0.882126)
|
||||||
|
V 6: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.584579, 0.666563)
|
||||||
|
V 7: Pos(2.283504, -1.0, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.624115, 0.666563)
|
||||||
|
V 8: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.254904, 0.57906)
|
||||||
|
V 9: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.254904, 0.455791)
|
||||||
|
V 10: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.456307, 0.455791)
|
||||||
|
V 11: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.456307, 0.57906)
|
||||||
|
V 12: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.737052, 0.235723)
|
||||||
|
V 13: Pos(-0.787029, 1.866597, 1.820116) Norm(0.353009, -0.756776, -0.550158) UV(0.814652, 0.235723)
|
||||||
|
V 14: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.77958, 0.328324)
|
||||||
|
V 15: Pos(-2.060281, 1.866597, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.737052, 0.328324)
|
||||||
|
V 16: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.737052, 0.420926)
|
||||||
|
V 17: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.683486, 0.420926)
|
||||||
|
V 18: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.683486, 0.328324)
|
||||||
|
V 19: Pos(-2.060281, -0.902648, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.737052, 0.328324)
|
||||||
|
V 20: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.456307, 0.363191)
|
||||||
|
V 21: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.254904, 0.363191)
|
||||||
|
V 22: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.243391, 0.416758)
|
||||||
|
V 23: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.243391, 0.363192)
|
||||||
|
V 24: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.250471, 0.363192)
|
||||||
|
V 25: Pos(0.907944, 1.963949, 0.016616) Norm(-0.707106, 0.707108, -0.0) UV(0.250471, 0.416758)
|
||||||
|
V 26: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.456307, 0.363191)
|
||||||
|
V 27: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.463388, 0.363191)
|
||||||
|
V 28: Pos(0.060457, 1.866597, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.463388, 0.424826)
|
||||||
|
V 29: Pos(0.060458, 1.963949, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.456307, 0.424826)
|
||||||
|
V 30: Pos(-2.060281, 1.866597, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.06086, 0.873065)
|
||||||
|
V 31: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.018331, 0.873065)
|
||||||
|
V 32: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.018331, 0.671662)
|
||||||
|
V 33: Pos(-2.060281, -0.902648, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.06086, 0.671662)
|
||||||
|
V 34: Pos(2.181196, 1.866597, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.737052, 0.019848)
|
||||||
|
V 35: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.77958, 0.019848)
|
||||||
|
V 36: Pos(0.907943, 1.866597, 1.820116) Norm(-0.353009, -0.756776, -0.550158) UV(0.814652, 0.11245)
|
||||||
|
V 37: Pos(0.907943, 1.866597, 0.753136) Norm(-0.301512, -0.904534, -0.301512) UV(0.737052, 0.11245)
|
||||||
|
V 38: Pos(2.181196, 1.866597, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.297432, 0.67166)
|
||||||
|
V 39: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.350998, 0.67166)
|
||||||
|
V 40: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.350998, 0.873063)
|
||||||
|
V 41: Pos(2.181196, -0.902648, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.297432, 0.873063)
|
||||||
|
V 42: Pos(2.181196, -0.902648, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.737052, 0.6368)
|
||||||
|
V 43: Pos(2.181196, -0.902648, 0.016616) Norm(-0.57735, 0.57735, 0.57735) UV(0.683486, 0.6368)
|
||||||
|
V 44: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.683486, 0.544199)
|
||||||
|
V 45: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.737052, 0.544199)
|
||||||
|
V 46: Pos(-2.162589, 1.963949, 0.753136) Norm(-0.707107, 0.707107, 0.0) UV(0.545043, 0.019848)
|
||||||
|
V 47: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.584579, 0.019848)
|
||||||
|
V 48: Pos(-0.787029, 1.963949, 1.820116) Norm(0.353547, 0.756586, -0.550075) UV(0.622643, 0.119891)
|
||||||
|
V 49: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.545043, 0.119891)
|
||||||
|
V 50: Pos(2.283504, -1.0, 0.753136) Norm(0.707107, -0.707107, 0.0) UV(0.545043, 0.343206)
|
||||||
|
V 51: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.584579, 0.343206)
|
||||||
|
V 52: Pos(0.907944, -1.0, 1.820116) Norm(-0.353547, -0.756586, -0.550075) UV(0.622643, 0.443248)
|
||||||
|
V 53: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.545043, 0.443248)
|
||||||
|
V 54: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.463388, 0.486461)
|
||||||
|
V 55: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.456307, 0.486461)
|
||||||
|
V 56: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.545043, 0.566521)
|
||||||
|
V 57: Pos(-0.787028, -1.0, 1.820116) Norm(0.353547, -0.756586, -0.550075) UV(0.622643, 0.566521)
|
||||||
|
V 58: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.584579, 0.666563)
|
||||||
|
V 59: Pos(-2.162589, -1.0, 0.753136) Norm(-0.707107, -0.707107, 0.0) UV(0.545043, 0.666563)
|
||||||
|
V 60: Pos(0.907944, 1.963949, 0.753136) Norm(-0.301511, 0.904534, -0.301511) UV(0.545043, 0.243163)
|
||||||
|
V 61: Pos(0.907943, 1.963949, 1.820116) Norm(-0.353548, 0.756586, -0.550075) UV(0.622643, 0.243163)
|
||||||
|
V 62: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.584579, 0.343206)
|
||||||
|
V 63: Pos(2.283504, 1.963949, 0.753136) Norm(0.707107, 0.707107, 0.0) UV(0.545043, 0.343206)
|
||||||
|
V 64: Pos(-0.787029, 1.866597, 0.753136) Norm(0.301511, -0.904534, -0.301511) UV(0.250471, 0.416758)
|
||||||
|
V 65: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.250471, 0.470324)
|
||||||
|
V 66: Pos(-0.787028, 1.963949, 0.016616) Norm(0.707107, 0.707106, 0.0) UV(0.243391, 0.470324)
|
||||||
|
V 67: Pos(-0.787028, 1.963949, 0.753136) Norm(0.301511, 0.904534, -0.301512) UV(0.243391, 0.416758)
|
||||||
|
V 68: Pos(0.060457, 1.866597, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.737052, 0.174086)
|
||||||
|
V 69: Pos(0.060457, 1.866597, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.875495, 0.174086)
|
||||||
|
V 70: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.470468, 0.363191)
|
||||||
|
V 71: Pos(0.907943, -0.902648, 0.016616) Norm(-0.408248, 0.408248, 0.816497) UV(0.470468, 0.416757)
|
||||||
|
V 72: Pos(0.907943, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.463388, 0.416757)
|
||||||
|
V 73: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.463388, 0.363191)
|
||||||
|
V 74: Pos(2.283504, -1.146237, 1.410701) Norm(0.241334, -0.710196, 0.661346) UV(0.782394, 0.969614)
|
||||||
|
V 75: Pos(2.283504, -1.146237, 1.296742) Norm(-0.243443, -0.704043, -0.667127) UV(0.790682, 0.969614)
|
||||||
|
V 76: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.794365, 0.980152)
|
||||||
|
V 77: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.786077, 0.980152)
|
||||||
|
V 78: Pos(-2.162589, -1.0, 1.296742) Norm(0.026636, -0.402662, -0.914961) UV(0.244269, 0.353713)
|
||||||
|
V 79: Pos(-0.787028, -1.0, 1.820116) Norm(0.353547, -0.756586, -0.550075) UV(0.244269, 0.253425)
|
||||||
|
V 80: Pos(-0.787028, -1.146237, 1.820116) Norm(0.404514, -0.663521, -0.629372) UV(0.254904, 0.253425)
|
||||||
|
V 81: Pos(-2.162589, -1.146237, 1.296742) Norm(0.253725, -0.70799, -0.65907) UV(0.254904, 0.353713)
|
||||||
|
V 82: Pos(2.283504, -1.0, 1.410701) Norm(0.342802, 0.0, 0.939408) UV(0.26554, 0.03036)
|
||||||
|
V 83: Pos(0.907944, -1.0, 1.934074) Norm(0.54068, 0.0, 0.841229) UV(0.26554, 0.130136)
|
||||||
|
V 84: Pos(0.907944, -1.146237, 1.934074) Norm(0.353547, -0.756586, 0.550075) UV(0.254904, 0.130136)
|
||||||
|
V 85: Pos(2.283504, -1.146237, 1.410701) Norm(0.241334, -0.710196, 0.661346) UV(0.254904, 0.03036)
|
||||||
|
V 86: Pos(-0.787029, -0.902648, 0.016616) Norm(0.408248, 0.408248, 0.816497) UV(0.463388, 0.470323)
|
||||||
|
V 87: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.463388, 0.416757)
|
||||||
|
V 88: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.470468, 0.416757)
|
||||||
|
V 89: Pos(-0.787029, -1.0, 0.016616) Norm(0.707107, -0.707107, -0.0) UV(0.470468, 0.470323)
|
||||||
|
V 90: Pos(0.060458, -0.902648, 2.656697) Norm(-0.0, 0.578056, -0.815997) UV(0.875495, 0.482562)
|
||||||
|
V 91: Pos(0.060458, -0.902648, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.737052, 0.482562)
|
||||||
|
V 92: Pos(-0.787029, -0.902648, 1.820116) Norm(0.353009, 0.756776, -0.550158) UV(0.814652, 0.420926)
|
||||||
|
V 93: Pos(0.907944, -1.0, 0.753136) Norm(-0.301511, -0.904534, -0.301511) UV(0.243391, 0.363192)
|
||||||
|
V 94: Pos(0.060458, -1.0, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.243391, 0.424828)
|
||||||
|
V 95: Pos(0.060458, -0.902648, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.23631, 0.424828)
|
||||||
|
V 96: Pos(0.907943, -0.902648, 0.753136) Norm(-0.301511, 0.904534, -0.301512) UV(0.23631, 0.363192)
|
||||||
|
V 97: Pos(0.907944, -1.0, 1.820116) Norm(-0.353547, -0.756586, -0.550075) UV(0.244269, 0.130155)
|
||||||
|
V 98: Pos(2.283504, -1.0, 1.296742) Norm(-0.005023, -0.39988, -0.916554) UV(0.244269, 0.030362)
|
||||||
|
V 99: Pos(2.283504, -1.146237, 1.296742) Norm(-0.243443, -0.704043, -0.667127) UV(0.254904, 0.030362)
|
||||||
|
V 100: Pos(0.907944, -1.146237, 1.820116) Norm(-0.404514, -0.663521, -0.629372) UV(0.254904, 0.130155)
|
||||||
|
V 101: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.254904, 0.363192)
|
||||||
|
V 102: Pos(-2.292608, -1.0, 1.246102) Norm(-0.564391, 0.0, -0.825508) UV(0.244269, 0.363192)
|
||||||
|
V 103: Pos(0.060458, -1.0, 2.770656) Norm(0.0, 0.0, 1.0) UV(0.26554, 0.191347)
|
||||||
|
V 104: Pos(0.060458, -1.146237, 2.770656) Norm(0.0, -0.578056, 0.815997) UV(0.254904, 0.191347)
|
||||||
|
V 105: Pos(-0.787028, -1.0, 1.934074) Norm(-0.54068, -0.0, 0.841229) UV(0.26554, 0.253405)
|
||||||
|
V 106: Pos(-0.787028, -1.146237, 1.934074) Norm(-0.353547, -0.756586, 0.550075) UV(0.254904, 0.253405)
|
||||||
|
V 107: Pos(-2.162589, 1.963949, 1.410701) Norm(-0.359271, -0.0, 0.933233) UV(0.481103, 0.35371)
|
||||||
|
V 108: Pos(-0.787029, 1.963949, 1.934074) Norm(-0.54068, -0.0, 0.841228) UV(0.481103, 0.253405)
|
||||||
|
V 109: Pos(-0.787029, 2.10659, 1.934074) Norm(-0.353547, 0.756586, 0.550075) UV(0.491477, 0.253405)
|
||||||
|
V 110: Pos(-2.162589, 2.10659, 1.410701) Norm(-0.254359, 0.706225, 0.660717) UV(0.491477, 0.35371)
|
||||||
|
V 111: Pos(-2.162589, -1.0, 1.410701) Norm(-0.359271, -0.0, 0.933233) UV(0.26554, 0.35371)
|
||||||
|
V 112: Pos(-2.162589, -1.146237, 1.410701) Norm(-0.254359, -0.706225, 0.660717) UV(0.254904, 0.35371)
|
||||||
|
V 113: Pos(2.283504, 1.963949, 1.410701) Norm(0.342802, 0.0, 0.939408) UV(0.481103, 0.03036)
|
||||||
|
V 114: Pos(2.428398, -1.0, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.26554, 0.019848)
|
||||||
|
V 115: Pos(2.428398, 1.963949, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.481103, 0.019848)
|
||||||
|
V 116: Pos(-2.162589, 1.963949, 1.296742) Norm(0.026637, 0.402662, -0.914961) UV(0.028706, 0.353713)
|
||||||
|
V 117: Pos(-2.292608, 1.963949, 1.246102) Norm(-0.56439, 0.0, -0.825508) UV(0.028706, 0.363192)
|
||||||
|
V 118: Pos(0.060458, -1.0, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.244269, 0.191395)
|
||||||
|
V 119: Pos(0.060458, -1.146237, 2.656697) Norm(0.0, -0.90301, -0.429619) UV(0.254904, 0.191395)
|
||||||
|
V 120: Pos(0.060457, 1.963949, 2.656697) Norm(0.0, 0.578056, -0.815997) UV(0.028706, 0.191395)
|
||||||
|
V 121: Pos(-0.787029, 1.963949, 1.820116) Norm(0.353547, 0.756586, -0.550075) UV(0.028706, 0.253425)
|
||||||
|
V 122: Pos(-0.787029, 2.10659, 1.820116) Norm(0.404514, 0.663521, -0.629372) UV(0.018331, 0.253425)
|
||||||
|
V 123: Pos(0.060457, 2.10659, 2.656697) Norm(0.0, 0.90301, -0.429619) UV(0.018331, 0.191395)
|
||||||
|
V 124: Pos(0.907943, 1.963949, 1.820116) Norm(-0.353548, 0.756586, -0.550075) UV(0.028706, 0.130155)
|
||||||
|
V 125: Pos(0.907943, 2.10659, 1.820116) Norm(-0.404514, 0.663521, -0.629372) UV(0.018331, 0.130155)
|
||||||
|
V 126: Pos(0.907944, -1.146237, 1.820116) Norm(-0.404514, -0.663521, -0.629372) UV(0.752617, 0.869571)
|
||||||
|
V 127: Pos(0.907944, -1.146237, 1.934074) Norm(0.353547, -0.756586, 0.550075) UV(0.74433, 0.869571)
|
||||||
|
V 128: Pos(0.060457, 1.963949, 2.770656) Norm(-0.0, -0.0, 1.0) UV(0.481103, 0.191347)
|
||||||
|
V 129: Pos(0.907943, 1.963949, 1.934074) Norm(0.54068, 0.0, 0.841228) UV(0.481103, 0.130136)
|
||||||
|
V 130: Pos(-2.162589, -1.146237, 1.296742) Norm(0.253725, -0.70799, -0.65907) UV(0.790682, 0.646256)
|
||||||
|
V 131: Pos(-0.787028, -1.146237, 1.820116) Norm(0.404514, -0.663521, -0.629372) UV(0.752618, 0.746299)
|
||||||
|
V 132: Pos(-0.787028, -1.146237, 1.934074) Norm(-0.353547, -0.756586, 0.550075) UV(0.74433, 0.746299)
|
||||||
|
V 133: Pos(-2.162589, -1.146237, 1.410701) Norm(-0.254359, -0.706225, 0.660717) UV(0.782394, 0.646256)
|
||||||
|
V 134: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.018331, 0.363192)
|
||||||
|
V 135: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.219734, 0.363192)
|
||||||
|
V 136: Pos(0.907943, -0.902648, 1.820116) Norm(-0.353009, 0.756776, -0.550158) UV(0.219734, 0.455564)
|
||||||
|
V 137: Pos(0.907943, 1.866597, 1.820116) Norm(-0.353009, -0.756776, -0.550158) UV(0.018331, 0.455564)
|
||||||
|
V 138: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.491477, 0.363191)
|
||||||
|
V 139: Pos(-2.292608, 1.963949, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.481103, 0.363191)
|
||||||
|
V 140: Pos(0.060458, -1.146237, 2.656697) Norm(0.0, -0.90301, -0.429619) UV(0.691774, 0.807935)
|
||||||
|
V 141: Pos(0.060458, -1.146237, 2.770656) Norm(0.0, -0.578056, 0.815997) UV(0.683486, 0.807935)
|
||||||
|
V 142: Pos(0.060458, -0.902648, 2.656697) Norm(-0.0, 0.578056, -0.815997) UV(0.219734, 0.516804)
|
||||||
|
V 143: Pos(0.060457, 1.866597, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.018331, 0.516804)
|
||||||
|
V 144: Pos(-0.787029, -0.902648, 1.820116) Norm(0.353009, 0.756776, -0.550158) UV(0.219734, 0.578834)
|
||||||
|
V 145: Pos(-0.787029, 1.866597, 1.820116) Norm(0.353009, -0.756776, -0.550158) UV(0.018331, 0.578834)
|
||||||
|
V 146: Pos(-2.060281, 1.866597, 1.337887) Norm(0.65901, -0.598824, -0.4551) UV(0.018331, 0.671662)
|
||||||
|
V 147: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.219734, 0.671662)
|
||||||
|
V 148: Pos(2.283504, 2.10659, 1.296742) Norm(-0.243443, 0.704043, -0.667127) UV(0.90156, 0.647338)
|
||||||
|
V 149: Pos(0.907943, 2.10659, 1.820116) Norm(-0.404514, 0.663521, -0.629372) UV(0.863496, 0.74738)
|
||||||
|
V 150: Pos(0.907943, 2.10659, 1.934074) Norm(0.353547, 0.756586, 0.550075) UV(0.855208, 0.74738)
|
||||||
|
V 151: Pos(2.283504, 2.10659, 1.410701) Norm(0.241334, 0.710196, 0.661346) UV(0.893272, 0.647338)
|
||||||
|
V 152: Pos(-0.787029, 2.10659, 1.820116) Norm(0.404514, 0.663521, -0.629372) UV(0.863496, 0.870653)
|
||||||
|
V 153: Pos(-2.162589, 2.10659, 1.296742) Norm(0.253725, 0.70799, -0.65907) UV(0.90156, 0.970695)
|
||||||
|
V 154: Pos(-2.162589, 2.10659, 1.410701) Norm(-0.254359, 0.706225, 0.660717) UV(0.893272, 0.970695)
|
||||||
|
V 155: Pos(-0.787029, 2.10659, 1.934074) Norm(-0.353547, 0.756586, 0.550075) UV(0.855208, 0.870653)
|
||||||
|
V 156: Pos(0.060457, 2.10659, 2.656697) Norm(0.0, 0.90301, -0.429619) UV(0.802653, 0.809017)
|
||||||
|
V 157: Pos(0.060457, 2.10659, 2.770656) Norm(0.0, 0.578056, 0.815997) UV(0.794365, 0.809017)
|
||||||
|
V 158: Pos(-2.162589, 2.10659, 1.296742) Norm(0.253725, 0.70799, -0.65907) UV(0.018331, 0.353713)
|
||||||
|
V 159: Pos(0.907943, 2.10659, 1.934074) Norm(0.353547, 0.756586, 0.550075) UV(0.491477, 0.130136)
|
||||||
|
V 160: Pos(0.060457, 2.10659, 2.770656) Norm(0.0, 0.578056, 0.815997) UV(0.491477, 0.191347)
|
||||||
|
V 161: Pos(2.283504, 1.963949, 1.296742) Norm(-0.005023, 0.39988, -0.916554) UV(0.028706, 0.030362)
|
||||||
|
V 162: Pos(2.283504, 2.10659, 1.296742) Norm(-0.243443, 0.704043, -0.667127) UV(0.018331, 0.030362)
|
||||||
|
V 163: Pos(2.283504, 2.10659, 1.410701) Norm(0.241334, 0.710196, 0.661346) UV(0.491477, 0.03036)
|
||||||
|
V 164: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.896955, 0.6368)
|
||||||
|
V 165: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.905243, 0.6368)
|
||||||
|
V 166: Pos(2.428398, -1.0, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.23631, 0.373828)
|
||||||
|
V 167: Pos(2.428398, -1.0, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.228022, 0.373828)
|
||||||
|
V 168: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.228022, 0.363192)
|
||||||
|
V 169: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.23631, 0.363192)
|
||||||
|
V 170: Pos(2.428398, 1.963949, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.23631, 0.589391)
|
||||||
|
V 171: Pos(2.428398, 1.963949, 1.36006) Norm(0.815454, 0.0, 0.578822) UV(0.228022, 0.589391)
|
||||||
|
V 172: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.23631, 0.599765)
|
||||||
|
V 173: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.228022, 0.599765)
|
||||||
|
V 174: Pos(2.428398, -1.0, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.244269, 0.019848)
|
||||||
|
V 175: Pos(2.428398, -1.146237, 1.246102) Norm(0.478888, -0.561687, -0.674666) UV(0.254904, 0.019848)
|
||||||
|
V 176: Pos(2.428398, 2.10659, 1.246102) Norm(0.478889, 0.561687, -0.674666) UV(0.018331, 0.019848)
|
||||||
|
V 177: Pos(2.428398, 1.963949, 1.246102) Norm(0.578822, 0.0, -0.815454) UV(0.028706, 0.019848)
|
||||||
|
V 178: Pos(2.428398, 2.10659, 1.36006) Norm(0.654111, 0.597131, 0.464299) UV(0.491477, 0.019848)
|
||||||
|
V 179: Pos(2.428398, -1.146237, 1.36006) Norm(0.654111, -0.597131, 0.464299) UV(0.254904, 0.019848)
|
||||||
|
V 180: Pos(-2.292608, 1.963949, 1.246102) Norm(-0.56439, 0.0, -0.825508) UV(0.228022, 0.373567)
|
||||||
|
V 181: Pos(-2.292608, -1.0, 1.246102) Norm(-0.564391, 0.0, -0.825508) UV(0.228022, 0.58913)
|
||||||
|
V 182: Pos(-2.292608, -1.0, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.219734, 0.58913)
|
||||||
|
V 183: Pos(-2.292608, 1.963949, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.219734, 0.373567)
|
||||||
|
V 184: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.219734, 0.363192)
|
||||||
|
V 185: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.228022, 0.363192)
|
||||||
|
V 186: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.228022, 0.599765)
|
||||||
|
V 187: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.219734, 0.599765)
|
||||||
|
V 188: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.905243, 0.980152)
|
||||||
|
V 189: Pos(-2.292608, 2.10659, 1.36006) Norm(-0.66075, 0.599445, 0.451747) UV(0.896955, 0.980152)
|
||||||
|
V 190: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.786077, 0.6368)
|
||||||
|
V 191: Pos(-2.292608, -1.146237, 1.246102) Norm(-0.467487, -0.560279, -0.683772) UV(0.794365, 0.6368)
|
||||||
|
V 192: Pos(-2.292608, 2.10659, 1.246102) Norm(-0.467487, 0.560279, -0.683772) UV(0.018331, 0.363192)
|
||||||
|
V 193: Pos(-2.292608, -1.0, 1.36006) Norm(-0.825508, 0.0, 0.56439) UV(0.26554, 0.363191)
|
||||||
|
V 194: Pos(-2.292608, -1.146237, 1.36006) Norm(-0.66075, -0.599445, 0.451747) UV(0.254904, 0.363191)
|
||||||
|
V 195: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.77958, 0.6368)
|
||||||
|
V 196: Pos(0.907943, -0.902648, 1.820116) Norm(-0.353009, 0.756776, -0.550158) UV(0.814652, 0.544199)
|
||||||
|
V 197: Pos(2.181196, 1.866597, 1.337887) Norm(-0.65901, -0.598824, -0.4551) UV(0.254904, 0.67166)
|
||||||
|
V 198: Pos(2.181196, -0.902648, 1.337887) Norm(-0.65901, 0.598824, -0.4551) UV(0.254904, 0.873063)
|
||||||
|
V 199: Pos(2.181196, 1.866597, 0.016616) Norm(-0.57735, -0.57735, 0.57735) UV(0.683486, 0.019848)
|
||||||
|
V 200: Pos(0.907943, 1.866597, 0.016616) Norm(-0.408248, -0.408247, 0.816497) UV(0.683486, 0.11245)
|
||||||
|
V 201: Pos(0.060458, 1.963949, 0.753136) Norm(0.0, 0.707107, -0.707107) UV(0.545043, 0.181527)
|
||||||
|
V 202: Pos(0.060457, 1.963949, 2.656697) Norm(0.0, 0.578056, -0.815997) UV(0.683486, 0.181527)
|
||||||
|
V 203: Pos(0.060458, -1.0, 0.753136) Norm(0.0, -0.707107, -0.707107) UV(0.545043, 0.504884)
|
||||||
|
V 204: Pos(0.060458, -1.0, 2.656697) Norm(0.0, -0.578056, -0.815997) UV(0.683486, 0.504884)
|
||||||
|
V 205: Pos(0.907944, 1.963949, 0.016616) Norm(-0.707106, 0.707108, -0.0) UV(0.491477, 0.243163)
|
||||||
|
V 206: Pos(2.283504, 1.963949, 0.016616) Norm(0.707107, 0.707107, 0.0) UV(0.491477, 0.343206)
|
||||||
|
V 207: Pos(-0.787029, -1.0, 0.016616) Norm(0.707107, -0.707107, -0.0) UV(0.491477, 0.566521)
|
||||||
|
V 208: Pos(-2.162589, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.491477, 0.666563)
|
||||||
|
V 209: Pos(2.283504, -1.0, 0.016616) Norm(0.707107, -0.707107, 0.0) UV(0.491477, 0.343206)
|
||||||
|
V 210: Pos(0.907943, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.491477, 0.443248)
|
||||||
|
V 211: Pos(-2.162589, 1.963949, 0.016616) Norm(-0.707107, 0.707107, 0.0) UV(0.491477, 0.019848)
|
||||||
|
V 212: Pos(-0.787028, 1.963949, 0.016616) Norm(0.707107, 0.707106, 0.0) UV(0.491477, 0.119891)
|
||||||
|
V 213: Pos(2.283504, 1.963949, 0.016616) Norm(0.707107, 0.707107, 0.0) UV(0.677681, 0.882126)
|
||||||
|
V 214: Pos(2.283504, -1.0, 0.016616) Norm(0.707107, -0.707107, 0.0) UV(0.677681, 0.666563)
|
||||||
|
V 215: Pos(-2.162589, -1.0, 0.016616) Norm(-0.707107, -0.707107, 0.0) UV(0.584579, 0.882126)
|
||||||
|
V 216: Pos(-2.162589, 1.963949, 0.016616) Norm(-0.707107, 0.707107, 0.0) UV(0.584579, 0.666563)
|
||||||
|
V 217: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.114425, 0.873065)
|
||||||
|
V 218: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.114426, 0.671662)
|
||||||
|
V 219: Pos(-2.060281, -0.902648, 1.337887) Norm(0.65901, 0.598824, -0.4551) UV(0.77958, 0.328324)
|
||||||
|
V 220: Pos(-0.787029, 1.866597, 0.016616) Norm(0.408248, -0.408249, 0.816496) UV(0.683486, 0.235723)
|
||||||
|
V 221: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.683486, 0.328324)
|
||||||
|
V 222: Pos(-0.787028, -1.0, 0.753136) Norm(0.301511, -0.904534, -0.301512) UV(0.243391, 0.486463)
|
||||||
|
V 223: Pos(-0.787029, -0.902648, 0.753136) Norm(0.301511, 0.904534, -0.301511) UV(0.23631, 0.486463)
|
||||||
|
V 224: Pos(-2.060281, -0.902648, 0.016616) Norm(0.57735, 0.57735, 0.57735) UV(0.254904, 0.67166)
|
||||||
|
V 225: Pos(-2.060281, 1.866597, 0.016616) Norm(0.57735, -0.57735, 0.57735) UV(0.456307, 0.67166)
|
||||||
|
|
||||||
|
===Triangles (Indices): 194
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
|
Tri: 20 10 9
|
||||||
|
Tri: 20 9 21
|
||||||
|
Tri: 22 23 24
|
||||||
|
Tri: 22 24 25
|
||||||
|
Tri: 26 27 28
|
||||||
|
Tri: 26 28 29
|
||||||
|
Tri: 30 31 32
|
||||||
|
Tri: 30 32 33
|
||||||
|
Tri: 34 35 36
|
||||||
|
Tri: 34 36 37
|
||||||
|
Tri: 38 39 40
|
||||||
|
Tri: 38 40 41
|
||||||
|
Tri: 42 43 44
|
||||||
|
Tri: 42 44 45
|
||||||
|
Tri: 46 47 48
|
||||||
|
Tri: 46 48 49
|
||||||
|
Tri: 50 51 52
|
||||||
|
Tri: 50 52 53
|
||||||
|
Tri: 29 28 54
|
||||||
|
Tri: 29 54 55
|
||||||
|
Tri: 56 57 58
|
||||||
|
Tri: 56 58 59
|
||||||
|
Tri: 60 61 62
|
||||||
|
Tri: 60 62 63
|
||||||
|
Tri: 64 65 66
|
||||||
|
Tri: 64 66 67
|
||||||
|
Tri: 13 12 68
|
||||||
|
Tri: 13 68 69
|
||||||
|
Tri: 69 68 37
|
||||||
|
Tri: 69 37 36
|
||||||
|
Tri: 70 71 72
|
||||||
|
Tri: 70 72 73
|
||||||
|
Tri: 74 75 76
|
||||||
|
Tri: 74 76 77
|
||||||
|
Tri: 78 79 80
|
||||||
|
Tri: 78 80 81
|
||||||
|
Tri: 82 83 84
|
||||||
|
Tri: 82 84 85
|
||||||
|
Tri: 86 87 88
|
||||||
|
Tri: 86 88 89
|
||||||
|
Tri: 90 91 16
|
||||||
|
Tri: 90 16 92
|
||||||
|
Tri: 93 94 95
|
||||||
|
Tri: 93 95 96
|
||||||
|
Tri: 97 98 99
|
||||||
|
Tri: 97 99 100
|
||||||
|
Tri: 78 81 101
|
||||||
|
Tri: 78 101 102
|
||||||
|
Tri: 83 103 104
|
||||||
|
Tri: 83 104 84
|
||||||
|
Tri: 103 105 106
|
||||||
|
Tri: 103 106 104
|
||||||
|
Tri: 107 108 109
|
||||||
|
Tri: 107 109 110
|
||||||
|
Tri: 105 111 112
|
||||||
|
Tri: 105 112 106
|
||||||
|
Tri: 113 82 114
|
||||||
|
Tri: 113 114 115
|
||||||
|
Tri: 116 78 102
|
||||||
|
Tri: 116 102 117
|
||||||
|
Tri: 118 97 100
|
||||||
|
Tri: 118 100 119
|
||||||
|
Tri: 120 121 122
|
||||||
|
Tri: 120 122 123
|
||||||
|
Tri: 124 120 123
|
||||||
|
Tri: 124 123 125
|
||||||
|
Tri: 126 75 74
|
||||||
|
Tri: 126 74 127
|
||||||
|
Tri: 103 128 108
|
||||||
|
Tri: 103 108 105
|
||||||
|
Tri: 128 103 83
|
||||||
|
Tri: 128 83 129
|
||||||
|
Tri: 130 131 132
|
||||||
|
Tri: 130 132 133
|
||||||
|
Tri: 111 105 108
|
||||||
|
Tri: 111 108 107
|
||||||
|
Tri: 134 135 136
|
||||||
|
Tri: 134 136 137
|
||||||
|
Tri: 79 118 119
|
||||||
|
Tri: 79 119 80
|
||||||
|
Tri: 107 110 138
|
||||||
|
Tri: 107 138 139
|
||||||
|
Tri: 140 126 127
|
||||||
|
Tri: 140 127 141
|
||||||
|
Tri: 131 140 141
|
||||||
|
Tri: 131 141 132
|
||||||
|
Tri: 142 143 137
|
||||||
|
Tri: 142 137 136
|
||||||
|
Tri: 143 142 144
|
||||||
|
Tri: 143 144 145
|
||||||
|
Tri: 146 145 144
|
||||||
|
Tri: 146 144 147
|
||||||
|
Tri: 113 129 83
|
||||||
|
Tri: 113 83 82
|
||||||
|
Tri: 148 149 150
|
||||||
|
Tri: 148 150 151
|
||||||
|
Tri: 152 153 154
|
||||||
|
Tri: 152 154 155
|
||||||
|
Tri: 156 152 155
|
||||||
|
Tri: 156 155 157
|
||||||
|
Tri: 149 156 157
|
||||||
|
Tri: 149 157 150
|
||||||
|
Tri: 121 116 158
|
||||||
|
Tri: 121 158 122
|
||||||
|
Tri: 128 129 159
|
||||||
|
Tri: 128 159 160
|
||||||
|
Tri: 161 124 125
|
||||||
|
Tri: 161 125 162
|
||||||
|
Tri: 129 113 163
|
||||||
|
Tri: 129 163 159
|
||||||
|
Tri: 148 151 164
|
||||||
|
Tri: 148 164 165
|
||||||
|
Tri: 108 128 160
|
||||||
|
Tri: 108 160 109
|
||||||
|
Tri: 166 167 168
|
||||||
|
Tri: 166 168 169
|
||||||
|
Tri: 166 170 171
|
||||||
|
Tri: 166 171 167
|
||||||
|
Tri: 171 170 172
|
||||||
|
Tri: 171 172 173
|
||||||
|
Tri: 99 98 174
|
||||||
|
Tri: 99 174 175
|
||||||
|
Tri: 161 162 176
|
||||||
|
Tri: 161 176 177
|
||||||
|
Tri: 98 161 177
|
||||||
|
Tri: 98 177 174
|
||||||
|
Tri: 163 113 115
|
||||||
|
Tri: 163 115 178
|
||||||
|
Tri: 82 85 179
|
||||||
|
Tri: 82 179 114
|
||||||
|
Tri: 180 181 182
|
||||||
|
Tri: 180 182 183
|
||||||
|
Tri: 180 183 184
|
||||||
|
Tri: 180 184 185
|
||||||
|
Tri: 182 181 186
|
||||||
|
Tri: 182 186 187
|
||||||
|
Tri: 154 153 188
|
||||||
|
Tri: 154 188 189
|
||||||
|
Tri: 130 133 190
|
||||||
|
Tri: 130 190 191
|
||||||
|
Tri: 158 116 117
|
||||||
|
Tri: 158 117 192
|
||||||
|
Tri: 112 111 193
|
||||||
|
Tri: 112 193 194
|
||||||
|
Tri: 111 107 139
|
||||||
|
Tri: 111 139 193
|
||||||
|
Tri: 195 42 45
|
||||||
|
Tri: 195 45 196
|
||||||
|
Tri: 197 38 41
|
||||||
|
Tri: 197 41 198
|
||||||
|
Tri: 199 34 37
|
||||||
|
Tri: 199 37 200
|
||||||
|
Tri: 61 60 201
|
||||||
|
Tri: 61 201 202
|
||||||
|
Tri: 57 56 203
|
||||||
|
Tri: 57 203 204
|
||||||
|
Tri: 202 201 49
|
||||||
|
Tri: 202 49 48
|
||||||
|
Tri: 204 203 53
|
||||||
|
Tri: 204 53 52
|
||||||
|
Tri: 205 60 63
|
||||||
|
Tri: 205 63 206
|
||||||
|
Tri: 207 56 59
|
||||||
|
Tri: 207 59 208
|
||||||
|
Tri: 209 50 53
|
||||||
|
Tri: 209 53 210
|
||||||
|
Tri: 211 46 49
|
||||||
|
Tri: 211 49 212
|
||||||
|
Tri: 213 4 7
|
||||||
|
Tri: 213 7 214
|
||||||
|
Tri: 215 0 3
|
||||||
|
Tri: 215 3 216
|
||||||
|
Tri: 217 30 33
|
||||||
|
Tri: 217 33 218
|
||||||
|
Tri: 92 16 19
|
||||||
|
Tri: 92 19 219
|
||||||
|
Tri: 220 12 15
|
||||||
|
Tri: 220 15 221
|
||||||
|
Tri: 45 91 90
|
||||||
|
Tri: 45 90 196
|
||||||
|
Tri: 222 223 95
|
||||||
|
Tri: 222 95 94
|
||||||
|
Tri: 224 8 11
|
||||||
|
Tri: 224 11 225
|
||||||
587
resources/barn/lamp.txt
Normal file
587
resources/barn/lamp.txt
Normal file
@ -0,0 +1,587 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 308
|
||||||
|
V 0: Pos(1.869281, 0.711913, 0.20808) Norm(-0.761914, -0.471586, 0.443953) UV(0.940254, 0.275626)
|
||||||
|
V 1: Pos(1.909114, 0.661025, 0.20808) Norm(-0.635819, -0.635639, 0.437832) UV(0.941821, 0.050079)
|
||||||
|
V 2: Pos(1.911422, 0.662832, 0.209918) Norm(-0.411643, 0.156254, 0.89785) UV(0.952296, 0.050152)
|
||||||
|
V 3: Pos(1.87159, 0.71372, 0.209918) Norm(0.05145, -0.345966, 0.936835) UV(0.950729, 0.275699)
|
||||||
|
V 4: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.963526, 0.05023)
|
||||||
|
V 5: Pos(1.874161, 0.715733, 0.208771) Norm(0.765568, 0.102584, 0.635124) UV(0.961959, 0.275777)
|
||||||
|
V 6: Pos(1.874161, 0.715733, 0.208771) Norm(0.765568, 0.102584, 0.635124) UV(0.570192, 0.276899)
|
||||||
|
V 7: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.570192, 0.054444)
|
||||||
|
V 8: Pos(1.914891, 0.665547, 0.205504) Norm(0.67715, 0.693757, -0.245293) UV(0.582143, 0.054731)
|
||||||
|
V 9: Pos(1.875058, 0.716435, 0.205504) Norm(0.834547, 0.507059, -0.21546) UV(0.582143, 0.277186)
|
||||||
|
V 10: Pos(1.913438, 0.66441, 0.202576) Norm(0.516638, 0.080688, -0.852393) UV(0.590955, 0.053367)
|
||||||
|
V 11: Pos(1.873606, 0.715298, 0.202576) Norm(0.21114, 0.469699, -0.857206) UV(0.590955, 0.275822)
|
||||||
|
V 12: Pos(1.873606, 0.715298, 0.202576) Norm(0.21114, 0.469699, -0.857206) UV(0.534956, 0.846336)
|
||||||
|
V 13: Pos(1.913438, 0.66441, 0.202576) Norm(0.516638, 0.080688, -0.852393) UV(0.534956, 0.620784)
|
||||||
|
V 14: Pos(1.91073, 0.662291, 0.202192) Norm(-0.030373, -0.478808, -0.877394) UV(0.546978, 0.620784)
|
||||||
|
V 15: Pos(1.870898, 0.713179, 0.202192) Norm(-0.465715, 0.071095, -0.882074) UV(0.546978, 0.846336)
|
||||||
|
V 16: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.574598, 0.300921)
|
||||||
|
V 17: Pos(1.874394, 0.719846, 0.208011) Norm(0.875251, 0.274505, -0.398224) UV(0.574598, 0.28901)
|
||||||
|
V 18: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.555378, 0.620784)
|
||||||
|
V 19: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.555378, 0.846336)
|
||||||
|
V 20: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.064087, 0.044995)
|
||||||
|
V 21: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.288741, 0.035517)
|
||||||
|
V 22: Pos(1.909114, 0.661025, 0.20808) Norm(-0.635819, -0.635639, 0.437832) UV(0.289208, 0.047573)
|
||||||
|
V 23: Pos(1.869281, 0.711913, 0.20808) Norm(-0.761914, -0.471586, 0.443953) UV(0.064555, 0.057052)
|
||||||
|
V 24: Pos(1.869128, 0.722859, 0.209453) Norm(-0.579803, 0.709466, -0.400608) UV(0.530635, 0.876748)
|
||||||
|
V 25: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.522723, 0.869218)
|
||||||
|
V 26: Pos(1.869128, 0.722859, 0.209453) Norm(-0.579803, 0.709466, -0.400608) UV(0.881676, 0.224478)
|
||||||
|
V 27: Pos(1.867355, 0.720493, 0.211251) Norm(-0.978626, 0.203528, 0.029447) UV(0.893616, 0.224476)
|
||||||
|
V 28: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.893569, 0.538039)
|
||||||
|
V 29: Pos(1.906832, 0.752371, 0.28547) Norm(-0.303191, 0.93752, 0.17068) UV(0.88163, 0.538041)
|
||||||
|
V 30: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.292472, 0.059404)
|
||||||
|
V 31: Pos(1.913666, 0.659267, 0.212051) Norm(-0.641122, -0.621838, 0.449755) UV(0.303777, 0.061406)
|
||||||
|
V 32: Pos(1.95137, 0.688779, 0.288069) Norm(-0.567274, -0.561274, 0.602638) UV(0.303777, 0.337972)
|
||||||
|
V 33: Pos(1.950449, 0.692017, 0.287268) Norm(-0.977416, 0.171509, 0.123465) UV(0.292472, 0.33597)
|
||||||
|
V 34: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.953797, 0.281682)
|
||||||
|
V 35: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.963526, 0.279062)
|
||||||
|
V 36: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.568141, 0.280446)
|
||||||
|
V 37: Pos(1.870898, 0.713179, 0.202192) Norm(-0.465715, 0.071095, -0.882074) UV(0.883904, 0.194467)
|
||||||
|
V 38: Pos(1.868973, 0.711672, 0.204642) Norm(-0.888391, -0.298097, -0.349142) UV(0.895647, 0.197158)
|
||||||
|
V 39: Pos(1.868277, 0.717255, 0.212051) Norm(-0.764855, -0.469795, 0.440783) UV(0.047779, 0.072207)
|
||||||
|
V 40: Pos(1.867355, 0.720493, 0.211251) Norm(-0.978626, 0.203528, 0.029447) UV(0.036474, 0.070205)
|
||||||
|
V 41: Pos(1.868277, 0.717255, 0.212051) Norm(-0.764855, -0.469795, 0.440783) UV(0.9494, 0.292533)
|
||||||
|
V 42: Pos(1.913993, 0.664845, 0.208771) Norm(0.18131, 0.807914, 0.560716) UV(0.928243, 0.043066)
|
||||||
|
V 43: Pos(1.914518, 0.66487, 0.209453) Norm(-0.305786, 0.941985, 0.138418) UV(0.928315, 0.045875)
|
||||||
|
V 44: Pos(1.917651, 0.664582, 0.208011) Norm(0.44499, 0.797325, -0.407746) UV(0.919448, 0.045841)
|
||||||
|
V 45: Pos(1.914891, 0.665547, 0.205504) Norm(0.67715, 0.693757, -0.245293) UV(0.91884, 0.035517)
|
||||||
|
V 46: Pos(1.917651, 0.664582, 0.208011) Norm(0.44499, 0.797325, -0.407746) UV(0.574598, 0.047428)
|
||||||
|
V 47: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.574598, 0.035517)
|
||||||
|
V 48: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.522723, 0.600118)
|
||||||
|
V 49: Pos(1.919311, 0.658748, 0.209453) Norm(0.559032, -0.73323, -0.387114) UV(0.530635, 0.592588)
|
||||||
|
V 50: Pos(1.91073, 0.662291, 0.202192) Norm(-0.030373, -0.478808, -0.877394) UV(0.907113, 0.412291)
|
||||||
|
V 51: Pos(1.919311, 0.658748, 0.209453) Norm(0.559032, -0.73323, -0.387114) UV(0.90461, 0.38031)
|
||||||
|
V 52: Pos(1.916588, 0.657595, 0.211251) Norm(-0.026527, -0.998769, 0.041913) UV(0.916575, 0.380425)
|
||||||
|
V 53: Pos(1.908806, 0.660784, 0.204642) Norm(-0.491082, -0.800738, -0.343011) UV(0.91884, 0.409524)
|
||||||
|
V 54: Pos(1.916588, 0.657595, 0.211251) Norm(-0.026527, -0.998769, 0.041913) UV(0.314148, 0.058489)
|
||||||
|
V 55: Pos(1.913666, 0.659267, 0.212051) Norm(-0.641122, -0.621838, 0.449755) UV(0.951185, 0.035517)
|
||||||
|
V 56: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.955431, 0.046428)
|
||||||
|
V 57: Pos(1.911422, 0.662832, 0.209918) Norm(-0.411643, 0.156254, 0.89785) UV(0.939991, 0.040403)
|
||||||
|
V 58: Pos(1.912745, 0.662505, 0.211251) Norm(-0.768111, 0.333689, 0.546496) UV(0.940254, 0.045895)
|
||||||
|
V 59: Pos(1.950787, 0.694725, 0.293158) Norm(-0.542765, -0.570773, 0.616137) UV(0.286249, 0.35723)
|
||||||
|
V 60: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.285781, 0.345173)
|
||||||
|
V 61: Pos(1.950449, 0.692017, 0.287268) Norm(-0.977416, 0.171509, 0.123465) UV(0.939646, 0.359457)
|
||||||
|
V 62: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.939135, 0.369584)
|
||||||
|
V 63: Pos(1.952403, 0.695991, 0.287271) Norm(-0.504568, 0.268536, -0.820548) UV(0.927398, 0.366872)
|
||||||
|
V 64: Pos(1.952222, 0.694382, 0.28547) Norm(-0.556023, 0.743669, -0.371209) UV(0.927707, 0.359437)
|
||||||
|
V 65: Pos(1.872261, 0.722571, 0.208011) Norm(0.161414, 0.736744, -0.656623) UV(0.87281, 0.22446)
|
||||||
|
V 66: Pos(1.909964, 0.752083, 0.284029) Norm(0.355973, 0.897102, -0.261709) UV(0.872763, 0.538023)
|
||||||
|
V 67: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.91884, 0.359403)
|
||||||
|
V 68: Pos(1.909964, 0.752083, 0.284029) Norm(0.355973, 0.897102, -0.261709) UV(0.345823, 0.336334)
|
||||||
|
V 69: Pos(1.912097, 0.749358, 0.284029) Norm(0.796741, 0.167077, -0.580765) UV(0.345823, 0.324423)
|
||||||
|
V 70: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.345823, 0.082841)
|
||||||
|
V 71: Pos(1.957487, 0.69137, 0.284029) Norm(0.956337, 0.1301, -0.261713) UV(0.345823, 0.070929)
|
||||||
|
V 72: Pos(1.873921, 0.716736, 0.209453) Norm(0.873273, -0.419594, 0.247661) UV(0.948579, 0.920279)
|
||||||
|
V 73: Pos(1.874394, 0.719846, 0.208011) Norm(0.875251, 0.274505, -0.398224) UV(0.939834, 0.920881)
|
||||||
|
V 74: Pos(1.912097, 0.749358, 0.284029) Norm(0.796741, 0.167077, -0.580765) UV(0.940802, 0.608213)
|
||||||
|
V 75: Pos(1.911624, 0.746248, 0.28547) Norm(0.588348, -0.71835, -0.37124) UV(0.949547, 0.607611)
|
||||||
|
V 76: Pos(1.919784, 0.661858, 0.208011) Norm(0.764109, -0.017582, -0.644848) UV(0.895867, 0.380945)
|
||||||
|
V 77: Pos(1.957487, 0.69137, 0.284029) Norm(0.956337, 0.1301, -0.261713) UV(0.895647, 0.068276)
|
||||||
|
V 78: Pos(1.957014, 0.68826, 0.28547) Norm(0.83726, -0.519484, 0.170681) UV(0.90439, 0.067641)
|
||||||
|
V 79: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.960544, 0.92044)
|
||||||
|
V 80: Pos(1.908902, 0.745095, 0.287268) Norm(-0.068272, -0.989999, 0.12345) UV(0.961512, 0.607772)
|
||||||
|
V 81: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.916355, 0.067756)
|
||||||
|
V 82: Pos(1.871199, 0.715583, 0.211251) Norm(0.121887, -0.767984, 0.628763) UV(0.058149, 0.069291)
|
||||||
|
V 83: Pos(1.908902, 0.745095, 0.287268) Norm(-0.068272, -0.989999, 0.12345) UV(0.058149, 0.345857)
|
||||||
|
V 84: Pos(1.90598, 0.746767, 0.288069) Norm(-0.681101, -0.415856, 0.602632) UV(0.047779, 0.348773)
|
||||||
|
V 85: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.314148, 0.335055)
|
||||||
|
V 86: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.036474, 0.346771)
|
||||||
|
V 87: Pos(1.953095, 0.696532, 0.294996) Norm(0.149457, -0.309654, 0.93903) UV(0.298425, 0.453344)
|
||||||
|
V 88: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.309097, 0.456842)
|
||||||
|
V 89: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.303295, 0.474544)
|
||||||
|
V 90: Pos(1.949806, 0.700735, 0.294996) Norm(-0.451341, 0.435647, 0.778783) UV(0.292623, 0.471046)
|
||||||
|
V 91: Pos(1.913921, 0.74658, 0.294996) Norm(-0.264714, 0.219449, 0.939025) UV(0.298479, 0.388008)
|
||||||
|
V 92: Pos(1.911613, 0.744773, 0.293158) Norm(-0.684428, -0.389788, 0.616136) UV(0.288518, 0.391248)
|
||||||
|
V 93: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.282669, 0.373265)
|
||||||
|
V 94: Pos(1.917261, 0.742313, 0.294996) Norm(0.314498, -0.542755, 0.778787) UV(0.292631, 0.370025)
|
||||||
|
V 95: Pos(1.954292, 0.687107, 0.287268) Norm(0.22735, -0.804542, 0.548657) UV(0.290165, 0.420667)
|
||||||
|
V 96: Pos(1.950787, 0.694725, 0.293158) Norm(-0.542765, -0.570773, 0.616137) UV(0.288471, 0.450082)
|
||||||
|
V 97: Pos(1.95137, 0.688779, 0.288069) Norm(-0.567274, -0.561274, 0.602638) UV(0.282669, 0.429661)
|
||||||
|
V 98: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.90711, 0.035517)
|
||||||
|
V 99: Pos(1.953095, 0.696532, 0.294996) Norm(0.149457, -0.309654, 0.93903) UV(0.91884, 0.03811)
|
||||||
|
V 100: Pos(1.956563, 0.699247, 0.290583) Norm(0.921035, 0.386812, -0.045518) UV(0.326099, 0.097295)
|
||||||
|
V 101: Pos(1.955666, 0.698545, 0.29385) Norm(0.73947, 0.113211, 0.663602) UV(0.314148, 0.097008)
|
||||||
|
V 102: Pos(1.957014, 0.68826, 0.28547) Norm(0.83726, -0.519484, 0.170681) UV(0.339366, 0.062365)
|
||||||
|
V 103: Pos(1.955111, 0.69811, 0.287655) Norm(0.424828, 0.496372, -0.757057) UV(0.334911, 0.095931)
|
||||||
|
V 104: Pos(1.952222, 0.694382, 0.28547) Norm(-0.556023, 0.743669, -0.371209) UV(0.298744, 0.536259)
|
||||||
|
V 105: Pos(1.952403, 0.695991, 0.287271) Norm(-0.504568, 0.268536, -0.820548) UV(0.294691, 0.540289)
|
||||||
|
V 106: Pos(1.955111, 0.69811, 0.287655) Norm(0.424828, 0.496372, -0.757057) UV(0.282669, 0.540289)
|
||||||
|
V 107: Pos(1.955354, 0.694095, 0.284029) Norm(0.353521, 0.733298, -0.580772) UV(0.290831, 0.528729)
|
||||||
|
V 108: Pos(1.913229, 0.746038, 0.287271) Norm(0.13947, -0.554268, -0.82057) UV(0.949217, 0.599902)
|
||||||
|
V 109: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.960954, 0.59718)
|
||||||
|
V 110: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.06484, 0.354495)
|
||||||
|
V 111: Pos(1.911613, 0.744773, 0.293158) Norm(-0.684428, -0.389788, 0.616136) UV(0.065307, 0.366552)
|
||||||
|
V 112: Pos(1.905059, 0.750005, 0.287268) Norm(-0.726396, 0.413925, 0.548648) UV(0.290144, 0.420667)
|
||||||
|
V 113: Pos(1.90598, 0.746767, 0.288069) Norm(-0.681101, -0.415856, 0.602632) UV(0.282669, 0.411656)
|
||||||
|
V 114: Pos(1.913921, 0.74658, 0.294996) Norm(-0.264714, 0.219449, 0.939025) UV(0.895647, 0.569857)
|
||||||
|
V 115: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.883904, 0.572541)
|
||||||
|
V 116: Pos(1.906832, 0.752371, 0.28547) Norm(-0.303191, 0.93752, 0.17068) UV(0.339366, 0.342623)
|
||||||
|
V 117: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.314148, 0.315787)
|
||||||
|
V 118: Pos(1.917389, 0.749294, 0.290583) Norm(0.596697, 0.801175, -0.04552) UV(0.326099, 0.316075)
|
||||||
|
V 119: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.33491, 0.314711)
|
||||||
|
V 120: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.939834, 0.592427)
|
||||||
|
V 121: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.282669, 0.494161)
|
||||||
|
V 122: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.282669, 0.482089)
|
||||||
|
V 123: Pos(1.949806, 0.700735, 0.294996) Norm(-0.451341, 0.435647, 0.778783) UV(0.29209, 0.474544)
|
||||||
|
V 124: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.303839, 0.477207)
|
||||||
|
V 125: Pos(1.953274, 0.70345, 0.290583) Norm(0.23019, 0.969106, -0.088577) UV(0.309067, 0.488073)
|
||||||
|
V 126: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.303839, 0.498959)
|
||||||
|
V 127: Pos(1.949113, 0.700194, 0.287271) Norm(-0.587358, 0.329173, -0.739362) UV(0.29209, 0.501669)
|
||||||
|
V 128: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.334911, 0.114304)
|
||||||
|
V 129: Pos(1.953274, 0.70345, 0.290583) Norm(0.23019, 0.969106, -0.088577) UV(0.326099, 0.115668)
|
||||||
|
V 130: Pos(1.950479, 0.694484, 0.28972) Norm(-0.94827, -0.260746, -0.181095) UV(0.303091, 0.540289)
|
||||||
|
V 131: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.303091, 0.558917)
|
||||||
|
V 132: Pos(1.949113, 0.700194, 0.287271) Norm(-0.587358, 0.329173, -0.739362) UV(0.294691, 0.558917)
|
||||||
|
V 133: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.282669, 0.467784)
|
||||||
|
V 134: Pos(1.952377, 0.702748, 0.29385) Norm(0.053881, 0.831106, 0.553499) UV(0.314148, 0.11538)
|
||||||
|
V 135: Pos(1.951822, 0.702313, 0.287655) Norm(-0.055188, 0.74573, -0.663958) UV(0.282669, 0.558917)
|
||||||
|
V 136: Pos(1.947497, 0.698928, 0.293158) Norm(-0.905044, 0.080519, 0.417626) UV(0.267695, 0.358013)
|
||||||
|
V 137: Pos(1.947189, 0.698687, 0.28972) Norm(-0.965573, 0.033132, -0.258014) UV(0.267227, 0.345956)
|
||||||
|
V 138: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.309023, 0.515086)
|
||||||
|
V 139: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.303804, 0.525971)
|
||||||
|
V 140: Pos(1.916569, 0.741772, 0.287271) Norm(0.178483, -0.649214, -0.739368) UV(0.292075, 0.528729)
|
||||||
|
V 141: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.282669, 0.521283)
|
||||||
|
V 142: Pos(1.920729, 0.745028, 0.290583) Norm(0.996025, -0.009297, -0.088583) UV(0.282669, 0.50924)
|
||||||
|
V 143: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.292075, 0.501669)
|
||||||
|
V 144: Pos(1.917261, 0.742313, 0.294996) Norm(0.314498, -0.542755, 0.778787) UV(0.303804, 0.504271)
|
||||||
|
V 145: Pos(1.911304, 0.744532, 0.28972) Norm(-0.480863, -0.857888, -0.181104) UV(0.301579, 0.558917)
|
||||||
|
V 146: Pos(1.913229, 0.746038, 0.287271) Norm(0.13947, -0.554268, -0.82057) UV(0.301579, 0.567317)
|
||||||
|
V 147: Pos(1.916569, 0.741772, 0.287271) Norm(0.178483, -0.649214, -0.739368) UV(0.282669, 0.567317)
|
||||||
|
V 148: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.282669, 0.558917)
|
||||||
|
V 149: Pos(1.920729, 0.745028, 0.290583) Norm(0.996025, -0.009297, -0.088583) UV(0.326099, 0.297425)
|
||||||
|
V 150: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.33491, 0.296061)
|
||||||
|
V 151: Pos(1.916492, 0.748592, 0.29385) Norm(0.287488, 0.690641, 0.6636) UV(0.309159, 0.384535)
|
||||||
|
V 152: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.303311, 0.366552)
|
||||||
|
V 153: Pos(1.914644, 0.740265, 0.28972) Norm(-0.199734, -0.94527, -0.258013) UV(0.083674, 0.353701)
|
||||||
|
V 154: Pos(1.914952, 0.740506, 0.293159) Norm(-0.139196, -0.897892, 0.41763) UV(0.084142, 0.365757)
|
||||||
|
V 155: Pos(1.915937, 0.748158, 0.287655) Norm(0.583885, 0.293186, -0.757047) UV(0.301579, 0.579339)
|
||||||
|
V 156: Pos(1.919277, 0.743891, 0.287655) Norm(0.710654, -0.232666, -0.663956) UV(0.282669, 0.579339)
|
||||||
|
V 157: Pos(1.919832, 0.744326, 0.29385) Norm(0.819725, -0.147289, 0.553496) UV(0.314148, 0.297137)
|
||||||
|
V 158: Pos(1.913563, 0.745878, 0.214141) Norm(-0.375685, 0.479958, 0.792781) UV(0.108868, 0.838116)
|
||||||
|
V 159: Pos(1.913563, 0.745878, 0.277353) Norm(-0.375683, 0.479959, -0.792781) UV(0.108868, 0.617641)
|
||||||
|
V 160: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.178008, 0.616517)
|
||||||
|
V 161: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.178008, 0.836992)
|
||||||
|
V 162: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.751409, 0.601446)
|
||||||
|
V 163: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.751409, 0.818173)
|
||||||
|
V 164: Pos(1.954171, 0.744497, 0.277353) Norm(0.40743, 0.453321, -0.792781) UV(0.693332, 0.809153)
|
||||||
|
V 165: Pos(1.954171, 0.744497, 0.214141) Norm(0.40743, 0.453321, 0.792781) UV(0.693332, 0.592427)
|
||||||
|
V 166: Pos(1.964339, 0.725417, 0.277353) Norm(0.603497, 0.085372, -0.792782) UV(0.617875, 0.809233)
|
||||||
|
V 167: Pos(1.964339, 0.725417, 0.214141) Norm(0.603497, 0.085372, 0.792782) UV(0.617875, 0.592506)
|
||||||
|
V 168: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.560343, 0.818374)
|
||||||
|
V 169: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.560343, 0.601647)
|
||||||
|
V 170: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.751409, 0.81317)
|
||||||
|
V 171: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.751409, 0.592575)
|
||||||
|
V 172: Pos(1.942838, 0.690939, 0.277353) Norm(0.188873, -0.579505, -0.79278) UV(0.826372, 0.592427)
|
||||||
|
V 173: Pos(1.942838, 0.690939, 0.214141) Norm(0.188872, -0.579505, 0.792781) UV(0.826372, 0.813022)
|
||||||
|
V 174: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.88935, 0.593138)
|
||||||
|
V 175: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.88935, 0.813733)
|
||||||
|
V 176: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.314148, 0.813623)
|
||||||
|
V 177: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.314148, 0.593528)
|
||||||
|
V 178: Pos(1.905151, 0.706126, 0.277353) Norm(-0.537905, -0.286631, -0.79278) UV(0.387196, 0.594843)
|
||||||
|
V 179: Pos(1.905151, 0.706126, 0.214141) Norm(-0.537906, -0.286631, 0.79278) UV(0.387196, 0.814937)
|
||||||
|
V 180: Pos(1.905151, 0.706126, 0.214141) Norm(-0.537906, -0.286631, 0.79278) UV(0.668112, 0.35897)
|
||||||
|
V 181: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.602763, 0.396671)
|
||||||
|
V 182: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.590038, 0.386001)
|
||||||
|
V 183: Pos(1.90095, 0.703888, 0.214141) Norm(-0.679865, -0.362278, 0.637603) UV(0.665228, 0.342623)
|
||||||
|
V 184: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.455316, 0.592588)
|
||||||
|
V 185: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.455316, 0.812682)
|
||||||
|
V 186: Pos(1.902122, 0.727533, 0.214141) Norm(-0.596304, 0.126185, 0.79278) UV(0.036474, 0.837324)
|
||||||
|
V 187: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.036474, 0.616849)
|
||||||
|
V 188: Pos(1.902122, 0.727533, 0.297259) Norm(-0.348018, 0.073645, 0.934591) UV(0.794731, 0.230825)
|
||||||
|
V 189: Pos(1.913563, 0.745878, 0.297259) Norm(-0.219259, 0.280117, 0.934591) UV(0.820539, 0.159971)
|
||||||
|
V 190: Pos(1.910629, 0.749626, 0.293966) Norm(-0.557345, 0.712036, 0.42705) UV(0.83715, 0.160418)
|
||||||
|
V 191: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.807456, 0.241942)
|
||||||
|
V 192: Pos(1.934118, 0.752578, 0.297259) Norm(0.012094, 0.35552, 0.934591) UV(0.794731, 0.089116)
|
||||||
|
V 193: Pos(1.905151, 0.706126, 0.297259) Norm(-0.313937, -0.167288, 0.93459) UV(0.729381, 0.268526)
|
||||||
|
V 194: Pos(1.92123, 0.691674, 0.297259) Norm(-0.132961, -0.329945, 0.934589) UV(0.655069, 0.255433)
|
||||||
|
V 195: Pos(1.942838, 0.690939, 0.297259) Norm(0.110232, -0.338218, 0.934589) UV(0.606564, 0.197672)
|
||||||
|
V 196: Pos(1.959863, 0.704265, 0.297259) Norm(0.301846, -0.188236, 0.934589) UV(0.606565, 0.12227)
|
||||||
|
V 197: Pos(1.964339, 0.725417, 0.297259) Norm(0.352223, 0.049827, 0.934589) UV(0.655069, 0.064509)
|
||||||
|
V 198: Pos(1.954171, 0.744497, 0.297259) Norm(0.23779, 0.264574, 0.934589) UV(0.729381, 0.051416)
|
||||||
|
V 199: Pos(1.964339, 0.725417, 0.277353) Norm(0.603497, 0.085372, -0.792782) UV(0.218556, 0.396011)
|
||||||
|
V 200: Pos(1.954171, 0.744497, 0.277353) Norm(0.40743, 0.453321, -0.792781) UV(0.144243, 0.382909)
|
||||||
|
V 201: Pos(1.957353, 0.748037, 0.277353) Norm(0.514956, 0.572959, -0.637603) UV(0.141358, 0.366552)
|
||||||
|
V 202: Pos(1.969051, 0.726083, 0.277353) Norm(0.76277, 0.107906, -0.637604) UV(0.226861, 0.381627)
|
||||||
|
V 203: Pos(1.959863, 0.704265, 0.200236) Norm(1e-06, -0.0, -1.0) UV(0.544734, 0.42988)
|
||||||
|
V 204: Pos(1.964339, 0.725417, 0.200236) Norm(1e-06, -0.0, -1.0) UV(0.496229, 0.372082)
|
||||||
|
V 205: Pos(1.969051, 0.726083, 0.200236) Norm(0.762771, 0.107903, -0.637603) UV(0.504535, 0.357698)
|
||||||
|
V 206: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.560343, 0.4242)
|
||||||
|
V 207: Pos(1.90095, 0.703888, 0.293966) Norm(-0.798003, -0.425231, 0.427047) UV(0.732266, 0.28532)
|
||||||
|
V 208: Pos(1.954171, 0.744497, 0.214141) Norm(0.40743, 0.453321, 0.792781) UV(0.668112, 0.57608)
|
||||||
|
V 209: Pos(1.964339, 0.725417, 0.214141) Norm(0.603497, 0.085372, 0.792782) UV(0.742425, 0.562987)
|
||||||
|
V 210: Pos(1.969051, 0.726083, 0.214141) Norm(0.76277, 0.107904, 0.637604) UV(0.750731, 0.577362)
|
||||||
|
V 211: Pos(1.957353, 0.748037, 0.214141) Norm(0.514956, 0.572959, 0.637604) UV(0.665228, 0.592427)
|
||||||
|
V 212: Pos(1.954171, 0.744497, 0.200236) Norm(0.0, 0.0, -1.0) UV(0.421917, 0.35898)
|
||||||
|
V 213: Pos(1.957353, 0.748037, 0.200236) Norm(0.514957, 0.572959, -0.637603) UV(0.419032, 0.342623)
|
||||||
|
V 214: Pos(1.905151, 0.706126, 0.277353) Norm(-0.537905, -0.286631, -0.79278) UV(0.144243, 0.60016)
|
||||||
|
V 215: Pos(1.92123, 0.691674, 0.277353) Norm(-0.227816, -0.56533, -0.792781) UV(0.218556, 0.587058)
|
||||||
|
V 216: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.226861, 0.601442)
|
||||||
|
V 217: Pos(1.90095, 0.703888, 0.277353) Norm(-0.679865, -0.362279, -0.637603) UV(0.141358, 0.616517)
|
||||||
|
V 218: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.646763, 0.270255)
|
||||||
|
V 219: Pos(1.934118, 0.752578, 0.200236) Norm(1e-06, 1e-06, -1.0) UV(0.356567, 0.396705)
|
||||||
|
V 220: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.343842, 0.386029)
|
||||||
|
V 221: Pos(1.913563, 0.745878, 0.200236) Norm(2e-06, 1e-06, -1.0) UV(0.330759, 0.467606)
|
||||||
|
V 222: Pos(1.942838, 0.690939, 0.200236) Norm(0.0, -0.0, -1.0) UV(0.544734, 0.505331)
|
||||||
|
V 223: Pos(1.92123, 0.691674, 0.200236) Norm(0.0, 0.0, -1.0) UV(0.496229, 0.563129)
|
||||||
|
V 224: Pos(1.905151, 0.706126, 0.200236) Norm(-1e-06, 0.0, -1.0) UV(0.421917, 0.576231)
|
||||||
|
V 225: Pos(1.902122, 0.727533, 0.200236) Norm(-0.0, 0.0, -1.0) UV(0.356567, 0.538506)
|
||||||
|
V 226: Pos(1.92123, 0.691674, 0.214141) Norm(-0.227815, -0.56533, 0.792781) UV(0.742425, 0.372063)
|
||||||
|
V 227: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.750731, 0.357688)
|
||||||
|
V 228: Pos(1.944313, 0.686414, 0.293966) Norm(0.2802, -0.85972, 0.427047) UV(0.590955, 0.203796)
|
||||||
|
V 229: Pos(1.934118, 0.752578, 0.277353) Norm(0.02072, 0.609155, -0.792781) UV(0.078894, 0.420634)
|
||||||
|
V 230: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.066169, 0.409958)
|
||||||
|
V 231: Pos(1.910629, 0.749626, 0.200236) Norm(-0.474832, 0.606627, -0.637604) UV(0.314148, 0.467606)
|
||||||
|
V 232: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.590955, 0.117041)
|
||||||
|
V 233: Pos(1.934118, 0.752578, 0.214141) Norm(0.02072, 0.609155, 0.792781) UV(0.602763, 0.538379)
|
||||||
|
V 234: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.590038, 0.549049)
|
||||||
|
V 235: Pos(1.942838, 0.690939, 0.277353) Norm(0.188873, -0.579505, -0.79278) UV(0.26706, 0.52926)
|
||||||
|
V 236: Pos(1.944313, 0.686414, 0.277353) Norm(0.238719, -0.732445, -0.637603) UV(0.282669, 0.53494)
|
||||||
|
V 237: Pos(1.969051, 0.726083, 0.293966) Norm(0.895316, 0.126655, 0.427045) UV(0.646763, 0.050582)
|
||||||
|
V 238: Pos(1.957353, 0.748037, 0.277353) Norm(0.514956, 0.572959, -0.637603) UV(0.522723, 0.745674)
|
||||||
|
V 239: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.512275, 0.812485)
|
||||||
|
V 240: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.455316, 0.812425)
|
||||||
|
V 241: Pos(1.957353, 0.748037, 0.293966) Norm(0.604439, 0.672522, 0.427046) UV(0.465765, 0.745615)
|
||||||
|
V 242: Pos(1.90095, 0.703888, 0.214141) Norm(-0.679865, -0.362278, 0.637603) UV(0.937762, 0.676785)
|
||||||
|
V 243: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.939834, 0.75518)
|
||||||
|
V 244: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.891422, 0.754857)
|
||||||
|
V 245: Pos(1.90095, 0.703888, 0.200236) Norm(-0.679866, -0.362278, -0.637602) UV(0.88935, 0.676463)
|
||||||
|
V 246: Pos(1.910629, 0.749626, 0.277353) Norm(-0.474833, 0.606626, -0.637604) UV(0.806539, 0.425916)
|
||||||
|
V 247: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.807646, 0.342623)
|
||||||
|
V 248: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.865589, 0.342759)
|
||||||
|
V 249: Pos(1.910629, 0.749626, 0.293966) Norm(-0.557345, 0.712036, 0.42705) UV(0.864482, 0.426052)
|
||||||
|
V 250: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.238201, 0.778947)
|
||||||
|
V 251: Pos(1.90095, 0.703888, 0.277353) Norm(-0.679865, -0.362279, -0.637603) UV(0.236128, 0.700553)
|
||||||
|
V 252: Pos(1.90095, 0.703888, 0.293966) Norm(-0.798003, -0.425231, 0.427047) UV(0.293971, 0.700938)
|
||||||
|
V 253: Pos(1.897466, 0.728518, 0.293966) Norm(-0.884639, 0.187199, 0.427049) UV(0.296043, 0.779333)
|
||||||
|
V 254: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.238201, 0.616517)
|
||||||
|
V 255: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.296043, 0.616902)
|
||||||
|
V 256: Pos(1.919451, 0.68726, 0.277353) Norm(-0.287939, -0.71453, -0.637603) UV(0.83715, 0.194467)
|
||||||
|
V 257: Pos(1.944313, 0.686414, 0.277353) Norm(0.238719, -0.732445, -0.637603) UV(0.837672, 0.122003)
|
||||||
|
V 258: Pos(1.944313, 0.686414, 0.293966) Norm(0.2802, -0.85972, 0.427047) UV(0.895647, 0.121766)
|
||||||
|
V 259: Pos(1.919451, 0.68726, 0.293966) Norm(-0.337972, -0.838693, 0.427047) UV(0.895125, 0.194231)
|
||||||
|
V 260: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.83715, 0.035753)
|
||||||
|
V 261: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.895125, 0.035517)
|
||||||
|
V 262: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.512275, 0.592648)
|
||||||
|
V 263: Pos(1.969051, 0.726083, 0.277353) Norm(0.76277, 0.107906, -0.637604) UV(0.522723, 0.658854)
|
||||||
|
V 264: Pos(1.969051, 0.726083, 0.293966) Norm(0.895316, 0.126655, 0.427045) UV(0.465765, 0.658794)
|
||||||
|
V 265: Pos(1.963901, 0.701747, 0.293966) Norm(0.767264, -0.478475, 0.427046) UV(0.455316, 0.592588)
|
||||||
|
V 266: Pos(1.93428, 0.757334, 0.277353) Norm(0.026189, 0.769919, -0.637603) UV(0.807646, 0.505471)
|
||||||
|
V 267: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.865589, 0.505607)
|
||||||
|
V 268: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.939834, 0.592749)
|
||||||
|
V 269: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.891422, 0.592427)
|
||||||
|
V 270: Pos(1.944313, 0.686414, 0.214141) Norm(0.238718, -0.732445, 0.637603) UV(0.285173, 0.865582)
|
||||||
|
V 271: Pos(1.919451, 0.68726, 0.214141) Norm(-0.287939, -0.714529, 0.637605) UV(0.284651, 0.938046)
|
||||||
|
V 272: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.236128, 0.938244)
|
||||||
|
V 273: Pos(1.944313, 0.686414, 0.200236) Norm(0.238718, -0.732445, -0.637603) UV(0.23665, 0.86578)
|
||||||
|
V 274: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.284651, 0.779332)
|
||||||
|
V 275: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.236128, 0.779531)
|
||||||
|
V 276: Pos(1.969051, 0.726083, 0.214141) Norm(0.76277, 0.107904, 0.637604) UV(0.188456, 0.682723)
|
||||||
|
V 277: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.178008, 0.616517)
|
||||||
|
V 278: Pos(1.963901, 0.701747, 0.200236) Norm(0.653676, -0.40764, -0.637603) UV(0.22568, 0.616567)
|
||||||
|
V 279: Pos(1.969051, 0.726083, 0.200236) Norm(0.762771, 0.107903, -0.637603) UV(0.236128, 0.682773)
|
||||||
|
V 280: Pos(1.910629, 0.749626, 0.214141) Norm(-0.474834, 0.606625, 0.637604) UV(0.937846, 0.838586)
|
||||||
|
V 281: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.938953, 0.918141)
|
||||||
|
V 282: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.890457, 0.918027)
|
||||||
|
V 283: Pos(1.910629, 0.749626, 0.200236) Norm(-0.474832, 0.606627, -0.637604) UV(0.88935, 0.838472)
|
||||||
|
V 284: Pos(1.957353, 0.748037, 0.214141) Norm(0.514956, 0.572959, 0.637604) UV(0.188456, 0.769543)
|
||||||
|
V 285: Pos(1.957353, 0.748037, 0.200236) Norm(0.514957, 0.572959, -0.637603) UV(0.236128, 0.769594)
|
||||||
|
V 286: Pos(1.93428, 0.757334, 0.214141) Norm(0.026188, 0.76992, 0.637603) UV(0.178008, 0.836354)
|
||||||
|
V 287: Pos(1.93428, 0.757334, 0.200236) Norm(0.02619, 0.76992, -0.637603) UV(0.22568, 0.836404)
|
||||||
|
V 288: Pos(1.897466, 0.728518, 0.214141) Norm(-0.753676, 0.159485, 0.637603) UV(0.938953, 0.755293)
|
||||||
|
V 289: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.890457, 0.75518)
|
||||||
|
V 290: Pos(1.944313, 0.686414, 0.200236) Norm(0.238718, -0.732445, -0.637603) UV(0.560343, 0.511012)
|
||||||
|
V 291: Pos(1.902122, 0.727533, 0.277353) Norm(-0.5963, 0.126186, -0.792782) UV(0.078894, 0.562435)
|
||||||
|
V 292: Pos(1.897466, 0.728518, 0.277353) Norm(-0.753674, 0.159486, -0.637604) UV(0.066169, 0.573111)
|
||||||
|
V 293: Pos(1.919451, 0.68726, 0.200236) Norm(-0.287938, -0.71453, -0.637604) UV(0.504535, 0.577513)
|
||||||
|
V 294: Pos(1.959863, 0.704265, 0.214141) Norm(0.517182, -0.322522, 0.792781) UV(0.790929, 0.505226)
|
||||||
|
V 295: Pos(1.963901, 0.701747, 0.214141) Norm(0.653674, -0.407641, 0.637604) UV(0.806539, 0.510903)
|
||||||
|
V 296: Pos(1.90095, 0.703888, 0.200236) Norm(-0.679866, -0.362278, -0.637602) UV(0.419032, 0.592588)
|
||||||
|
V 297: Pos(1.959863, 0.704265, 0.277353) Norm(0.517182, -0.322522, -0.792781) UV(0.26706, 0.453809)
|
||||||
|
V 298: Pos(1.963901, 0.701747, 0.277353) Norm(0.653675, -0.407639, -0.637605) UV(0.282669, 0.448129)
|
||||||
|
V 299: Pos(1.913563, 0.745878, 0.214141) Norm(-0.375685, 0.479958, 0.792781) UV(0.576954, 0.467525)
|
||||||
|
V 300: Pos(1.910629, 0.749626, 0.214141) Norm(-0.474834, 0.606625, 0.637604) UV(0.560343, 0.467525)
|
||||||
|
V 301: Pos(1.897466, 0.728518, 0.200236) Norm(-0.753675, 0.159486, -0.637603) UV(0.343842, 0.549182)
|
||||||
|
V 302: Pos(1.913563, 0.745878, 0.277353) Norm(-0.375683, 0.479959, -0.792781) UV(0.053085, 0.491535)
|
||||||
|
V 303: Pos(1.910629, 0.749626, 0.277353) Norm(-0.474833, 0.606626, -0.637604) UV(0.036474, 0.491535)
|
||||||
|
V 304: Pos(1.942838, 0.690939, 0.214141) Norm(0.188872, -0.579505, 0.792781) UV(0.790929, 0.429824)
|
||||||
|
V 305: Pos(1.944313, 0.686414, 0.214141) Norm(0.238718, -0.732445, 0.637603) UV(0.806539, 0.424147)
|
||||||
|
V 306: Pos(1.93428, 0.757334, 0.293966) Norm(0.030741, 0.903706, 0.427049) UV(0.807456, 0.078895)
|
||||||
|
V 307: Pos(1.957353, 0.748037, 0.293966) Norm(0.604439, 0.672522, 0.427046) UV(0.732266, 0.035517)
|
||||||
|
|
||||||
|
===Triangles (Indices): 276
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 3 2 4
|
||||||
|
Tri: 3 4 5
|
||||||
|
Tri: 6 7 8
|
||||||
|
Tri: 6 8 9
|
||||||
|
Tri: 9 8 10
|
||||||
|
Tri: 9 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 9 11 16
|
||||||
|
Tri: 9 16 17
|
||||||
|
Tri: 15 14 18
|
||||||
|
Tri: 15 18 19
|
||||||
|
Tri: 20 21 22
|
||||||
|
Tri: 20 22 23
|
||||||
|
Tri: 12 15 24
|
||||||
|
Tri: 12 24 25
|
||||||
|
Tri: 26 27 28
|
||||||
|
Tri: 26 28 29
|
||||||
|
Tri: 30 31 32
|
||||||
|
Tri: 30 32 33
|
||||||
|
Tri: 34 3 5
|
||||||
|
Tri: 34 5 35
|
||||||
|
Tri: 9 17 36
|
||||||
|
Tri: 9 36 6
|
||||||
|
Tri: 37 38 27
|
||||||
|
Tri: 37 27 26
|
||||||
|
Tri: 20 23 39
|
||||||
|
Tri: 20 39 40
|
||||||
|
Tri: 0 3 34
|
||||||
|
Tri: 0 34 41
|
||||||
|
Tri: 42 43 44
|
||||||
|
Tri: 42 44 45
|
||||||
|
Tri: 8 46 47
|
||||||
|
Tri: 8 47 10
|
||||||
|
Tri: 13 48 49
|
||||||
|
Tri: 13 49 14
|
||||||
|
Tri: 50 51 52
|
||||||
|
Tri: 50 52 53
|
||||||
|
Tri: 21 54 31
|
||||||
|
Tri: 21 31 22
|
||||||
|
Tri: 1 55 56
|
||||||
|
Tri: 1 56 2
|
||||||
|
Tri: 57 58 43
|
||||||
|
Tri: 57 43 42
|
||||||
|
Tri: 32 59 60
|
||||||
|
Tri: 32 60 33
|
||||||
|
Tri: 61 62 63
|
||||||
|
Tri: 61 63 64
|
||||||
|
Tri: 43 58 61
|
||||||
|
Tri: 43 61 64
|
||||||
|
Tri: 65 26 29
|
||||||
|
Tri: 65 29 66
|
||||||
|
Tri: 44 43 64
|
||||||
|
Tri: 44 64 67
|
||||||
|
Tri: 17 16 68
|
||||||
|
Tri: 17 68 69
|
||||||
|
Tri: 47 46 70
|
||||||
|
Tri: 47 70 71
|
||||||
|
Tri: 72 73 74
|
||||||
|
Tri: 72 74 75
|
||||||
|
Tri: 51 76 77
|
||||||
|
Tri: 51 77 78
|
||||||
|
Tri: 79 72 75
|
||||||
|
Tri: 79 75 80
|
||||||
|
Tri: 52 51 78
|
||||||
|
Tri: 52 78 81
|
||||||
|
Tri: 39 82 83
|
||||||
|
Tri: 39 83 84
|
||||||
|
Tri: 31 54 85
|
||||||
|
Tri: 31 85 32
|
||||||
|
Tri: 40 39 84
|
||||||
|
Tri: 40 84 86
|
||||||
|
Tri: 87 88 89
|
||||||
|
Tri: 87 89 90
|
||||||
|
Tri: 91 92 93
|
||||||
|
Tri: 91 93 94
|
||||||
|
Tri: 95 87 96
|
||||||
|
Tri: 95 96 97
|
||||||
|
Tri: 78 98 99
|
||||||
|
Tri: 78 99 81
|
||||||
|
Tri: 71 100 101
|
||||||
|
Tri: 71 101 102
|
||||||
|
Tri: 70 103 100
|
||||||
|
Tri: 70 100 71
|
||||||
|
Tri: 104 105 106
|
||||||
|
Tri: 104 106 107
|
||||||
|
Tri: 80 75 108
|
||||||
|
Tri: 80 108 109
|
||||||
|
Tri: 84 83 110
|
||||||
|
Tri: 84 110 111
|
||||||
|
Tri: 112 113 92
|
||||||
|
Tri: 112 92 91
|
||||||
|
Tri: 29 28 114
|
||||||
|
Tri: 29 114 115
|
||||||
|
Tri: 68 116 117
|
||||||
|
Tri: 68 117 118
|
||||||
|
Tri: 69 68 118
|
||||||
|
Tri: 69 118 119
|
||||||
|
Tri: 75 74 120
|
||||||
|
Tri: 75 120 108
|
||||||
|
Tri: 121 122 123
|
||||||
|
Tri: 121 123 124
|
||||||
|
Tri: 121 124 125
|
||||||
|
Tri: 121 125 126
|
||||||
|
Tri: 121 126 127
|
||||||
|
Tri: 100 103 128
|
||||||
|
Tri: 100 128 129
|
||||||
|
Tri: 105 130 131
|
||||||
|
Tri: 105 131 132
|
||||||
|
Tri: 96 87 90
|
||||||
|
Tri: 96 90 133
|
||||||
|
Tri: 101 100 129
|
||||||
|
Tri: 101 129 134
|
||||||
|
Tri: 106 105 132
|
||||||
|
Tri: 106 132 135
|
||||||
|
Tri: 60 59 136
|
||||||
|
Tri: 60 136 137
|
||||||
|
Tri: 138 139 140
|
||||||
|
Tri: 138 140 141
|
||||||
|
Tri: 138 141 142
|
||||||
|
Tri: 138 142 143
|
||||||
|
Tri: 138 143 144
|
||||||
|
Tri: 145 146 147
|
||||||
|
Tri: 145 147 148
|
||||||
|
Tri: 119 118 149
|
||||||
|
Tri: 119 149 150
|
||||||
|
Tri: 151 91 94
|
||||||
|
Tri: 151 94 152
|
||||||
|
Tri: 111 110 153
|
||||||
|
Tri: 111 153 154
|
||||||
|
Tri: 146 155 156
|
||||||
|
Tri: 146 156 147
|
||||||
|
Tri: 118 117 157
|
||||||
|
Tri: 118 157 149
|
||||||
|
Tri: 158 159 160
|
||||||
|
Tri: 158 160 161
|
||||||
|
Tri: 162 163 164
|
||||||
|
Tri: 162 164 165
|
||||||
|
Tri: 165 164 166
|
||||||
|
Tri: 165 166 167
|
||||||
|
Tri: 167 166 168
|
||||||
|
Tri: 167 168 169
|
||||||
|
Tri: 170 171 172
|
||||||
|
Tri: 170 172 173
|
||||||
|
Tri: 173 172 174
|
||||||
|
Tri: 173 174 175
|
||||||
|
Tri: 176 177 178
|
||||||
|
Tri: 176 178 179
|
||||||
|
Tri: 180 181 182
|
||||||
|
Tri: 180 182 183
|
||||||
|
Tri: 179 178 184
|
||||||
|
Tri: 179 184 185
|
||||||
|
Tri: 186 187 159
|
||||||
|
Tri: 186 159 158
|
||||||
|
Tri: 188 189 190
|
||||||
|
Tri: 188 190 191
|
||||||
|
Tri: 192 189 188
|
||||||
|
Tri: 192 188 193
|
||||||
|
Tri: 192 193 194
|
||||||
|
Tri: 192 194 195
|
||||||
|
Tri: 192 195 196
|
||||||
|
Tri: 192 196 197
|
||||||
|
Tri: 192 197 198
|
||||||
|
Tri: 199 200 201
|
||||||
|
Tri: 199 201 202
|
||||||
|
Tri: 203 204 205
|
||||||
|
Tri: 203 205 206
|
||||||
|
Tri: 193 188 191
|
||||||
|
Tri: 193 191 207
|
||||||
|
Tri: 208 209 210
|
||||||
|
Tri: 208 210 211
|
||||||
|
Tri: 204 212 213
|
||||||
|
Tri: 204 213 205
|
||||||
|
Tri: 214 215 216
|
||||||
|
Tri: 214 216 217
|
||||||
|
Tri: 194 193 207
|
||||||
|
Tri: 194 207 218
|
||||||
|
Tri: 212 219 220
|
||||||
|
Tri: 212 220 213
|
||||||
|
Tri: 221 219 212
|
||||||
|
Tri: 221 212 204
|
||||||
|
Tri: 221 204 203
|
||||||
|
Tri: 221 203 222
|
||||||
|
Tri: 221 222 223
|
||||||
|
Tri: 221 223 224
|
||||||
|
Tri: 221 224 225
|
||||||
|
Tri: 226 180 183
|
||||||
|
Tri: 226 183 227
|
||||||
|
Tri: 195 194 218
|
||||||
|
Tri: 195 218 228
|
||||||
|
Tri: 200 229 230
|
||||||
|
Tri: 200 230 201
|
||||||
|
Tri: 219 221 231
|
||||||
|
Tri: 219 231 220
|
||||||
|
Tri: 196 195 228
|
||||||
|
Tri: 196 228 232
|
||||||
|
Tri: 233 208 211
|
||||||
|
Tri: 233 211 234
|
||||||
|
Tri: 215 235 236
|
||||||
|
Tri: 215 236 216
|
||||||
|
Tri: 197 196 232
|
||||||
|
Tri: 197 232 237
|
||||||
|
Tri: 238 239 240
|
||||||
|
Tri: 238 240 241
|
||||||
|
Tri: 242 243 244
|
||||||
|
Tri: 242 244 245
|
||||||
|
Tri: 246 247 248
|
||||||
|
Tri: 246 248 249
|
||||||
|
Tri: 250 251 252
|
||||||
|
Tri: 250 252 253
|
||||||
|
Tri: 251 254 255
|
||||||
|
Tri: 251 255 252
|
||||||
|
Tri: 256 257 258
|
||||||
|
Tri: 256 258 259
|
||||||
|
Tri: 257 260 261
|
||||||
|
Tri: 257 261 258
|
||||||
|
Tri: 262 263 264
|
||||||
|
Tri: 262 264 265
|
||||||
|
Tri: 266 246 249
|
||||||
|
Tri: 266 249 267
|
||||||
|
Tri: 263 238 241
|
||||||
|
Tri: 263 241 264
|
||||||
|
Tri: 268 242 245
|
||||||
|
Tri: 268 245 269
|
||||||
|
Tri: 270 271 272
|
||||||
|
Tri: 270 272 273
|
||||||
|
Tri: 274 270 273
|
||||||
|
Tri: 274 273 275
|
||||||
|
Tri: 276 277 278
|
||||||
|
Tri: 276 278 279
|
||||||
|
Tri: 280 281 282
|
||||||
|
Tri: 280 282 283
|
||||||
|
Tri: 284 276 279
|
||||||
|
Tri: 284 279 285
|
||||||
|
Tri: 286 284 285
|
||||||
|
Tri: 286 285 287
|
||||||
|
Tri: 288 280 283
|
||||||
|
Tri: 288 283 289
|
||||||
|
Tri: 222 203 206
|
||||||
|
Tri: 222 206 290
|
||||||
|
Tri: 291 214 217
|
||||||
|
Tri: 291 217 292
|
||||||
|
Tri: 223 222 290
|
||||||
|
Tri: 223 290 293
|
||||||
|
Tri: 209 294 295
|
||||||
|
Tri: 209 295 210
|
||||||
|
Tri: 224 223 293
|
||||||
|
Tri: 224 293 296
|
||||||
|
Tri: 297 199 202
|
||||||
|
Tri: 297 202 298
|
||||||
|
Tri: 181 299 300
|
||||||
|
Tri: 181 300 182
|
||||||
|
Tri: 225 224 296
|
||||||
|
Tri: 225 296 301
|
||||||
|
Tri: 302 291 292
|
||||||
|
Tri: 302 292 303
|
||||||
|
Tri: 221 225 301
|
||||||
|
Tri: 221 301 231
|
||||||
|
Tri: 294 304 305
|
||||||
|
Tri: 294 305 295
|
||||||
|
Tri: 299 233 234
|
||||||
|
Tri: 299 234 300
|
||||||
|
Tri: 189 192 306
|
||||||
|
Tri: 189 306 190
|
||||||
|
Tri: 235 297 298
|
||||||
|
Tri: 235 298 236
|
||||||
|
Tri: 229 302 303
|
||||||
|
Tri: 229 303 230
|
||||||
|
Tri: 192 198 307
|
||||||
|
Tri: 192 307 306
|
||||||
|
Tri: 198 197 237
|
||||||
|
Tri: 198 237 307
|
||||||
|
Tri: 304 226 227
|
||||||
|
Tri: 304 227 305
|
||||||
21
resources/barn/pin1.txt
Normal file
21
resources/barn/pin1.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 10
|
||||||
|
V 0: Pos(2.170956, 0.587034, 0.365303) Norm(-0.995813, -0.029843, 0.0864) UV(0.015946, 0.257699)
|
||||||
|
V 1: Pos(2.170184, 0.584088, 0.389394) Norm(-0.99931, -0.015281, -0.033867) UV(0.016101, 0.023489)
|
||||||
|
V 2: Pos(2.168909, 0.649793, 0.397387) Norm(-0.99931, -0.015281, -0.033867) UV(0.65722, 0.023489)
|
||||||
|
V 3: Pos(2.16968, 0.652739, 0.373296) Norm(-0.995813, -0.029843, 0.0864) UV(0.657065, 0.257699)
|
||||||
|
V 4: Pos(2.169977, 0.592927, 0.316697) Norm(-0.99906, -0.037007, 0.022573) UV(0.015812, 0.731623)
|
||||||
|
V 5: Pos(2.165724, 0.589887, 0.341009) Norm(-0.999626, -0.02147, 0.016955) UV(0.016215, 0.497147)
|
||||||
|
V 6: Pos(2.164448, 0.655593, 0.349002) Norm(-0.999626, -0.02147, 0.016955) UV(0.657334, 0.497147)
|
||||||
|
V 7: Pos(2.168701, 0.658633, 0.32469) Norm(-0.99906, -0.037007, 0.022573) UV(0.656931, 0.731623)
|
||||||
|
V 8: Pos(2.166257, 0.595846, 0.292114) Norm(-0.973478, -0.074359, 0.216359) UV(0.015973, 0.973057)
|
||||||
|
V 9: Pos(2.161023, 0.66149, 0.299973) Norm(-0.973478, -0.074359, 0.216359) UV(0.657373, 0.976511)
|
||||||
|
|
||||||
|
===Triangles (Indices): 8
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 5 0 3
|
||||||
|
Tri: 5 3 6
|
||||||
|
Tri: 8 4 7
|
||||||
|
Tri: 8 7 9
|
||||||
21
resources/barn/pin2.txt
Normal file
21
resources/barn/pin2.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 10
|
||||||
|
V 0: Pos(2.169542, 0.215532, 0.473265) Norm(-0.991319, 0.000923, 0.131472) UV(0.015946, 0.257699)
|
||||||
|
V 1: Pos(2.169844, 0.213758, 0.502617) Norm(-0.999907, 0.008286, 0.010808) UV(0.016101, 0.023489)
|
||||||
|
V 2: Pos(2.170559, 0.293782, 0.507448) Norm(-0.999907, 0.008286, 0.010808) UV(0.65722, 0.023489)
|
||||||
|
V 3: Pos(2.170257, 0.295557, 0.478097) Norm(-0.99132, 0.000923, 0.131472) UV(0.657065, 0.257699)
|
||||||
|
V 4: Pos(2.165864, 0.219133, 0.414181) Norm(-0.997607, -0.009991, 0.068407) UV(0.015812, 0.731623)
|
||||||
|
V 5: Pos(2.161964, 0.217368, 0.443992) Norm(-0.99807, 0.005185, 0.061876) UV(0.016215, 0.497147)
|
||||||
|
V 6: Pos(2.16268, 0.297392, 0.448823) Norm(-0.99807, 0.005185, 0.061877) UV(0.657334, 0.497147)
|
||||||
|
V 7: Pos(2.166579, 0.299157, 0.419013) Norm(-0.997607, -0.009991, 0.068407) UV(0.656931, 0.731623)
|
||||||
|
V 8: Pos(2.160102, 0.220978, 0.384476) Norm(-0.964166, -0.036223, 0.262816) UV(0.015973, 0.973057)
|
||||||
|
V 9: Pos(2.15602, 0.301042, 0.389359) Norm(-0.964166, -0.036223, 0.262816) UV(0.657373, 0.976511)
|
||||||
|
|
||||||
|
===Triangles (Indices): 8
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 5 0 3
|
||||||
|
Tri: 5 3 6
|
||||||
|
Tri: 8 4 7
|
||||||
|
Tri: 8 7 9
|
||||||
21
resources/barn/pin3.txt
Normal file
21
resources/barn/pin3.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 10
|
||||||
|
V 0: Pos(2.16925, 0.237091, 0.341346) Norm(-0.995813, -0.002278, 0.09138) UV(0.015946, 0.257699)
|
||||||
|
V 1: Pos(2.168413, 0.241963, 0.367235) Norm(-0.99931, -0.024824, -0.027645) UV(0.016101, 0.023489)
|
||||||
|
V 2: Pos(2.167028, 0.312561, 0.353905) Norm(-0.99931, -0.024824, -0.027645) UV(0.65722, 0.023489)
|
||||||
|
V 3: Pos(2.167865, 0.307689, 0.328015) Norm(-0.995813, -0.002278, 0.09138) UV(0.657065, 0.257699)
|
||||||
|
V 4: Pos(2.168187, 0.22721, 0.289126) Norm(-0.99906, -0.028434, 0.03272) UV(0.015812, 0.731623)
|
||||||
|
V 5: Pos(2.163571, 0.232057, 0.315276) Norm(-0.999626, -0.015326, 0.02266) UV(0.016215, 0.497147)
|
||||||
|
V 6: Pos(2.162186, 0.302655, 0.301945) Norm(-0.999626, -0.015326, 0.022659) UV(0.657334, 0.497147)
|
||||||
|
V 7: Pos(2.166803, 0.297808, 0.275796) Norm(-0.99906, -0.028434, 0.032721) UV(0.656931, 0.731623)
|
||||||
|
V 8: Pos(2.16415, 0.222148, 0.262737) Norm(-0.973479, -0.005347, 0.228716) UV(0.015973, 0.973057)
|
||||||
|
V 9: Pos(2.158468, 0.292639, 0.249288) Norm(-0.973479, -0.005347, 0.228716) UV(0.657373, 0.976511)
|
||||||
|
|
||||||
|
===Triangles (Indices): 8
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 5 0 3
|
||||||
|
Tri: 5 3 6
|
||||||
|
Tri: 8 4 7
|
||||||
|
Tri: 8 7 9
|
||||||
21
resources/barn/pin4.txt
Normal file
21
resources/barn/pin4.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 10
|
||||||
|
V 0: Pos(2.015285, 0.219518, 0.200815) Norm(0.082364, -0.039648, 0.995813) UV(0.015946, 0.257699)
|
||||||
|
V 1: Pos(2.040888, 0.213314, 0.201652) Norm(-0.035405, -0.011257, 0.99931) UV(0.016101, 0.023489)
|
||||||
|
V 2: Pos(2.057765, 0.283149, 0.203037) Norm(-0.035405, -0.011257, 0.99931) UV(0.65722, 0.023489)
|
||||||
|
V 3: Pos(2.032162, 0.289353, 0.2022) Norm(0.082364, -0.039648, 0.995813) UV(0.657065, 0.257699)
|
||||||
|
V 4: Pos(1.963621, 0.231982, 0.201878) Norm(0.018136, -0.039371, 0.99906) UV(0.015812, 0.731623)
|
||||||
|
V 5: Pos(1.989451, 0.225649, 0.206494) Norm(0.014356, -0.023288, 0.999626) UV(0.016215, 0.497147)
|
||||||
|
V 6: Pos(2.006328, 0.295484, 0.207879) Norm(0.014355, -0.023288, 0.999626) UV(0.657334, 0.497147)
|
||||||
|
V 7: Pos(1.980498, 0.301817, 0.203262) Norm(0.018136, -0.039371, 0.99906) UV(0.656931, 0.731623)
|
||||||
|
V 8: Pos(1.937485, 0.238219, 0.205915) Norm(0.20629, -0.098914, 0.973479) UV(0.015973, 0.973057)
|
||||||
|
V 9: Pos(1.954209, 0.308005, 0.211597) Norm(0.20629, -0.098914, 0.973479) UV(0.657373, 0.976511)
|
||||||
|
|
||||||
|
===Triangles (Indices): 8
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 5 0 3
|
||||||
|
Tri: 5 3 6
|
||||||
|
Tri: 8 4 7
|
||||||
|
Tri: 8 7 9
|
||||||
103
resources/barn/radio.txt
Normal file
103
resources/barn/radio.txt
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 60
|
||||||
|
V 0: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.953767, 0.893055)
|
||||||
|
V 1: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.960925, 0.457499)
|
||||||
|
V 2: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.968094, 0.457499)
|
||||||
|
V 3: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.969128, 0.893055)
|
||||||
|
V 4: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.953767, 0.457499)
|
||||||
|
V 5: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.960925, 0.021942)
|
||||||
|
V 6: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.968094, 0.021942)
|
||||||
|
V 7: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.969128, 0.457499)
|
||||||
|
V 8: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.228451, 0.978058)
|
||||||
|
V 9: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.235609, 0.542501)
|
||||||
|
V 10: Pos(2.049502, 0.596709, 0.329654) Norm(0.796941, 0.156322, 0.583479) UV(0.242779, 0.542501)
|
||||||
|
V 11: Pos(2.050844, 0.596972, 0.247254) Norm(0.805478, 0.157997, -0.571176) UV(0.243812, 0.978058)
|
||||||
|
V 12: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.248138, 0.542501)
|
||||||
|
V 13: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.255297, 0.978058)
|
||||||
|
V 14: Pos(2.045809, 0.595985, 0.247254) Norm(-0.805479, -0.157991, -0.571177) UV(0.274477, 0.542501)
|
||||||
|
V 15: Pos(2.047833, 0.598996, 0.247254) Norm(-0.157991, 0.805467, -0.571193) UV(0.274477, 0.561681)
|
||||||
|
V 16: Pos(2.050844, 0.596972, 0.247254) Norm(0.805478, 0.157997, -0.571176) UV(0.255297, 0.561681)
|
||||||
|
V 17: Pos(2.04882, 0.593961, 0.247254) Norm(0.15799, -0.805469, -0.571191) UV(0.255297, 0.542501)
|
||||||
|
V 18: Pos(2.048096, 0.597654, 0.329654) Norm(-0.156311, 0.796894, 0.583547) UV(0.281463, 0.54487)
|
||||||
|
V 19: Pos(2.047151, 0.596248, 0.329654) Norm(-0.796943, -0.156316, 0.583478) UV(0.281463, 0.55298)
|
||||||
|
V 20: Pos(2.048557, 0.595304, 0.329654) Norm(0.15631, -0.796892, 0.58355) UV(0.274477, 0.550611)
|
||||||
|
V 21: Pos(2.049502, 0.596709, 0.329654) Norm(0.796941, 0.156322, 0.583479) UV(0.274477, 0.542501)
|
||||||
|
V 22: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.540349, 0.551801)
|
||||||
|
V 23: Pos(2.059372, 0.591441, 0.244588) Norm(0.832044, -0.468435, 0.297105) UV(0.540349, 0.390033)
|
||||||
|
V 24: Pos(2.022467, 0.578506, 0.244588) Norm(-0.357515, -0.885388, 0.297105) UV(0.747057, 0.390033)
|
||||||
|
V 25: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.747057, 0.551801)
|
||||||
|
V 26: Pos(2.027751, 0.681654, 0.19842) Norm(0.496495, 0.488863, -0.717291) UV(0.540349, 0.527237)
|
||||||
|
V 27: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.525084, 0.542501)
|
||||||
|
V 28: Pos(2.026796, 0.684379, 0.244588) Norm(0.357517, 0.885386, 0.297108) UV(0.296309, 0.542501)
|
||||||
|
V 29: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.281045, 0.527237)
|
||||||
|
V 30: Pos(2.058416, 0.594166, 0.247476) Norm(0.693054, -0.071917, 0.717289) UV(0.281045, 0.037206)
|
||||||
|
V 31: Pos(2.059372, 0.591441, 0.244588) Norm(0.832044, -0.468435, 0.297105) UV(0.29631, 0.021942)
|
||||||
|
V 32: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.525084, 0.021942)
|
||||||
|
V 33: Pos(2.058416, 0.594166, 0.19842) Norm(0.693054, -0.071917, -0.71729) UV(0.540349, 0.037206)
|
||||||
|
V 34: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.540349, 0.021942)
|
||||||
|
V 35: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.747057, 0.021942)
|
||||||
|
V 36: Pos(2.021512, 0.581231, 0.247476) Norm(-0.496494, -0.488866, 0.717289) UV(0.747057, 0.368446)
|
||||||
|
V 37: Pos(2.058416, 0.594166, 0.247476) Norm(0.693054, -0.071917, 0.717289) UV(0.540349, 0.368446)
|
||||||
|
V 38: Pos(2.021512, 0.581231, 0.19842) Norm(-0.496494, -0.488866, -0.717289) UV(0.281045, 0.527237)
|
||||||
|
V 39: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.265781, 0.542501)
|
||||||
|
V 40: Pos(2.022467, 0.578506, 0.244588) Norm(-0.357515, -0.885388, 0.297105) UV(0.037006, 0.542501)
|
||||||
|
V 41: Pos(2.021512, 0.581231, 0.247476) Norm(-0.496494, -0.488866, 0.717289) UV(0.021742, 0.527237)
|
||||||
|
V 42: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.021742, 0.037206)
|
||||||
|
V 43: Pos(1.989891, 0.671443, 0.244588) Norm(-0.832042, 0.468434, 0.297111) UV(0.037006, 0.021942)
|
||||||
|
V 44: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.265781, 0.021942)
|
||||||
|
V 45: Pos(1.990847, 0.668718, 0.19842) Norm(-0.693054, 0.07191, -0.71729) UV(0.281045, 0.037206)
|
||||||
|
V 46: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.021742, 0.78654)
|
||||||
|
V 47: Pos(1.989891, 0.671443, 0.244588) Norm(-0.832042, 0.468434, 0.297111) UV(0.021742, 0.557766)
|
||||||
|
V 48: Pos(2.026796, 0.684379, 0.244588) Norm(0.357517, 0.885386, 0.297108) UV(0.228451, 0.557766)
|
||||||
|
V 49: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.228451, 0.78654)
|
||||||
|
V 50: Pos(2.027751, 0.681654, 0.19842) Norm(0.496495, 0.488863, -0.717291) UV(0.747058, 0.527237)
|
||||||
|
V 51: Pos(1.990847, 0.668718, 0.19842) Norm(-0.693054, 0.07191, -0.71729) UV(0.953767, 0.527237)
|
||||||
|
V 52: Pos(1.989891, 0.671443, 0.201308) Norm(-0.832042, 0.468434, -0.297111) UV(0.953767, 0.542501)
|
||||||
|
V 53: Pos(2.026796, 0.684379, 0.201308) Norm(0.357517, 0.885386, -0.297108) UV(0.747058, 0.542501)
|
||||||
|
V 54: Pos(1.990847, 0.668718, 0.247476) Norm(-0.693054, 0.07191, 0.717291) UV(0.021742, 0.542501)
|
||||||
|
V 55: Pos(2.027751, 0.681654, 0.247476) Norm(0.496495, 0.488863, 0.717291) UV(0.228451, 0.542501)
|
||||||
|
V 56: Pos(2.021512, 0.581231, 0.19842) Norm(-0.496494, -0.488866, -0.717289) UV(0.953767, 0.037206)
|
||||||
|
V 57: Pos(2.058416, 0.594166, 0.19842) Norm(0.693054, -0.071917, -0.71729) UV(0.747058, 0.037206)
|
||||||
|
V 58: Pos(2.059372, 0.591441, 0.201308) Norm(0.832044, -0.468435, -0.297105) UV(0.747058, 0.021942)
|
||||||
|
V 59: Pos(2.022467, 0.578506, 0.201308) Norm(-0.357515, -0.885388, -0.297105) UV(0.953767, 0.021942)
|
||||||
|
|
||||||
|
===Triangles (Indices): 40
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 11 10 12
|
||||||
|
Tri: 11 12 13
|
||||||
|
Tri: 14 15 16
|
||||||
|
Tri: 14 16 17
|
||||||
|
Tri: 18 19 20
|
||||||
|
Tri: 18 20 21
|
||||||
|
Tri: 22 23 24
|
||||||
|
Tri: 22 24 25
|
||||||
|
Tri: 26 27 28
|
||||||
|
Tri: 26 28 29
|
||||||
|
Tri: 26 29 30
|
||||||
|
Tri: 26 30 31
|
||||||
|
Tri: 26 31 32
|
||||||
|
Tri: 26 32 33
|
||||||
|
Tri: 34 35 36
|
||||||
|
Tri: 34 36 37
|
||||||
|
Tri: 38 39 40
|
||||||
|
Tri: 38 40 41
|
||||||
|
Tri: 38 41 42
|
||||||
|
Tri: 38 42 43
|
||||||
|
Tri: 38 43 44
|
||||||
|
Tri: 38 44 45
|
||||||
|
Tri: 46 47 48
|
||||||
|
Tri: 46 48 49
|
||||||
|
Tri: 50 51 52
|
||||||
|
Tri: 50 52 53
|
||||||
|
Tri: 54 55 48
|
||||||
|
Tri: 54 48 47
|
||||||
|
Tri: 56 57 58
|
||||||
|
Tri: 56 58 59
|
||||||
|
Tri: 37 36 24
|
||||||
|
Tri: 37 24 23
|
||||||
|
Tri: 51 50 57
|
||||||
|
Tri: 51 57 56
|
||||||
223
resources/barn/table.txt
Normal file
223
resources/barn/table.txt
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
===Vertices (Split by UV/Normal): 120
|
||||||
|
V 0: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.628715, 0.045661)
|
||||||
|
V 1: Pos(1.857603, 0.794636, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.045661)
|
||||||
|
V 2: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.60656, 0.024198)
|
||||||
|
V 3: Pos(1.857603, 0.816721, 0.177222) Norm(-0.707107, 0.707107, 0.0) UV(0.628715, 0.024198)
|
||||||
|
V 4: Pos(1.857603, 0.816721, 0.177222) Norm(-0.707107, 0.707107, 0.0) UV(0.046149, 0.975802)
|
||||||
|
V 5: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.023994, 0.975802)
|
||||||
|
V 6: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.023994, 0.684519)
|
||||||
|
V 7: Pos(2.157339, 0.816721, 0.177222) Norm(0.707107, 0.707107, 0.0) UV(0.046149, 0.684519)
|
||||||
|
V 8: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.809229, 0.045661)
|
||||||
|
V 9: Pos(2.157339, 0.159323, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.045661)
|
||||||
|
V 10: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.787075, 0.024198)
|
||||||
|
V 11: Pos(2.157339, 0.137237, 0.177222) Norm(0.707107, -0.707107, 0.0) UV(0.809229, 0.024198)
|
||||||
|
V 12: Pos(2.157339, 0.137237, 0.177222) Norm(0.707107, -0.707107, 0.0) UV(0.337432, 0.932876)
|
||||||
|
V 13: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.315277, 0.932876)
|
||||||
|
V 14: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.315277, 0.641593)
|
||||||
|
V 15: Pos(1.857603, 0.137237, 0.177222) Norm(-0.707107, -0.707107, 0.0) UV(0.337432, 0.641593)
|
||||||
|
V 16: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.538718, 0.641593)
|
||||||
|
V 17: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.538718, 0.932876)
|
||||||
|
V 18: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.517255, 0.932876)
|
||||||
|
V 19: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.517255, 0.641593)
|
||||||
|
V 20: Pos(2.157339, 0.159323, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.045661)
|
||||||
|
V 21: Pos(1.857603, 0.159323, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.045661)
|
||||||
|
V 22: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.023994, 0.024198)
|
||||||
|
V 23: Pos(2.157339, 0.137237, 0.200019) Norm(0.57735, -0.57735, 0.57735) UV(0.315277, 0.024198)
|
||||||
|
V 24: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.495792, 0.932876)
|
||||||
|
V 25: Pos(2.157339, 0.137237, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.405535, 0.932876)
|
||||||
|
V 26: Pos(1.857603, 0.137237, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.405535, 0.641593)
|
||||||
|
V 27: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.495792, 0.641593)
|
||||||
|
V 28: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.96759, 0.045661)
|
||||||
|
V 29: Pos(2.157339, 0.159323, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.877332, 0.045661)
|
||||||
|
V 30: Pos(2.157339, 0.137237, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.877332, 0.024198)
|
||||||
|
V 31: Pos(2.157339, 0.137237, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.96759, 0.024198)
|
||||||
|
V 32: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.204509, 0.975802)
|
||||||
|
V 33: Pos(1.857603, 0.816721, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.114252, 0.975802)
|
||||||
|
V 34: Pos(2.157339, 0.816721, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.114252, 0.684519)
|
||||||
|
V 35: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.204509, 0.684519)
|
||||||
|
V 36: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.787075, 0.045661)
|
||||||
|
V 37: Pos(1.857603, 0.794636, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.696818, 0.045661)
|
||||||
|
V 38: Pos(1.857603, 0.816721, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.696818, 0.024198)
|
||||||
|
V 39: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.787075, 0.024198)
|
||||||
|
V 40: Pos(2.157339, 0.64685, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.519439)
|
||||||
|
V 41: Pos(1.857603, 0.64685, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.519439)
|
||||||
|
V 42: Pos(1.857603, 0.476979, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.354358)
|
||||||
|
V 43: Pos(2.157339, 0.476979, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.354358)
|
||||||
|
V 44: Pos(2.157339, 0.64685, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.519439)
|
||||||
|
V 45: Pos(2.157339, 0.64685, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.519439)
|
||||||
|
V 46: Pos(2.157339, 0.476979, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.354358)
|
||||||
|
V 47: Pos(2.157339, 0.476979, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.354358)
|
||||||
|
V 48: Pos(1.857603, 0.307108, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.519439)
|
||||||
|
V 49: Pos(1.857603, 0.307108, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.519439)
|
||||||
|
V 50: Pos(1.857603, 0.476979, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.354358)
|
||||||
|
V 51: Pos(1.857603, 0.476979, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.354358)
|
||||||
|
V 52: Pos(2.157339, 0.731786, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.601979)
|
||||||
|
V 53: Pos(2.157339, 0.731786, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.601979)
|
||||||
|
V 54: Pos(2.157339, 0.731786, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.601979)
|
||||||
|
V 55: Pos(1.857603, 0.731786, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.601979)
|
||||||
|
V 56: Pos(1.857603, 0.64685, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.189278)
|
||||||
|
V 57: Pos(1.857603, 0.64685, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.189278)
|
||||||
|
V 58: Pos(2.157339, 0.794636, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.663056)
|
||||||
|
V 59: Pos(1.857603, 0.794636, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.663056)
|
||||||
|
V 60: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.809229, 0.663056)
|
||||||
|
V 61: Pos(2.157339, 0.794636, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.663056)
|
||||||
|
V 62: Pos(1.857603, 0.731786, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.106738)
|
||||||
|
V 63: Pos(1.857603, 0.731786, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.106738)
|
||||||
|
V 64: Pos(2.157339, 0.816721, 0.177222) Norm(0.707107, 0.707107, 0.0) UV(0.809229, 0.684519)
|
||||||
|
V 65: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.787075, 0.684519)
|
||||||
|
V 66: Pos(1.857603, 0.816721, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.517255, 0.641593)
|
||||||
|
V 67: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.517255, 0.932876)
|
||||||
|
V 68: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.495792, 0.932876)
|
||||||
|
V 69: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.495792, 0.641593)
|
||||||
|
V 70: Pos(2.157339, 0.816721, 0.200019) Norm(0.57735, 0.57735, 0.57735) UV(0.315277, 0.684519)
|
||||||
|
V 71: Pos(1.857603, 0.816721, 0.200019) Norm(-0.57735, 0.57735, 0.57735) UV(0.023994, 0.684519)
|
||||||
|
V 72: Pos(2.157339, 0.816721, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.96759, 0.684519)
|
||||||
|
V 73: Pos(2.157339, 0.816721, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.877332, 0.684519)
|
||||||
|
V 74: Pos(2.157339, 0.794636, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.877332, 0.663056)
|
||||||
|
V 75: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.96759, 0.663056)
|
||||||
|
V 76: Pos(1.857603, 0.222172, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.628715, 0.601979)
|
||||||
|
V 77: Pos(1.857603, 0.222172, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.601979)
|
||||||
|
V 78: Pos(1.857603, 0.307108, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.189278)
|
||||||
|
V 79: Pos(2.157339, 0.307108, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.189278)
|
||||||
|
V 80: Pos(2.157339, 0.307108, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.189278)
|
||||||
|
V 81: Pos(2.157339, 0.307108, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.189278)
|
||||||
|
V 82: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.628715, 0.663056)
|
||||||
|
V 83: Pos(1.857603, 0.159323, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.60656, 0.663056)
|
||||||
|
V 84: Pos(1.857603, 0.222172, 0.200019) Norm(-0.707107, 0.0, 0.707107) UV(0.023994, 0.106738)
|
||||||
|
V 85: Pos(2.157339, 0.222172, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.315277, 0.106738)
|
||||||
|
V 86: Pos(2.157339, 0.222172, 0.200019) Norm(0.707107, 0.0, 0.707107) UV(0.787075, 0.106738)
|
||||||
|
V 87: Pos(2.157339, 0.222172, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.809229, 0.106738)
|
||||||
|
V 88: Pos(1.857603, 0.137237, 0.177222) Norm(-0.707107, -0.707107, 0.0) UV(0.628715, 0.684519)
|
||||||
|
V 89: Pos(1.857603, 0.137237, 0.200019) Norm(-0.57735, -0.57735, 0.57735) UV(0.60656, 0.684519)
|
||||||
|
V 90: Pos(1.857603, 0.137237, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.787075, 0.684519)
|
||||||
|
V 91: Pos(1.857603, 0.137237, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.696818, 0.684519)
|
||||||
|
V 92: Pos(1.857603, 0.159323, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.696818, 0.663056)
|
||||||
|
V 93: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.787075, 0.663056)
|
||||||
|
V 94: Pos(1.857603, 0.794636, 0.014266) Norm(-0.57735, -0.57735, -0.57735) UV(0.923281, 0.684519)
|
||||||
|
V 95: Pos(2.157339, 0.794636, 0.014266) Norm(0.57735, -0.57735, -0.57735) UV(0.923281, 0.975802)
|
||||||
|
V 96: Pos(2.157339, 0.794636, 0.107142) Norm(0.707107, -0.707107, 0.0) UV(0.833023, 0.975802)
|
||||||
|
V 97: Pos(1.857603, 0.794636, 0.107142) Norm(-0.707107, -0.707107, 0.0) UV(0.833023, 0.684519)
|
||||||
|
V 98: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.76492, 0.975802)
|
||||||
|
V 99: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.76492, 0.684519)
|
||||||
|
V 100: Pos(2.157339, 0.794636, 0.177222) Norm(0.904534, -0.301511, -0.301511) UV(0.315277, 0.641593)
|
||||||
|
V 101: Pos(2.157339, 0.731786, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.580516)
|
||||||
|
V 102: Pos(1.857603, 0.731786, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.580516)
|
||||||
|
V 103: Pos(1.857603, 0.794636, 0.177222) Norm(-0.904534, -0.301511, -0.301511) UV(0.60656, 0.641593)
|
||||||
|
V 104: Pos(2.157339, 0.64685, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.497976)
|
||||||
|
V 105: Pos(1.857603, 0.64685, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.497976)
|
||||||
|
V 106: Pos(2.157339, 0.476979, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.332896)
|
||||||
|
V 107: Pos(1.857603, 0.476979, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.332896)
|
||||||
|
V 108: Pos(1.857603, 0.307108, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.167815)
|
||||||
|
V 109: Pos(2.157339, 0.307108, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.167815)
|
||||||
|
V 110: Pos(1.857603, 0.222172, 0.177222) Norm(-0.707107, 0.0, -0.707107) UV(0.60656, 0.085275)
|
||||||
|
V 111: Pos(2.157339, 0.222172, 0.177222) Norm(0.707107, 0.0, -0.707107) UV(0.315277, 0.085275)
|
||||||
|
V 112: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.60656, 0.024198)
|
||||||
|
V 113: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.315277, 0.024198)
|
||||||
|
V 114: Pos(1.857603, 0.159323, 0.107142) Norm(-0.707107, 0.707107, 0.0) UV(0.674663, 0.975802)
|
||||||
|
V 115: Pos(1.857603, 0.159323, 0.177222) Norm(-0.904534, 0.301511, -0.301511) UV(0.60656, 0.975802)
|
||||||
|
V 116: Pos(2.157339, 0.159323, 0.177222) Norm(0.904534, 0.301511, -0.301511) UV(0.60656, 0.684519)
|
||||||
|
V 117: Pos(2.157339, 0.159323, 0.107142) Norm(0.707107, 0.707107, 0.0) UV(0.674663, 0.684519)
|
||||||
|
V 118: Pos(1.857603, 0.159323, 0.014266) Norm(-0.57735, 0.57735, -0.57735) UV(0.76492, 0.975802)
|
||||||
|
V 119: Pos(2.157339, 0.159323, 0.014266) Norm(0.57735, 0.57735, -0.57735) UV(0.76492, 0.684519)
|
||||||
|
|
||||||
|
===Triangles (Indices): 100
|
||||||
|
Tri: 0 1 2
|
||||||
|
Tri: 0 2 3
|
||||||
|
Tri: 4 5 6
|
||||||
|
Tri: 4 6 7
|
||||||
|
Tri: 8 9 10
|
||||||
|
Tri: 8 10 11
|
||||||
|
Tri: 12 13 14
|
||||||
|
Tri: 12 14 15
|
||||||
|
Tri: 16 17 18
|
||||||
|
Tri: 16 18 19
|
||||||
|
Tri: 20 21 22
|
||||||
|
Tri: 20 22 23
|
||||||
|
Tri: 24 25 26
|
||||||
|
Tri: 24 26 27
|
||||||
|
Tri: 28 29 30
|
||||||
|
Tri: 28 30 31
|
||||||
|
Tri: 32 33 34
|
||||||
|
Tri: 32 34 35
|
||||||
|
Tri: 36 37 38
|
||||||
|
Tri: 36 38 39
|
||||||
|
Tri: 25 12 15
|
||||||
|
Tri: 25 15 26
|
||||||
|
Tri: 29 8 11
|
||||||
|
Tri: 29 11 30
|
||||||
|
Tri: 33 4 7
|
||||||
|
Tri: 33 7 34
|
||||||
|
Tri: 37 0 3
|
||||||
|
Tri: 37 3 38
|
||||||
|
Tri: 40 41 42
|
||||||
|
Tri: 40 42 43
|
||||||
|
Tri: 44 45 46
|
||||||
|
Tri: 44 46 47
|
||||||
|
Tri: 48 49 50
|
||||||
|
Tri: 48 50 51
|
||||||
|
Tri: 52 53 45
|
||||||
|
Tri: 52 45 44
|
||||||
|
Tri: 54 55 41
|
||||||
|
Tri: 54 41 40
|
||||||
|
Tri: 51 50 56
|
||||||
|
Tri: 51 56 57
|
||||||
|
Tri: 58 59 55
|
||||||
|
Tri: 58 55 54
|
||||||
|
Tri: 60 61 53
|
||||||
|
Tri: 60 53 52
|
||||||
|
Tri: 57 56 62
|
||||||
|
Tri: 57 62 63
|
||||||
|
Tri: 64 65 61
|
||||||
|
Tri: 64 61 60
|
||||||
|
Tri: 66 67 68
|
||||||
|
Tri: 66 68 69
|
||||||
|
Tri: 70 71 59
|
||||||
|
Tri: 70 59 58
|
||||||
|
Tri: 72 73 74
|
||||||
|
Tri: 72 74 75
|
||||||
|
Tri: 73 64 60
|
||||||
|
Tri: 73 60 74
|
||||||
|
Tri: 63 62 1
|
||||||
|
Tri: 63 1 0
|
||||||
|
Tri: 76 77 49
|
||||||
|
Tri: 76 49 48
|
||||||
|
Tri: 43 42 78
|
||||||
|
Tri: 43 78 79
|
||||||
|
Tri: 47 46 80
|
||||||
|
Tri: 47 80 81
|
||||||
|
Tri: 82 83 77
|
||||||
|
Tri: 82 77 76
|
||||||
|
Tri: 79 78 84
|
||||||
|
Tri: 79 84 85
|
||||||
|
Tri: 81 80 86
|
||||||
|
Tri: 81 86 87
|
||||||
|
Tri: 88 89 83
|
||||||
|
Tri: 88 83 82
|
||||||
|
Tri: 90 91 92
|
||||||
|
Tri: 90 92 93
|
||||||
|
Tri: 91 88 82
|
||||||
|
Tri: 91 82 92
|
||||||
|
Tri: 85 84 21
|
||||||
|
Tri: 85 21 20
|
||||||
|
Tri: 87 86 9
|
||||||
|
Tri: 87 9 8
|
||||||
|
Tri: 94 95 96
|
||||||
|
Tri: 94 96 97
|
||||||
|
Tri: 96 98 99
|
||||||
|
Tri: 96 99 97
|
||||||
|
Tri: 100 101 102
|
||||||
|
Tri: 100 102 103
|
||||||
|
Tri: 101 104 105
|
||||||
|
Tri: 101 105 102
|
||||||
|
Tri: 104 106 107
|
||||||
|
Tri: 104 107 105
|
||||||
|
Tri: 108 107 106
|
||||||
|
Tri: 108 106 109
|
||||||
|
Tri: 110 108 109
|
||||||
|
Tri: 110 109 111
|
||||||
|
Tri: 112 110 111
|
||||||
|
Tri: 112 111 113
|
||||||
|
Tri: 114 115 116
|
||||||
|
Tri: 114 116 117
|
||||||
|
Tri: 118 114 117
|
||||||
|
Tri: 118 117 119
|
||||||
BIN
resources/blue_transparent.png
(Stored with Git LFS)
BIN
resources/blue_transparent.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/box/box.png
(Stored with Git LFS)
BIN
resources/box/box.png
(Stored with Git LFS)
Binary file not shown.
@ -1,29 +0,0 @@
|
|||||||
===Vertices (Split by UV/Normal): 14
|
|
||||||
V 0: Pos(1.0, 1.0, 1.0) Norm(0.57735, 0.57735, 0.57735) UV(0.5, 0.5)
|
|
||||||
V 1: Pos(-1.0, 1.0, 1.0) Norm(-0.57735, 0.57735, 0.57735) UV(0.75, 0.5)
|
|
||||||
V 2: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.75, 0.75)
|
|
||||||
V 3: Pos(1.0, -1.0, 1.0) Norm(0.57735, -0.57735, 0.57735) UV(0.5, 0.75)
|
|
||||||
V 4: Pos(1.0, -1.0, -1.0) Norm(0.57735, -0.57735, -0.57735) UV(0.25, 0.75)
|
|
||||||
V 5: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.5, 1.0)
|
|
||||||
V 6: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.25, 1.0)
|
|
||||||
V 7: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.25, 0.0)
|
|
||||||
V 8: Pos(-1.0, -1.0, 1.0) Norm(-0.57735, -0.57735, 0.57735) UV(0.5, 0.0)
|
|
||||||
V 9: Pos(-1.0, 1.0, 1.0) Norm(-0.57735, 0.57735, 0.57735) UV(0.5, 0.25)
|
|
||||||
V 10: Pos(-1.0, 1.0, -1.0) Norm(-0.57735, 0.57735, -0.57735) UV(0.25, 0.25)
|
|
||||||
V 11: Pos(-1.0, 1.0, -1.0) Norm(-0.57735, 0.57735, -0.57735) UV(0.0, 0.5)
|
|
||||||
V 12: Pos(1.0, 1.0, -1.0) Norm(0.57735, 0.57735, -0.57735) UV(0.25, 0.5)
|
|
||||||
V 13: Pos(-1.0, -1.0, -1.0) Norm(-0.57735, -0.57735, -0.57735) UV(0.0, 0.75)
|
|
||||||
|
|
||||||
===Triangles (Indices): 12
|
|
||||||
Tri: 0 1 2
|
|
||||||
Tri: 0 2 3
|
|
||||||
Tri: 4 3 5
|
|
||||||
Tri: 4 5 6
|
|
||||||
Tri: 7 8 9
|
|
||||||
Tri: 7 9 10
|
|
||||||
Tri: 11 12 4
|
|
||||||
Tri: 11 4 13
|
|
||||||
Tri: 12 0 3
|
|
||||||
Tri: 12 3 4
|
|
||||||
Tri: 10 9 0
|
|
||||||
Tri: 10 0 12
|
|
||||||
BIN
resources/button_info.png
(Stored with Git LFS)
BIN
resources/button_info.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_info_pressed.png
(Stored with Git LFS)
BIN
resources/button_info_pressed.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_invmouse.png
(Stored with Git LFS)
BIN
resources/button_invmouse.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_invmouse_pressed.png
(Stored with Git LFS)
BIN
resources/button_invmouse_pressed.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_minus.png
(Stored with Git LFS)
BIN
resources/button_minus.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_minus_disabled.png
(Stored with Git LFS)
BIN
resources/button_minus_disabled.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_minus_pressed.png
(Stored with Git LFS)
BIN
resources/button_minus_pressed.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_players.png
(Stored with Git LFS)
BIN
resources/button_players.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_players_disabled.png
(Stored with Git LFS)
BIN
resources/button_players_disabled.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_plus.png
(Stored with Git LFS)
BIN
resources/button_plus.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_plus_disabled.png
(Stored with Git LFS)
BIN
resources/button_plus_disabled.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_plus_pressed.png
(Stored with Git LFS)
BIN
resources/button_plus_pressed.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_take.png
(Stored with Git LFS)
BIN
resources/button_take.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_take_disabled.png
(Stored with Git LFS)
BIN
resources/button_take_disabled.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/button_take_pressed.png
(Stored with Git LFS)
BIN
resources/button_take_pressed.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
resources/cashier.png
(Stored with Git LFS)
Normal file
BIN
resources/cashier.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,256 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"vertical_align": "center",
|
|
||||||
"horizontal_align": "center",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "titleBtn",
|
|
||||||
"width": 434,
|
|
||||||
"height": 35,
|
|
||||||
"texture": "resources/main_menu/title.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "aboutSpace1",
|
|
||||||
"width": 434,
|
|
||||||
"height": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"spacing": 10,
|
|
||||||
"width": 434,
|
|
||||||
"height": 460,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText1",
|
|
||||||
"width": 434,
|
|
||||||
"height": 30,
|
|
||||||
"x": -300,
|
|
||||||
"y": 0,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Producer: Vladislav Khorev",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 30,
|
|
||||||
"x": -300,
|
|
||||||
"y": 40,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Lead Developer: Vladislav Khorev",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 2,
|
|
||||||
"x": -300,
|
|
||||||
"y": 80,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Game Designer: Leila Bobrova",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 30,
|
|
||||||
"x": -300,
|
|
||||||
"y": 120,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Developers: ",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 150,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Vladislav Kan",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 180,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Beksultan Almazbekov",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 210,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Sergei Zotov",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 250,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "3D Artist: David \"nokken\" Im",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 290,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "UI/UX Design: Kenje Kazmatova",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 330,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Sky Trek Tales v. 0.1",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "aboutText2",
|
|
||||||
"width": 434,
|
|
||||||
"height": 40,
|
|
||||||
"x": -300,
|
|
||||||
"y": 370,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "https://fishrungames.com",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "aboutBackButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Secondarybutton.png",
|
|
||||||
"hover": "resources/game_over/Secondarybutton.png",
|
|
||||||
"pressed": "resources/game_over/Secondarybutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "connecting",
|
|
||||||
"x" : 0,
|
|
||||||
"y" : 0,
|
|
||||||
"width": 488,
|
|
||||||
"height": 154,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"texture": "resources/connecting.png"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,52 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "connectionFailed",
|
|
||||||
"x" : 0,
|
|
||||||
"y" : 0,
|
|
||||||
"width": 488,
|
|
||||||
"height": 308,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"texture": "resources/connection_failed.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "connectionFailedReconnectButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"x" : 0,
|
|
||||||
"y" : -20,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/reconnect1.png",
|
|
||||||
"hover": "resources/game_over/reconnect2.png",
|
|
||||||
"pressed": "resources/game_over/reconnect3.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "connectionFailedGoBack",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"x" : 0,
|
|
||||||
"y" : -86,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Secondarybutton.png",
|
|
||||||
"hover": "resources/game_over/Secondarybutton.png",
|
|
||||||
"pressed": "resources/game_over/Secondarybutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,52 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "connectionLost",
|
|
||||||
"x" : 0,
|
|
||||||
"y" : 0,
|
|
||||||
"width": 488,
|
|
||||||
"height": 308,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"texture": "resources/connection_lost.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "reconnectButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"x" : 0,
|
|
||||||
"y" : -20,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/reconnect1.png",
|
|
||||||
"hover": "resources/game_over/reconnect2.png",
|
|
||||||
"pressed": "resources/game_over/reconnect3.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "exitServerButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"x" : 0,
|
|
||||||
"y" : -86,
|
|
||||||
"horizontal_gravity": "center",
|
|
||||||
"vertical_gravity": "center",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Secondarybutton.png",
|
|
||||||
"hover": "resources/game_over/Secondarybutton.png",
|
|
||||||
"pressed": "resources/game_over/Secondarybutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"enabled": true,
|
|
||||||
|
|
||||||
"referenceResolution": [1280, 720],
|
|
||||||
|
|
||||||
"color": [1.0, 1.0, 1.0],
|
|
||||||
"cl_crosshairalpha": 1.0,
|
|
||||||
"cl_crosshairthickness": 2.0,
|
|
||||||
|
|
||||||
"centerGapPx": 10.0,
|
|
||||||
|
|
||||||
"top": {
|
|
||||||
"lengthPx": 14.0,
|
|
||||||
"angleDeg": 90.0
|
|
||||||
},
|
|
||||||
|
|
||||||
"arms": [
|
|
||||||
{ "lengthPx": 20.0, "angleDeg": 210.0 },
|
|
||||||
{ "lengthPx": 20.0, "angleDeg": 330.0 }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"emissionPoints": [
|
|
||||||
{ "position": [0.0, 0.0, 0.0] }
|
|
||||||
],
|
|
||||||
"texture": "resources/spark_white.png",
|
|
||||||
"speedRange": [10.0, 30.0],
|
|
||||||
"zSpeedRange": [-1.0, 1.0],
|
|
||||||
"scaleRange": [5.0, 10.0],
|
|
||||||
"lifeTimeRange": [200.0, 800.0],
|
|
||||||
"emissionRate": 50.0,
|
|
||||||
"maxParticles": 5,
|
|
||||||
"particleSize": 2,
|
|
||||||
"biasX": 0.1,
|
|
||||||
"shaderProgramName": "default"
|
|
||||||
}
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"vertical_align": "center",
|
|
||||||
"horizontal_align": "center",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "gameOverText",
|
|
||||||
"width": 327,
|
|
||||||
"height": 26,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/MissionFailed.png",
|
|
||||||
"hover": "resources/game_over/MissionFailed.png",
|
|
||||||
"pressed": "resources/game_over/MissionFailed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "underlineBtn",
|
|
||||||
"width": 168,
|
|
||||||
"height": 44,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Container.png",
|
|
||||||
"hover": "resources/game_over/Container.png",
|
|
||||||
"pressed": "resources/game_over/Container.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "finalscore",
|
|
||||||
"width": 87,
|
|
||||||
"height": 9,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/FinalScore.png",
|
|
||||||
"hover": "resources/game_over/FinalScore.png",
|
|
||||||
"pressed": "resources/game_over/FinalScore.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "scoreText",
|
|
||||||
"width": 600,
|
|
||||||
"height": 80,
|
|
||||||
"text": "0",
|
|
||||||
"fontSize": 36,
|
|
||||||
"color": [
|
|
||||||
0,
|
|
||||||
217,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"align": "center"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "restartButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Filledbuttons.png",
|
|
||||||
"hover": "resources/game_over/Variant5.png",
|
|
||||||
"pressed": "resources/game_over/Variant6.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "gameOverExitButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Secondarybutton.png",
|
|
||||||
"hover": "resources/game_over/Secondarybutton.png",
|
|
||||||
"pressed": "resources/game_over/Secondarybutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"align": "center",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1920,
|
|
||||||
"height": 1080,
|
|
||||||
"background": {
|
|
||||||
"color": [0, 0, 0, 0.7]
|
|
||||||
},
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "gameOverText",
|
|
||||||
"x": 476.5,
|
|
||||||
"y": 500,
|
|
||||||
"width": 327,
|
|
||||||
"height": 26,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/MissionFailed.png",
|
|
||||||
"hover": "resources/game_over/MissionFailed.png",
|
|
||||||
"pressed": "resources/game_over/MissionFailed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "underlineBtn",
|
|
||||||
"x": 556,
|
|
||||||
"y": 465,
|
|
||||||
"width": 168,
|
|
||||||
"height": 44,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Container.png",
|
|
||||||
"hover": "resources/game_over/Container.png",
|
|
||||||
"pressed": "resources/game_over/Container.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "finalscore",
|
|
||||||
"x": 596.5,
|
|
||||||
"y": 436,
|
|
||||||
"width": 87,
|
|
||||||
"height": 9,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/FinalScore.png",
|
|
||||||
"hover": "resources/game_over/FinalScore.png",
|
|
||||||
"pressed": "resources/game_over/FinalScore.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "scoreText",
|
|
||||||
"x": 350,
|
|
||||||
"y": 356,
|
|
||||||
"width": 600,
|
|
||||||
"height": 80,
|
|
||||||
"text": "0",
|
|
||||||
"fontSize": 36,
|
|
||||||
"color": [0, 217, 255, 1],
|
|
||||||
"align": "center"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "restartButton",
|
|
||||||
"x": 449,
|
|
||||||
"y": 308,
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Filledbuttons.png",
|
|
||||||
"hover": "resources/game_over/Filledbuttons.png",
|
|
||||||
"pressed": "resources/game_over/Filledbuttons.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "gameOverExitButton",
|
|
||||||
"x": 449,
|
|
||||||
"y": 240,
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/game_over/Secondarybutton.png",
|
|
||||||
"hover": "resources/game_over/Secondarybutton.png",
|
|
||||||
"pressed": "resources/game_over/Secondarybutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,76 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"vertical_align": "center",
|
|
||||||
"horizontal_align": "center",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "titleBtn",
|
|
||||||
"width": 434,
|
|
||||||
"height": 35,
|
|
||||||
"texture": "resources/main_menu/title.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "underlineBtn",
|
|
||||||
"width": 168,
|
|
||||||
"height": 44,
|
|
||||||
"texture": "resources/main_menu/line.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "subtitleBtn",
|
|
||||||
"width": 144,
|
|
||||||
"height": 11,
|
|
||||||
"texture": "resources/main_menu/subtitle.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "singleButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/main_menu/single.png",
|
|
||||||
"hover": "resources/main_menu/Variant5.png",
|
|
||||||
"pressed": "resources/main_menu/Variant6.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "multiplayerButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/main_menu/multi.png",
|
|
||||||
"hover": "resources/main_menu/Variant7.png",
|
|
||||||
"pressed": "resources/main_menu/Variant8.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "aboutButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/main_menu/about.png",
|
|
||||||
"hover": "resources/main_menu/about_hover.png",
|
|
||||||
"pressed": "resources/main_menu/about_pressed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "versionLabel",
|
|
||||||
"width": 81,
|
|
||||||
"height": 9,
|
|
||||||
"texture": "resources/main_menu/version.png"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,158 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1280,
|
|
||||||
"height": 720,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "langButton",
|
|
||||||
"x": 1100,
|
|
||||||
"y": 580,
|
|
||||||
"width": 142,
|
|
||||||
"height": 96,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/main_menu/lang.png",
|
|
||||||
"hover": "resources/main_menu/lang.png",
|
|
||||||
"pressed": "resources/main_menu/lang.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "titleBtn",
|
|
||||||
"x": 512,
|
|
||||||
"y": 500,
|
|
||||||
"width": 254,
|
|
||||||
"height": 35,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/title.png",
|
|
||||||
"hover": "resources/multiplayer_menu/title.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/title.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "subtitle",
|
|
||||||
"x": 596.5,
|
|
||||||
"y": 470,
|
|
||||||
"width": 87,
|
|
||||||
"height": 11,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/JoinServer.png",
|
|
||||||
"hover": "resources/multiplayer_menu/JoinServer.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/JoinServer.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "subtitleBtn",
|
|
||||||
"x": 450,
|
|
||||||
"y": 445,
|
|
||||||
"width": 94,
|
|
||||||
"height": 9,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/ServerName.png",
|
|
||||||
"hover": "resources/multiplayer_menu/ServerName.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/ServerName.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextField",
|
|
||||||
"name": "serverInputField",
|
|
||||||
"x": 449,
|
|
||||||
"y": 390,
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"placeholder": "Enter server name or IP",
|
|
||||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
|
||||||
"fontSize": 16,
|
|
||||||
"maxLength": 256,
|
|
||||||
"color": [122, 156, 198, 1],
|
|
||||||
"placeholderColor": [122, 156, 198, 1],
|
|
||||||
"backgroundColor": [15, 29, 51, 1],
|
|
||||||
"borderColor": [15, 29, 51, 1]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "connectButton",
|
|
||||||
"x": 449,
|
|
||||||
"y": 350,
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Filledbuttons.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Filledbuttons.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Filledbuttons.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "backButton",
|
|
||||||
"x": 449,
|
|
||||||
"y": 280,
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Backbutton.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Backbutton.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Backbutton.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "AvailableServers",
|
|
||||||
"x": 450,
|
|
||||||
"y": 240,
|
|
||||||
"width": 139,
|
|
||||||
"height": 9,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/AvailableServers.png",
|
|
||||||
"hover": "resources/multiplayer_menu/AvailableServers.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/AvailableServers.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "SerButton",
|
|
||||||
"x": 436.5,
|
|
||||||
"y": 170,
|
|
||||||
"width": 407,
|
|
||||||
"height": 62,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Button.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Button.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Button.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "SerButton2",
|
|
||||||
"x": 436.5,
|
|
||||||
"y": 88,
|
|
||||||
"width": 407,
|
|
||||||
"height": 62,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Button2.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Button2.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Button2.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "SerButton3",
|
|
||||||
"x": 436.5,
|
|
||||||
"y": 6,
|
|
||||||
"width": 407,
|
|
||||||
"height": 62,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Button3.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Button3.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Button3.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1280,
|
|
||||||
"height": 720,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"name": "centerPanel",
|
|
||||||
"x": 480,
|
|
||||||
"y": 160,
|
|
||||||
"width": 320,
|
|
||||||
"height": 400,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"name": "settingsButtons",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 300,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "Opt1",
|
|
||||||
"x": 100,
|
|
||||||
"y": 300,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/sand2.png",
|
|
||||||
"hover": "resources/sand2.png",
|
|
||||||
"pressed": "resources/sand2.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "Opt2",
|
|
||||||
"x": 100,
|
|
||||||
"y": 200,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/sand2.png",
|
|
||||||
"hover": "resources/sand2.png",
|
|
||||||
"pressed": "resources/sand2.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "backButton",
|
|
||||||
"x": 100,
|
|
||||||
"y": 100,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/sand2.png",
|
|
||||||
"hover": "resources/sand2.png",
|
|
||||||
"pressed": "resources/sand2.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,66 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"vertical_align": "center",
|
|
||||||
"horizontal_align": "center",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "titleBtn",
|
|
||||||
"width": 266,
|
|
||||||
"height": 66,
|
|
||||||
"texture": "resources/select_your_ship.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"orientation": "horizontal",
|
|
||||||
"vertical_align": "center",
|
|
||||||
"horizontal_align": "center",
|
|
||||||
"spacing": 10,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": 260,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "spaceshipButton",
|
|
||||||
"width": 256,
|
|
||||||
"height": 256,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/ship_fighter.png",
|
|
||||||
"hover": "resources/multiplayer_menu/ship_fighter_pressed.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/ship_fighter_pressed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "cargoshipButton",
|
|
||||||
"width": 256,
|
|
||||||
"height": 256,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/ship_cargo.png",
|
|
||||||
"hover": "resources/multiplayer_menu/ship_cargo_pressed.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/ship_cargo_pressed.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "backButton",
|
|
||||||
"width": 382,
|
|
||||||
"height": 56,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/multiplayer_menu/Backbutton.png",
|
|
||||||
"hover": "resources/multiplayer_menu/Backbutton.png",
|
|
||||||
"pressed": "resources/multiplayer_menu/Backbutton.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"emissionRate": 1.2,
|
|
||||||
"maxParticles": 400,
|
|
||||||
"particleSize": 0.3,
|
|
||||||
"biasX": 0.3,
|
|
||||||
"emissionPoints": [
|
|
||||||
],
|
|
||||||
"speedRange": [0.5, 2.0],
|
|
||||||
"zSpeedRange": [1.0, 3.0],
|
|
||||||
"scaleRange": [0.8, 1.2],
|
|
||||||
"lifeTimeRange": [300.0, 500.0],
|
|
||||||
"texture": "resources/spark.png",
|
|
||||||
"shaderProgramName": "spark"
|
|
||||||
}
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"emissionRate": 1.2,
|
|
||||||
"maxParticles": 400,
|
|
||||||
"particleSize": 0.3,
|
|
||||||
"biasX": 0.3,
|
|
||||||
"emissionPoints": [
|
|
||||||
{
|
|
||||||
"position": [0.0, 2.8, -3.5]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"position": [0.0, 1.5, -3.5]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"speedRange": [0.5, 2.0],
|
|
||||||
"zSpeedRange": [1.0, 3.0],
|
|
||||||
"scaleRange": [0.8, 1.2],
|
|
||||||
"lifeTimeRange": [600.0, 1400.0],
|
|
||||||
"texture": "resources/spark.png",
|
|
||||||
"shaderProgramName": "spark"
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"emissionPoints": [
|
|
||||||
{ "position": [0.0, 0.0, 0.0] }
|
|
||||||
],
|
|
||||||
"texture": "resources/spark2.png",
|
|
||||||
"speedRange": [5.0, 10.0],
|
|
||||||
"zSpeedRange": [-1.0, 1.0],
|
|
||||||
"scaleRange": [0.5, 2.0],
|
|
||||||
"lifeTimeRange": [200.0, 800.0],
|
|
||||||
"emissionRate": 30.0,
|
|
||||||
"maxParticles": 150,
|
|
||||||
"particleSize": 1.0,
|
|
||||||
"biasX": 0.1,
|
|
||||||
"shaderProgramName": "default"
|
|
||||||
}
|
|
||||||
@ -1,163 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "gameScoreText",
|
|
||||||
"x": 0,
|
|
||||||
"y": 30,
|
|
||||||
"width": 200,
|
|
||||||
"height": 60,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"text": "Score: 0",
|
|
||||||
"fontSize": 36,
|
|
||||||
"color": [
|
|
||||||
0,
|
|
||||||
217,
|
|
||||||
255,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"centered": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "showPlayersButton",
|
|
||||||
"x": 0,
|
|
||||||
"y": 100,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_players.png",
|
|
||||||
"hover": "resources/button_players.png",
|
|
||||||
"pressed": "resources/button_players.png",
|
|
||||||
"disabled": "resources/button_players_disabled.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "inverseMouseButton",
|
|
||||||
"x": 0,
|
|
||||||
"y": 100,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_invmouse.png",
|
|
||||||
"hover": "resources/button_invmouse.png",
|
|
||||||
"pressed": "resources/button_invmouse_pressed.png",
|
|
||||||
"disabled": "resources/button_invmouse.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "infoButton",
|
|
||||||
"x": 0,
|
|
||||||
"y": 250,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_info.png",
|
|
||||||
"hover": "resources/button_info.png",
|
|
||||||
"pressed": "resources/button_info_pressed.png",
|
|
||||||
"disabled": "resources/button_info.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "shootButton",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/fire.png",
|
|
||||||
"hover": "resources/fire.png",
|
|
||||||
"pressed": "resources/fire2.png",
|
|
||||||
"disabled": "resources/fire_disabled.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "shootButton2",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/fire.png",
|
|
||||||
"hover": "resources/fire.png",
|
|
||||||
"pressed": "resources/fire2.png",
|
|
||||||
"disabled": "resources/fire_disabled.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "minusButton",
|
|
||||||
"x": -20,
|
|
||||||
"y": 110,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_minus.png",
|
|
||||||
"hover": "resources/button_minus.png",
|
|
||||||
"pressed": "resources/button_minus_pressed.png",
|
|
||||||
"disabled" : "resources/button_minus_disabled.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "plusButton",
|
|
||||||
"x": -20,
|
|
||||||
"y": 220,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_plus.png",
|
|
||||||
"hover": "resources/button_plus.png",
|
|
||||||
"pressed": "resources/button_plus_pressed.png",
|
|
||||||
"disabled" : "resources/button_plus_disabled.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "takeButton",
|
|
||||||
"x": -20,
|
|
||||||
"y": 320,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/button_take.png",
|
|
||||||
"hover": "resources/button_take.png",
|
|
||||||
"pressed": "resources/button_take_pressed.png",
|
|
||||||
"disabled" : "resources/button_take_disabled.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,194 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 1280,
|
|
||||||
"height": 720,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"name": "leftPanel",
|
|
||||||
"x": 100,
|
|
||||||
"y": 100,
|
|
||||||
"width": 320,
|
|
||||||
"height": 400,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "LinearLayout",
|
|
||||||
"name": "mainButtons",
|
|
||||||
"orientation": "vertical",
|
|
||||||
"spacing": 10,
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 300,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "playButton",
|
|
||||||
"x": -1000,
|
|
||||||
"y": 500,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/sand2.png",
|
|
||||||
"hover": "./resources/sand2.png",
|
|
||||||
"pressed": "./resources/sand2.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "settingsButton",
|
|
||||||
"x": -1000,
|
|
||||||
"y": 400,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "wait",
|
|
||||||
"duration": 0.5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/sand2.png",
|
|
||||||
"hover": "./resources/sand2.png",
|
|
||||||
"pressed": "./resources/sand2.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "exitButton",
|
|
||||||
"x": -1000,
|
|
||||||
"y": 300,
|
|
||||||
"width": 200,
|
|
||||||
"height": 50,
|
|
||||||
"animations": {
|
|
||||||
"buttonsExit": {
|
|
||||||
"repeat": false,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "wait",
|
|
||||||
"duration": 1.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
-400,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 1.0,
|
|
||||||
"easing": "easein"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bgScroll": {
|
|
||||||
"repeat": true,
|
|
||||||
"steps": [
|
|
||||||
{
|
|
||||||
"type": "move",
|
|
||||||
"to": [
|
|
||||||
1280,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"duration": 5.0,
|
|
||||||
"easing": "linear"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"textures": {
|
|
||||||
"normal": "./resources/sand2.png",
|
|
||||||
"hover": "./resources/sand2.png",
|
|
||||||
"pressed": "./resources/sand2.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Slider",
|
|
||||||
"name": "velocitySlider",
|
|
||||||
"x": 1140,
|
|
||||||
"y": 300,
|
|
||||||
"width": 50,
|
|
||||||
"height": 300,
|
|
||||||
"value": 0.0,
|
|
||||||
"orientation": "vertical",
|
|
||||||
"textures": {
|
|
||||||
"track": "resources/velocitySliderTexture.png",
|
|
||||||
"knob": "resources/velocitySliderButton.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "shootButton",
|
|
||||||
"x": 100,
|
|
||||||
"y": 100,
|
|
||||||
"width": 100,
|
|
||||||
"height": 100,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/shoot_normal.png",
|
|
||||||
"hover": "resources/shoot_hover.png",
|
|
||||||
"pressed": "resources/shoot_pressed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "shootButton2",
|
|
||||||
"x": 1000,
|
|
||||||
"y": 100,
|
|
||||||
"width": 100,
|
|
||||||
"height": 100,
|
|
||||||
"textures": {
|
|
||||||
"normal": "resources/shoot_normal.png",
|
|
||||||
"hover": "resources/shoot_hover.png",
|
|
||||||
"pressed": "resources/shoot_pressed.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "TextView",
|
|
||||||
"name": "velocityText",
|
|
||||||
"x": 10,
|
|
||||||
"y": 10,
|
|
||||||
"width": 200,
|
|
||||||
"height": 40,
|
|
||||||
"text": "Velocity: 0",
|
|
||||||
"fontSize": 24,
|
|
||||||
"color": [1.0, 1.0, 1.0, 1.0],
|
|
||||||
"centered": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,163 +0,0 @@
|
|||||||
{
|
|
||||||
"root": {
|
|
||||||
"type": "FrameLayout",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "showPlayersButton_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 100,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"texture": "resources/button_players.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "infoButton_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 250,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"texture":"resources/button_info.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "infoButtonTopLeft_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 400,
|
|
||||||
"border" : 0,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"texture": "resources/help_top_left.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "inverseMouseButton_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 100,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"texture": "resources/button_invmouse.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "infoButtonTopRight_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 230,
|
|
||||||
"border" : 0,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "top",
|
|
||||||
"texture": "resources/help_top_right.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "infoButtonBottomLeft_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 200,
|
|
||||||
"border" : 0,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/help_bottom_left.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "shootButton_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/fire.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "shootButton2_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"horizontal_gravity": "left",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/fire.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "minusButton_help",
|
|
||||||
"x": -20,
|
|
||||||
"y": 110,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/button_minus.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "plusButton_help",
|
|
||||||
"x": -20,
|
|
||||||
"y": 220,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/button_plus.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "takeButton_help",
|
|
||||||
"x": -20,
|
|
||||||
"y": 320,
|
|
||||||
"width": 150,
|
|
||||||
"height": 150,
|
|
||||||
"border" : 20,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/button_take.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "StaticImage",
|
|
||||||
"name": "infoButtonBottomRight_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": 300,
|
|
||||||
"height": 450,
|
|
||||||
"border" : 0,
|
|
||||||
"horizontal_gravity": "right",
|
|
||||||
"vertical_gravity": "bottom",
|
|
||||||
"texture": "resources/help_bottom_right.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Button",
|
|
||||||
"name": "infoButtonUnderlying_help",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"width": "match_parent",
|
|
||||||
"height": "match_parent",
|
|
||||||
"border" : 0,
|
|
||||||
"textures": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
33
resources/config2/about.json
Normal file
33
resources/config2/about.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 30,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "aboutImage",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"texture": "resources/e/menu/about.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "backButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/button_back.png",
|
||||||
|
"hover": "resources/e/menu/button_back.png",
|
||||||
|
"pressed": "resources/e/menu/button_back.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
64
resources/config2/gameobjects.json
Normal file
64
resources/config2/gameobjects.json
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"name": "firebox",
|
||||||
|
"texturePath": "resources/w/Cube001.png",
|
||||||
|
"meshPath": "resources/w/firebox.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": -1.5707963267948966,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": 0.0,
|
||||||
|
"scale": 1.0,
|
||||||
|
"interactive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "inai",
|
||||||
|
"texturePath": "resources/w/inai001.png",
|
||||||
|
"meshPath": "resources/w/inai001.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": -1.5707963267948966,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": 2.5,
|
||||||
|
"positionY": 1.4,
|
||||||
|
"positionZ": -9.9,
|
||||||
|
"scale": 1.0,
|
||||||
|
"interactive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bench",
|
||||||
|
"texturePath": "resources/w/bench001opt.png",
|
||||||
|
"meshPath": "resources/w/bench002opt.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": 3.141592653589793,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": -2.1,
|
||||||
|
"positionY": 0.5,
|
||||||
|
"positionZ": -7.9,
|
||||||
|
"scale": 3.0,
|
||||||
|
"interactive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "medik",
|
||||||
|
"texturePath": "resources/w/red.png",
|
||||||
|
"meshPath": "resources/w/firebox.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": -1.5707963267948966,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": 4.0,
|
||||||
|
"scale": 1.0,
|
||||||
|
"interactive": true,
|
||||||
|
"item": {
|
||||||
|
"id": "health_potion",
|
||||||
|
"name": "Health Potion",
|
||||||
|
"description": "Restores 50 HP",
|
||||||
|
"icon": "resources/w/red.png",
|
||||||
|
"radius": 2.0
|
||||||
|
},
|
||||||
|
"activateFunction" : "on_health_pickup"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
38
resources/config2/gameobjects2.json
Normal file
38
resources/config2/gameobjects2.json
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"name": "firebox",
|
||||||
|
"texturePath": "resources/w/Cube001.png",
|
||||||
|
"meshPath": "resources/w/firebox.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": -1.5707963267948966,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": 0.0,
|
||||||
|
"scale": 1.0,
|
||||||
|
"interactive": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "medik",
|
||||||
|
"texturePath": "resources/w/red.png",
|
||||||
|
"meshPath": "resources/w/firebox.txt",
|
||||||
|
"rotationX": 0.0,
|
||||||
|
"rotationY": -1.5707963267948966,
|
||||||
|
"rotationZ": 0.0,
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": 4.0,
|
||||||
|
"scale": 1.0,
|
||||||
|
"interactive": true,
|
||||||
|
"item": {
|
||||||
|
"id": "health_potion",
|
||||||
|
"name": "Health Potion",
|
||||||
|
"description": "Restores 50 HP",
|
||||||
|
"icon": "resources/w/red.png",
|
||||||
|
"radius": 2.0
|
||||||
|
},
|
||||||
|
"activateFunction" : "on_health_pickup"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
33
resources/config2/help.json
Normal file
33
resources/config2/help.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 30,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "helpImage",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"texture": "resources/e/menu/help.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "backButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/button_back.png",
|
||||||
|
"hover": "resources/e/menu/button_back.png",
|
||||||
|
"pressed": "resources/e/menu/button_back.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
55
resources/config2/main_menu.json
Normal file
55
resources/config2/main_menu.json
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "title",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"texture": "resources/e/menu/title.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "startButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/button_start.png",
|
||||||
|
"hover": "resources/e/menu/button_start.png",
|
||||||
|
"pressed": "resources/e/menu/button_start.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "helpButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/button_help.png",
|
||||||
|
"hover": "resources/e/menu/button_help.png",
|
||||||
|
"pressed": "resources/e/menu/button_help.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "aboutButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/button_about.png",
|
||||||
|
"hover": "resources/e/menu/button_about.png",
|
||||||
|
"pressed": "resources/e/menu/button_about.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
26
resources/config2/menu_hint1.json
Normal file
26
resources/config2/menu_hint1.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "backButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 256,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/hint1.png",
|
||||||
|
"hover": "resources/e/menu/hint1.png",
|
||||||
|
"pressed": "resources/e/menu/hint1.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
33
resources/config2/menu_loose.json
Normal file
33
resources/config2/menu_loose.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "title",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"texture": "resources/e/menu/final_loose.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Button",
|
||||||
|
"name": "backButton",
|
||||||
|
"width": 512,
|
||||||
|
"height": 128,
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/e/menu/restart_button.png",
|
||||||
|
"hover": "resources/e/menu/restart_button.png",
|
||||||
|
"pressed": "resources/e/menu/restart_button.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
22
resources/config2/menu_win.json
Normal file
22
resources/config2/menu_win.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "LinearLayout",
|
||||||
|
"orientation": "vertical",
|
||||||
|
"horizontal_align": "center",
|
||||||
|
"vertical_align": "center",
|
||||||
|
"spacing": 20,
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "title",
|
||||||
|
"width": 512,
|
||||||
|
"height": 512,
|
||||||
|
"texture": "resources/e/menu/final_win.png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
178
resources/config2/navigation.json
Normal file
178
resources/config2/navigation.json
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
{
|
||||||
|
"cellSize": 0.4,
|
||||||
|
"agentRadius": 0.45,
|
||||||
|
"floorY": 0.0,
|
||||||
|
"objectPadding": 0.25,
|
||||||
|
"areas": [
|
||||||
|
{
|
||||||
|
"name": "main_corridor",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-2.2, 0.8],
|
||||||
|
[2.2, 0.8],
|
||||||
|
[2.2, -40.8],
|
||||||
|
[-2.2, -40.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_door_05",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-3.4, -4.2],
|
||||||
|
[-2.0, -4.2],
|
||||||
|
[-2.0, -5.8],
|
||||||
|
[-3.4, -5.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_door_05",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[2.0, -4.2],
|
||||||
|
[3.4, -4.2],
|
||||||
|
[3.4, -5.8],
|
||||||
|
[2.0, -5.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_room_05",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-8.8, -1.0],
|
||||||
|
[-3.0, -1.0],
|
||||||
|
[-3.0, -9.0],
|
||||||
|
[-8.8, -9.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_room_05",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[3.0, -1.0],
|
||||||
|
[8.8, -1.0],
|
||||||
|
[8.8, -9.0],
|
||||||
|
[3.0, -9.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_door_15",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-3.4, -14.2],
|
||||||
|
[-2.0, -14.2],
|
||||||
|
[-2.0, -15.8],
|
||||||
|
[-3.4, -15.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_door_15",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[2.0, -14.2],
|
||||||
|
[3.4, -14.2],
|
||||||
|
[3.4, -15.8],
|
||||||
|
[2.0, -15.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_room_15",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-8.8, -11.0],
|
||||||
|
[-3.0, -11.0],
|
||||||
|
[-3.0, -19.0],
|
||||||
|
[-8.8, -19.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_room_15",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[3.0, -11.0],
|
||||||
|
[8.8, -11.0],
|
||||||
|
[8.8, -19.0],
|
||||||
|
[3.0, -19.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_door_25",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-3.4, -24.2],
|
||||||
|
[-2.0, -24.2],
|
||||||
|
[-2.0, -25.8],
|
||||||
|
[-3.4, -25.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_door_25",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[2.0, -24.2],
|
||||||
|
[3.4, -24.2],
|
||||||
|
[3.4, -25.8],
|
||||||
|
[2.0, -25.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_room_25",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-8.8, -21.0],
|
||||||
|
[-3.0, -21.0],
|
||||||
|
[-3.0, -29.0],
|
||||||
|
[-8.8, -29.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_room_25",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[3.0, -21.0],
|
||||||
|
[8.8, -21.0],
|
||||||
|
[8.8, -29.0],
|
||||||
|
[3.0, -29.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_door_35",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-3.4, -34.2],
|
||||||
|
[-2.0, -34.2],
|
||||||
|
[-2.0, -35.8],
|
||||||
|
[-3.4, -35.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_door_35",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[2.0, -34.2],
|
||||||
|
[3.4, -34.2],
|
||||||
|
[3.4, -35.8],
|
||||||
|
[2.0, -35.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_room_35",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-8.8, -31.0],
|
||||||
|
[-3.0, -31.0],
|
||||||
|
[-3.0, -39.0],
|
||||||
|
[-8.8, -39.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_room_35",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[3.0, -31.0],
|
||||||
|
[8.8, -31.0],
|
||||||
|
[8.8, -39.0],
|
||||||
|
[3.0, -39.0]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
202
resources/config2/navigation2.json
Normal file
202
resources/config2/navigation2.json
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
{
|
||||||
|
"cellSize": 0.4,
|
||||||
|
"agentRadius": 0.45,
|
||||||
|
"floorY": 0.0,
|
||||||
|
"objectPadding": 0.25,
|
||||||
|
"areas": [
|
||||||
|
{
|
||||||
|
"name": "main_corridor",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, 15],
|
||||||
|
[-2, 15],
|
||||||
|
[-2, 2.35],
|
||||||
|
[-32, 2.35]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor1",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-2, 3.2],
|
||||||
|
[-14.1, 3.2],
|
||||||
|
[-14.1, -25],
|
||||||
|
[-2, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor2",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, 5],
|
||||||
|
[-26.9, 5],
|
||||||
|
[-26.9, -25],
|
||||||
|
[-32, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor3",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, -5.5],
|
||||||
|
[-7.3, -5.5],
|
||||||
|
[-7.3, -8.6],
|
||||||
|
[-32, -8.6]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor4",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, -25],
|
||||||
|
[-25.7, -25],
|
||||||
|
[-25.7, -8.6],
|
||||||
|
[-32, -8.6]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor5",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-2, -25],
|
||||||
|
[-14.89, -25],
|
||||||
|
[-14.89, -8.6],
|
||||||
|
[-2, -8.6]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor6",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-2, -25],
|
||||||
|
[-32, -25],
|
||||||
|
[-32, -13.5],
|
||||||
|
[-2, -13.5]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor7",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-16.9, -25],
|
||||||
|
[-24, -25],
|
||||||
|
[-24, -8.5],
|
||||||
|
[-16.9, -8.5]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor8",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-26.1, 1.5],
|
||||||
|
[-14.9, 1.5],
|
||||||
|
[-14.9, -4.8],
|
||||||
|
[-26.1, -4.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor9",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-14, -1.2],
|
||||||
|
[-16, -1.2],
|
||||||
|
[-16, 0],
|
||||||
|
[-14, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_corridor10",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-17.2, -3],
|
||||||
|
[-16, -3],
|
||||||
|
[-16, -5.5],
|
||||||
|
[-17.2, -5.5]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "extension_left",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-400, -400],
|
||||||
|
[-32, -400],
|
||||||
|
[-32, 400],
|
||||||
|
[-400, 400]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "extension_right",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-2, -400],
|
||||||
|
[400, -400],
|
||||||
|
[400, 400],
|
||||||
|
[-2, 400]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "extension_bottom",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, -400],
|
||||||
|
[-2, -400],
|
||||||
|
[-2, -25],
|
||||||
|
[-32, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "extension_top",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[-32, 15],
|
||||||
|
[-2, 15],
|
||||||
|
[-2, 400],
|
||||||
|
[-32, 400]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cor",
|
||||||
|
"available": true,
|
||||||
|
"forbidden": true,
|
||||||
|
"polygon": [
|
||||||
|
[-26.1, 1.5],
|
||||||
|
[-17.2, 1.5],
|
||||||
|
[-17.2, 0.5],
|
||||||
|
[-26.1, 0.5]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_cor2",
|
||||||
|
"available": true,
|
||||||
|
"forbidden": true,
|
||||||
|
"polygon": [
|
||||||
|
[-22.18, -1.2],
|
||||||
|
[-17.2, -1.2],
|
||||||
|
[-17.2, -2.8],
|
||||||
|
[-22.18, -2.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_cor3",
|
||||||
|
"available": true,
|
||||||
|
"forbidden": true,
|
||||||
|
"polygon": [
|
||||||
|
[-25.69, -2.6],
|
||||||
|
[-22.5, -2.6],
|
||||||
|
[-22.5, -3.8],
|
||||||
|
[-25.69, -3.8]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "main_cor4",
|
||||||
|
"available": true,
|
||||||
|
"forbidden": true,
|
||||||
|
"polygon": [
|
||||||
|
[-23.6, -2.9],
|
||||||
|
[-22.2, -2.9],
|
||||||
|
[-22.2, -4.8],
|
||||||
|
[-23.6, -4.8]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
19
resources/config2/navigation3.json
Normal file
19
resources/config2/navigation3.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"cellSize": 0.4,
|
||||||
|
"agentRadius": 0.45,
|
||||||
|
"floorY": 0.0,
|
||||||
|
"objectPadding": 0.25,
|
||||||
|
"areas": [
|
||||||
|
{
|
||||||
|
"name": "main_corridor",
|
||||||
|
"available": true,
|
||||||
|
"polygon": [
|
||||||
|
[26, 9.5],
|
||||||
|
[14, 9.5],
|
||||||
|
[14, -8.7],
|
||||||
|
[26, -8.7]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
50
resources/config2/npcs.json
Normal file
50
resources/config2/npcs.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"npcs": [
|
||||||
|
{
|
||||||
|
"id": "npc_01_default",
|
||||||
|
"name": "NPC Default Guard",
|
||||||
|
"texturePath": "resources/w/default_skin001.png",
|
||||||
|
"animationIdlePath": "resources/w/default_idle002.anim",
|
||||||
|
"animationWalkPath": "resources/w/default_walk001.anim",
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": -10.0,
|
||||||
|
"walkSpeed": 1.5,
|
||||||
|
"rotationSpeed": 8.0,
|
||||||
|
"modelScale": 0.01,
|
||||||
|
"modelCorrectionRotX": 0.0,
|
||||||
|
"modelCorrectionRotY": 180.0,
|
||||||
|
"modelCorrectionRotZ": 0.0,
|
||||||
|
"interactionRadius": 2.0,
|
||||||
|
"gift": {
|
||||||
|
"id": "guard_token",
|
||||||
|
"name": "Guard's Token",
|
||||||
|
"description": "A token from the Guard - sign of respect",
|
||||||
|
"icon": "resources/w/red.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "npc_03_ghost",
|
||||||
|
"name": "NPC Floating Ghost",
|
||||||
|
"texturePath": "resources/w/ghost_skin001.png",
|
||||||
|
"animationIdlePath": "resources/w/default_float001.anim",
|
||||||
|
"animationWalkPath": "resources/w/default_float001.anim",
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": -5.0,
|
||||||
|
"walkSpeed": 1.5,
|
||||||
|
"rotationSpeed": 8.0,
|
||||||
|
"modelScale": 0.01,
|
||||||
|
"modelCorrectionRotX": 0.0,
|
||||||
|
"modelCorrectionRotY": 0.0,
|
||||||
|
"modelCorrectionRotZ": 0.0,
|
||||||
|
"interactionRadius": 1.0,
|
||||||
|
"gift": {
|
||||||
|
"id": "ghost_essence",
|
||||||
|
"name": "Ghost's Essence",
|
||||||
|
"description": "A mysterious essence from the Ghost realm",
|
||||||
|
"icon": "resources/w/red.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
27
resources/config2/npcs2.json
Normal file
27
resources/config2/npcs2.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"npcs": [
|
||||||
|
{
|
||||||
|
"id": "npc_03_ghost",
|
||||||
|
"name": "NPC Floating Ghost",
|
||||||
|
"texturePath": "resources/w/ghost_skin001.png",
|
||||||
|
"animationIdlePath": "resources/w/default_float001.anim",
|
||||||
|
"animationWalkPath": "resources/w/default_float001.anim",
|
||||||
|
"positionX": 0.0,
|
||||||
|
"positionY": 0.0,
|
||||||
|
"positionZ": -5.0,
|
||||||
|
"walkSpeed": 1.5,
|
||||||
|
"rotationSpeed": 8.0,
|
||||||
|
"modelScale": 0.01,
|
||||||
|
"modelCorrectionRotX": 0.0,
|
||||||
|
"modelCorrectionRotY": 0.0,
|
||||||
|
"modelCorrectionRotZ": 0.0,
|
||||||
|
"interactionRadius": 1.0,
|
||||||
|
"gift": {
|
||||||
|
"id": "ghost_essence",
|
||||||
|
"name": "Ghost's Essence",
|
||||||
|
"description": "A mysterious essence from the Ghost realm",
|
||||||
|
"icon": "resources/w/red.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
74
resources/config2/ui_inventory.json
Normal file
74
resources/config2/ui_inventory.json
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"root": {
|
||||||
|
"type": "FrameLayout",
|
||||||
|
"name": "inventory_root",
|
||||||
|
"width": "match_parent",
|
||||||
|
"height": "match_parent",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "TextButton",
|
||||||
|
"name": "inventory_button",
|
||||||
|
"x": 50.0,
|
||||||
|
"y": 50.0,
|
||||||
|
"width": 150.0,
|
||||||
|
"height": 60.0,
|
||||||
|
"text": "Inventory",
|
||||||
|
"fontSize": 24,
|
||||||
|
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||||
|
"textCentered": true,
|
||||||
|
"color": [1.0, 1.0, 1.0, 1.0],
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/w/red.png",
|
||||||
|
"hover": "resources/w/red.png",
|
||||||
|
"pressed": "resources/w/red.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "FrameLayout",
|
||||||
|
"name": "inventory_items_panel",
|
||||||
|
"x": 50.0,
|
||||||
|
"y": 150.0,
|
||||||
|
"width": 250.0,
|
||||||
|
"height": 300.0,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"type": "StaticImage",
|
||||||
|
"name": "panel_background",
|
||||||
|
"width": 200,
|
||||||
|
"height": 400,
|
||||||
|
"texture": "resources/w/red.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "TextView",
|
||||||
|
"name": "inventory_items_text",
|
||||||
|
"x": -100.0,
|
||||||
|
"y": -100.0,
|
||||||
|
"width": 250.0,
|
||||||
|
"height": 300.0,
|
||||||
|
"text": "Inventory (Empty)",
|
||||||
|
"fontSize": 18,
|
||||||
|
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||||
|
"centered": false,
|
||||||
|
"color": [1.0, 1.0, 1.0, 1.0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "TextButton",
|
||||||
|
"name": "close_inventory_button",
|
||||||
|
"x": 165.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"width": 40.0,
|
||||||
|
"height": 40.0,
|
||||||
|
"text": "X",
|
||||||
|
"fontSize": 20,
|
||||||
|
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||||
|
"textCentered": true,
|
||||||
|
"color": [1.0, 1.0, 1.0, 1.0],
|
||||||
|
"textures": {
|
||||||
|
"normal": "resources/w/blue.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
resources/connecting.png
(Stored with Git LFS)
BIN
resources/connecting.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/connection_failed.png
(Stored with Git LFS)
BIN
resources/connection_failed.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/connection_lost.png
(Stored with Git LFS)
BIN
resources/connection_lost.png
(Stored with Git LFS)
Binary file not shown.
BIN
resources/dialogue/choice_main.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/choice_main.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/dialogue/choice_optional.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/choice_optional.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/dialogue/choice_selected.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/choice_selected.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/dialogue/cutscene_subtitle_bg.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/cutscene_subtitle_bg.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/dialogue/portrait_frame.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/portrait_frame.png
(Stored with Git LFS)
Normal file
Binary file not shown.
1543
resources/dialogue/sample_dialogues.json
Normal file
1543
resources/dialogue/sample_dialogues.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/dialogue/textbox_bg.png
(Stored with Git LFS)
Normal file
BIN
resources/dialogue/textbox_bg.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/e/Salesperson_packed0_diffuse.png
(Stored with Git LFS)
Normal file
BIN
resources/e/Salesperson_packed0_diffuse.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/e/Salesperson_packed1_diffuse.png
(Stored with Git LFS)
Normal file
BIN
resources/e/Salesperson_packed1_diffuse.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/e/Salesperson_packed2_diffuse.png
(Stored with Git LFS)
Normal file
BIN
resources/e/Salesperson_packed2_diffuse.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
resources/e/Wheel_base002.png
(Stored with Git LFS)
Normal file
BIN
resources/e/Wheel_base002.png
(Stored with Git LFS)
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user