Konata animation test
This commit is contained in:
parent
9010b5e821
commit
89a7084a1f
14 changed files with 1373 additions and 870 deletions
BIN
Data/resources/models/konata/8e5eedd8.png
Normal file
BIN
Data/resources/models/konata/8e5eedd8.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
BIN
Data/resources/models/konata/994ecdee.png
Normal file
BIN
Data/resources/models/konata/994ecdee.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
Data/resources/models/konata/Konata.fbx
Normal file
BIN
Data/resources/models/konata/Konata.fbx
Normal file
Binary file not shown.
1173
Data/resources/models/konata/Konata_PistolAnimations.dae
Normal file
1173
Data/resources/models/konata/Konata_PistolAnimations.dae
Normal file
File diff suppressed because one or more lines are too long
BIN
Data/resources/models/konata/Konata_PistolAnimations.fbx
Normal file
BIN
Data/resources/models/konata/Konata_PistolAnimations.fbx
Normal file
Binary file not shown.
BIN
Data/resources/models/konata/b93e90b3.png
Normal file
BIN
Data/resources/models/konata/b93e90b3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
|
@ -19,7 +19,7 @@ out vec3 v_bitangent;
|
||||||
|
|
||||||
out float v_id;
|
out float v_id;
|
||||||
|
|
||||||
const int MAX_BONES = 48;
|
const int MAX_BONES = 96;
|
||||||
uniform mat4 u_bones[MAX_BONES];
|
uniform mat4 u_bones[MAX_BONES];
|
||||||
uniform int u_has_bones;
|
uniform int u_has_bones;
|
||||||
|
|
||||||
|
|
|
@ -1,742 +1,111 @@
|
||||||
[04:00:32 AM] Info: Starting...
|
[04:12:58 PM] Info: Starting...
|
||||||
|
|
||||||
KP3D version 2
|
KP3D version 2
|
||||||
===============================
|
===============================
|
||||||
Copyright (C) kpworld.xyz 2018-2024
|
Copyright (C) kpworld.xyz 2018-2024
|
||||||
Contact me! @kp_cftsz
|
Contact me! @kp_cftsz
|
||||||
|
|
||||||
[04:00:32 AM] Info: Initializing SDL
|
[04:12:58 PM] Info: Initializing SDL
|
||||||
[04:00:32 AM] Info: Initializing OpenGL
|
[04:12:58 PM] Info: Initializing OpenGL
|
||||||
[04:00:32 AM] Info: OpenGL version: 4.6.0 NVIDIA 536.23
|
[04:12:58 PM] Info: OpenGL version: 4.6.0 NVIDIA 536.23
|
||||||
[04:00:32 AM] Info: Initializing GLEW
|
[04:12:58 PM] Info: Initializing GLEW
|
||||||
[04:00:32 AM] Info: Initializing SDL_mixer
|
[04:12:58 PM] Info: Initializing SDL_mixer
|
||||||
[04:00:32 AM] Info: Reticulating splines...
|
[04:12:58 PM] Info: Reticulating splines...
|
||||||
[04:00:32 AM] Info: Ready!
|
[04:12:59 PM] Info: Ready!
|
||||||
[04:00:32 AM] Info: Loading script: build-cylinder.scm
|
[04:12:59 PM] Info: Loading script: build-cylinder.scm
|
||||||
[04:00:32 AM] Info: Loading script: build-stairs.scm
|
[04:12:59 PM] Info: Loading script: build-stairs.scm
|
||||||
[04:00:32 AM] Info: Loading material resource: block.png
|
[04:12:59 PM] Info: Loading material resource: block.png
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/block_n.png
|
[04:12:59 PM] Info: Found normal map texture: materials/block_n.png
|
||||||
[04:00:32 AM] Info: Loading material resource: brick2.jpg
|
[04:12:59 PM] Info: Loading material resource: brick2.jpg
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/brick2_n.jpg
|
[04:12:59 PM] Info: Found normal map texture: materials/brick2_n.jpg
|
||||||
[04:00:32 AM] Info: Loading material resource: bricks.jpg
|
[04:12:59 PM] Info: Loading material resource: bricks.jpg
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/bricks_n.jpg
|
[04:12:59 PM] Info: Found normal map texture: materials/bricks_n.jpg
|
||||||
[04:00:32 AM] Info: Loading material resource: FLAT5_7.png
|
[04:12:59 PM] Info: Loading material resource: FLAT5_7.png
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/FLAT5_7_n.png
|
[04:12:59 PM] Info: Found normal map texture: materials/FLAT5_7_n.png
|
||||||
[04:00:32 AM] Info: Loading material resource: floor0.png
|
[04:12:59 PM] Info: Loading material resource: floor0.png
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/floor0_n.png
|
[04:12:59 PM] Info: Found normal map texture: materials/floor0_n.png
|
||||||
[04:00:32 AM] Info: Loading material resource: floor1.png
|
[04:12:59 PM] Info: Loading material resource: floor1.png
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/floor1_n.png
|
[04:12:59 PM] Info: Found normal map texture: materials/floor1_n.png
|
||||||
[04:00:32 AM] Info: Loading material resource: GRASS2.png
|
[04:12:59 PM] Info: Loading material resource: GRASS2.png
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/GRASS2_n.png
|
[04:12:59 PM] Info: Found normal map texture: materials/GRASS2_n.png
|
||||||
[04:00:32 AM] Info: Loading material resource: hardwood.jpg
|
[04:12:59 PM] Info: Loading material resource: hardwood.jpg
|
||||||
[04:00:32 AM] Info: Found normal map texture: materials/hardwood_n.jpg
|
[04:12:59 PM] Info: Found normal map texture: materials/hardwood_n.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/banner.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/banner.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/crosshair.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/crosshair.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/empty.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/empty.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/logo.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/logo.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/map_grid.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/map_grid.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/not_found.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/not_found.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/skybox.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/skybox.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/uv_test.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/uv_test.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: .kp3d/water.png
|
[04:12:59 PM] Info: Loading texture resource: .kp3d/water.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: dot.png
|
[04:12:59 PM] Info: Loading texture resource: dot.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: editor/stem.png
|
[04:12:59 PM] Info: Loading texture resource: editor/stem.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: logo.png
|
[04:12:59 PM] Info: Loading texture resource: logo.png
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/sky50e2dd1d496fc.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/sky50e2dd1d496fc.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/sky8.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/sky8.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/sky9.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/sky9.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/skybox.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/skybox.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/skybox_11.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/skybox_11.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/skybox_14.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/skybox_14.jpg
|
||||||
[04:00:32 AM] Info: Loading texture resource: skyboxes/skybox_15.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/skybox_15.jpg
|
||||||
[04:00:33 AM] Info: Loading texture resource: skyboxes/skybox_3.jpg
|
[04:12:59 PM] Info: Loading texture resource: skyboxes/skybox_3.jpg
|
||||||
[04:00:33 AM] Info: Loading texture resource: skybox_16.jpg
|
[04:12:59 PM] Info: Loading texture resource: skybox_16.jpg
|
||||||
[04:00:33 AM] Info: FOUND ANIMATION: seal.qc_skeleton_seal.qc_skeleton, 0
|
[04:12:59 PM] Info: # of bones for model konata/Konata_PistolAnimations.dae: 23
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_body2: 1208
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Pelvis: 432
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_body1: 2068
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine: 279
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_head: 2188
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine1: 350
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyeupper_l: 648
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine2: 515
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyelower_l: 359
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine4: 132
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyeupper_r: 636
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Neck1: 25
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyelower_r: 359
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Head1: 6
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_jowl_l: 666
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Clavicle: 219
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_jowl_r: 818
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_UpperArm: 226
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_flipper1_l: 272
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Forearm: 342
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_flipper2_l: 304
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Hand: 254
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_flipper1_r: 272
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Clavicle: 172
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_flipper2_r: 304
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_UpperArm: 208
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_body3: 1320
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Forearm: 333
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_body4: 1436
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Hand: 248
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_body5: 1436
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Thigh: 475
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_backflipper_r: 1358
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Calf: 382
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_backflipper_l: 1358
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Foot: 319
|
||||||
[04:00:33 AM] Info: FOUND TEXTURE: seal.png
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Toe0: 159
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_head: 24
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Thigh: 490
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyeupper_l: 30
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Calf: 359
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyelower_l: 36
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Foot: 304
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyeupper_r: 30
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Toe0: 154
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_eyelower_r: 36
|
[04:12:59 PM] Info: # of bones for model konata/Konata_PistolAnimations.dae: 7
|
||||||
[04:00:33 AM] Info: FOUND TEXTURE: seal.png
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine: 312
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_jowl_l: 12
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine1: 168
|
||||||
[04:00:33 AM] Info: Num weights for seal_qc_skeleton_jowl_r: 12
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine2: 164
|
||||||
[04:00:33 AM] Info: FOUND TEXTURE: seal_whiskers.png
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine4: 154
|
||||||
[04:00:33 AM] Info: Map init
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Neck1: 408
|
||||||
[04:00:33 AM] Info: Finalized mesh with 49 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Head1: 3912
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Clavicle: 14
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: # of bones for model konata/Konata_PistolAnimations.dae: 8
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine2: 30
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Spine4: 26
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Neck1: 123
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_Head1: 1027
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_Clavicle: 87
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_R_UpperArm: 5
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_Clavicle: 64
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Num weights for Konatap_ARM_ValveBiped_Bip01_L_UpperArm: 3
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Map init
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:12:59 PM] Info: Finalized mesh with 49 batches
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:13:05 PM] Info: Starting animation
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:13:14 PM] Info: Starting animation
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:13:19 PM] Info: Starting animation
|
||||||
[04:00:42 AM] Info: Finalized mesh with 48 batches
|
[04:13:26 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:27 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:30 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:30 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:31 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:31 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:31 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:32 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:32 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:32 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:33 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
[04:13:34 PM] Info: Starting animation
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:44 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:45 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:46 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:47 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:57 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:58 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:00:59 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:05 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:06 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:07 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:09 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:10 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:14 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:17 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:18 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:19 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:20 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:23 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:29 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:31 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:31 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:32 AM] Info: Finalized mesh with 48 batches
|
|
||||||
[04:01:37 AM] Info: Starting animation
|
|
||||||
[04:01:46 AM] Info: Finalized mesh with 54 batches
|
|
||||||
[04:01:51 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:01:54 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:02:07 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:02:15 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:02:17 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:02:19 AM] Info: Finalized mesh with 53 batches
|
|
||||||
[04:02:38 AM] Info: Finalized mesh with 53 batches
|
|
||||||
|
|
|
@ -1,28 +1,30 @@
|
||||||
#include "KP3D_Model.h"
|
#include "KP3D_Model.h"
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
#include <assimp/postprocess.h>
|
#include <assimp/postprocess.h>
|
||||||
|
|
||||||
#include "KP3D_EventBus.h"
|
#include "KP3D_EventBus.h"
|
||||||
#include "KP3D_SystemUtils.h"
|
#include "KP3D_SystemUtils.h"
|
||||||
#include "KP3D_Log.h"
|
#include "KP3D_Log.h"
|
||||||
#include "KP3D_Time.h"
|
#include "KP3D_Time.h"
|
||||||
|
#include "KP3D_Renderer2D.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
#define TRANSPOSE_AI 0
|
#define TRANSPOSE_AI 0
|
||||||
|
|
||||||
using namespace kp3d;
|
kp3d::Mat4 ConvertAssimpMatrix(const aiMatrix4x4& in)
|
||||||
Mat4 aimattokp3dmat(const aiMatrix4x4& in)
|
|
||||||
{
|
{
|
||||||
Mat4 val;
|
kp3d::Mat4 mat;
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
for (int j = 0; j < 4; j++)
|
for (int j = 0; j < 4; j++)
|
||||||
#if TRANSPOSE_AI
|
#if TRANSPOSE_AI
|
||||||
val.mat[i + j * 4] = in[j][i];
|
val.mat[i + j * 4] = in[j][i];
|
||||||
#else
|
#else
|
||||||
val.mat[i + j * 4] = in[i][j];
|
mat.mat[i + j * 4] = in[i][j];
|
||||||
#endif
|
#endif
|
||||||
return val;
|
return mat;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -54,47 +56,7 @@ Model::~Model()
|
||||||
|
|
||||||
ErrCode Model::Load(const std::string& path, const std::string& main_texture_path)
|
ErrCode Model::Load(const std::string& path, const std::string& main_texture_path)
|
||||||
{
|
{
|
||||||
return LoadModel(
|
return LoadModel(path);
|
||||||
path,
|
|
||||||
main_texture_path,
|
|
||||||
[&]()
|
|
||||||
{
|
|
||||||
if (!main_texture_path.empty())
|
|
||||||
{
|
|
||||||
m_textures.push_back(new Texture());
|
|
||||||
m_textures.back()->Load(main_texture_path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ErrCode Model::LoadCached(
|
|
||||||
const std::string& path,
|
|
||||||
const std::string& main_texture_path,
|
|
||||||
std::vector<RawTexture*>& raw_texture_data,
|
|
||||||
TextureCache& texture_cache
|
|
||||||
)
|
|
||||||
{
|
|
||||||
Model* self = this;
|
|
||||||
|
|
||||||
return LoadModel(
|
|
||||||
path,
|
|
||||||
main_texture_path,
|
|
||||||
[&]()
|
|
||||||
{
|
|
||||||
KP3D_LOG_ERROR("Model::LoadCached() disabled");
|
|
||||||
// TODO: Re-enable me!
|
|
||||||
// raw_texture_data.push_back(new RawTexture(main_texture_path));
|
|
||||||
// TextureLoadEvent* event = new TextureLoadEvent(main_texture_path, raw_texture_data.size() - 1);
|
|
||||||
// event->dependent_model = self;
|
|
||||||
// EventBus::GetInstance().PublishDeferred(event);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Model::AddTexture(Texture* texture)
|
|
||||||
{
|
|
||||||
m_textures.push_back(texture);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Model::GetPath() const
|
std::string Model::GetPath() const
|
||||||
|
@ -189,7 +151,7 @@ void Model::ParseSingleBone(MeshDef& def, const aiBone* bone)
|
||||||
|
|
||||||
if (bone_id == m_bone_info.size())
|
if (bone_id == m_bone_info.size())
|
||||||
{
|
{
|
||||||
Mat4 offset = aimattokp3dmat(bone->mOffsetMatrix);
|
Mat4 offset = ConvertAssimpMatrix(bone->mOffsetMatrix);
|
||||||
BoneInfo bi(offset);
|
BoneInfo bi(offset);
|
||||||
m_bone_info.push_back(bi);
|
m_bone_info.push_back(bi);
|
||||||
}
|
}
|
||||||
|
@ -229,11 +191,14 @@ void Model::GetBoneTransforms(float seconds, std::vector<Mat4>& transforms)
|
||||||
if (!m_has_bones)
|
if (!m_has_bones)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
float animation_time_ticks = 0.0f;
|
||||||
|
if (m_scene->HasAnimations())
|
||||||
|
{
|
||||||
const aiAnimation* animation = m_scene->mAnimations[m_animation_index];
|
const aiAnimation* animation = m_scene->mAnimations[m_animation_index];
|
||||||
|
|
||||||
float ticks_per_second = (float)(animation->mTicksPerSecond != 0 ? animation->mTicksPerSecond : 25.0f);
|
float ticks_per_second = (float)(animation->mTicksPerSecond != 0 ? animation->mTicksPerSecond : 25.0f);
|
||||||
float time_in_ticks = seconds * ticks_per_second;
|
float time_in_ticks = seconds * ticks_per_second;
|
||||||
float animation_time_ticks = fmod(time_in_ticks, (float) animation->mDuration);
|
animation_time_ticks = fmod(time_in_ticks, (float)animation->mDuration);
|
||||||
|
}
|
||||||
|
|
||||||
Mat4 identity;
|
Mat4 identity;
|
||||||
identity.InitIdentity();
|
identity.InitIdentity();
|
||||||
|
@ -251,8 +216,10 @@ void Model::ReadNodeHierarchy(float ticks, const aiNode* node, const Mat4& paren
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::string node_name(node->mName.data);
|
std::string node_name(node->mName.data);
|
||||||
Mat4 node_transformation = aimattokp3dmat(node->mTransformation);
|
Mat4 node_transformation = ConvertAssimpMatrix(node->mTransformation);
|
||||||
|
|
||||||
|
if (m_scene->HasAnimations())
|
||||||
|
{
|
||||||
const aiAnimation* animation = m_scene->mAnimations[m_animation_index];
|
const aiAnimation* animation = m_scene->mAnimations[m_animation_index];
|
||||||
const aiNodeAnim* node_anim = FindNodeAnim(animation, node_name);
|
const aiNodeAnim* node_anim = FindNodeAnim(animation, node_name);
|
||||||
if (node_anim)
|
if (node_anim)
|
||||||
|
@ -280,12 +247,13 @@ void Model::ReadNodeHierarchy(float ticks, const aiNode* node, const Mat4& paren
|
||||||
// Combine the above transformations for a complete transformation matrix
|
// Combine the above transformations for a complete transformation matrix
|
||||||
node_transformation = translation_m * rotation_m * scaling_m;
|
node_transformation = translation_m * rotation_m * scaling_m;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Mat4 global_transformation = parent_transform * node_transformation;
|
Mat4 global_transformation = parent_transform * node_transformation;
|
||||||
|
|
||||||
if (m_bone_name_to_index_map.count(node_name))
|
if (m_bone_name_to_index_map.count(node_name))
|
||||||
{
|
{
|
||||||
Mat4 git = aimattokp3dmat(m_global_inverse_transform);
|
Mat4 git = ConvertAssimpMatrix(m_global_inverse_transform);
|
||||||
|
|
||||||
uint bone_idx = m_bone_name_to_index_map[node_name];
|
uint bone_idx = m_bone_name_to_index_map[node_name];
|
||||||
m_bone_info[bone_idx].final_transformation = git * global_transformation * m_bone_info[bone_idx].offset_matrix;
|
m_bone_info[bone_idx].final_transformation = git * global_transformation * m_bone_info[bone_idx].offset_matrix;
|
||||||
|
@ -414,31 +382,17 @@ const aiNodeAnim* Model::FindNodeAnim(const aiAnimation* animation, const std::s
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
ErrCode Model::LoadModel(const std::string& path, const std::string& main_texture_path, std::function<void(void)> load_textures)
|
ErrCode Model::LoadModel(const std::string& path)
|
||||||
{
|
{
|
||||||
std::string kp3d_path = sys::GetModelDir() + path;
|
std::string kp3d_path = sys::GetModelDir() + path;
|
||||||
|
|
||||||
m_path = path;
|
m_path = path;
|
||||||
|
|
||||||
// Quick reset
|
|
||||||
m_meshes.clear();
|
m_meshes.clear();
|
||||||
m_textures.clear();
|
m_textures.clear();
|
||||||
m_vertices = 0;
|
m_vertices = 0;
|
||||||
m_faces = 0;
|
m_faces = 0;
|
||||||
|
|
||||||
// Run the texture loading routine (this can vary based on how we've decided to load the model)
|
|
||||||
//if (load_textures)
|
|
||||||
// load_textures();
|
|
||||||
|
|
||||||
// TODO: Retarded busy-waiting, fix whenever I restructure this
|
|
||||||
//
|
|
||||||
// Another consideration: Do we even need to do this if it's using the texture cache? I mean we can do this busy-waiting as a
|
|
||||||
// fallback and just load whatever textures are in the store by default, because the way the editor/games work is that ALL
|
|
||||||
// textures in textures/, including textures/tex3d/ (where model textures go) are loaded in one go
|
|
||||||
//
|
|
||||||
//while (!m_textures.size())
|
|
||||||
// std::this_thread::sleep_for(std::chrono::milliseconds(50));
|
|
||||||
|
|
||||||
std::string parent_dir = kp3d_path.substr(0, kp3d_path.find_last_of("/\\"));
|
std::string parent_dir = kp3d_path.substr(0, kp3d_path.find_last_of("/\\"));
|
||||||
|
|
||||||
m_scene = m_importer.ReadFile(
|
m_scene = m_importer.ReadFile(
|
||||||
|
@ -452,17 +406,12 @@ ErrCode Model::LoadModel(const std::string& path, const std::string& main_textur
|
||||||
m_global_inverse_transform = m_scene->mRootNode->mTransformation;
|
m_global_inverse_transform = m_scene->mRootNode->mTransformation;
|
||||||
m_global_inverse_transform = m_scene->mRootNode->mTransformation.Inverse();
|
m_global_inverse_transform = m_scene->mRootNode->mTransformation.Inverse();
|
||||||
|
|
||||||
// exit(1);
|
|
||||||
|
|
||||||
// TODO: Go through the scene's material information and try to grab diffuse, AO, normal map, etc. textures...
|
|
||||||
|
|
||||||
if (m_scene->HasAnimations())
|
if (m_scene->HasAnimations())
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < m_scene->mNumAnimations; i++)
|
for (size_t i = 0; i < m_scene->mNumAnimations; i++)
|
||||||
{
|
{
|
||||||
std::string name(m_scene->mAnimations[i]->mName.C_Str());
|
std::string name(m_scene->mAnimations[i]->mName.C_Str());
|
||||||
m_animation_map.emplace(name, i);
|
m_animation_map.emplace(name, i);
|
||||||
KP3D_LOG_INFO("FOUND ANIMATION: {}, {}", name, i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -502,6 +451,7 @@ ErrCode Model::LoadModel(const std::string& path, const std::string& main_textur
|
||||||
|
|
||||||
if (model->HasBones())
|
if (model->HasBones())
|
||||||
{
|
{
|
||||||
|
KP3D_LOG_INFO("# of bones for model {}: {}", m_path, model->mNumBones);
|
||||||
m_has_bones = true;
|
m_has_bones = true;
|
||||||
def.bones.resize(def.vertices.size());
|
def.bones.resize(def.vertices.size());
|
||||||
ParseBones(def, model);
|
ParseBones(def, model);
|
||||||
|
@ -511,30 +461,33 @@ ErrCode Model::LoadModel(const std::string& path, const std::string& main_textur
|
||||||
def.base_index = m_faces * 3;
|
def.base_index = m_faces * 3;
|
||||||
|
|
||||||
Texture* tex = nullptr,* normal_tex = nullptr;
|
Texture* tex = nullptr,* normal_tex = nullptr;
|
||||||
|
const Texture* default_tex = &Renderer2D::GetDefaultTexture();
|
||||||
if (m_scene->HasMaterials())
|
if (m_scene->HasMaterials())
|
||||||
{
|
{
|
||||||
aiString path;
|
aiString path;
|
||||||
if (!m_scene->mMaterials[model->mMaterialIndex]->GetTexture(aiTextureType_DIFFUSE, 0, &path))
|
if (!m_scene->mMaterials[model->mMaterialIndex]->GetTexture(aiTextureType_DIFFUSE, 0, &path))
|
||||||
{
|
{
|
||||||
|
std::string tex_path(path.C_Str());
|
||||||
|
tex_path = std::filesystem::path(tex_path).filename().string();
|
||||||
tex = new Texture();
|
tex = new Texture();
|
||||||
tex->Load("$" + parent_dir + "/" + path.C_Str(), false, Texture::FILTER_LINEAR);
|
tex->Load("$" + parent_dir + "/" + tex_path, false, Texture::FILTER_LINEAR);
|
||||||
m_textures.push_back(tex);
|
m_textures.push_back(tex);
|
||||||
KP3D_LOG_INFO("FOUND TEXTURE: {}", path.C_Str());
|
|
||||||
}
|
}
|
||||||
aiString normal_path;
|
aiString normal_path;
|
||||||
if (!m_scene->mMaterials[model->mMaterialIndex]->GetTexture(aiTextureType_NORMALS, 0, &path))
|
if (!m_scene->mMaterials[model->mMaterialIndex]->GetTexture(aiTextureType_NORMALS, 0, &path))
|
||||||
{
|
{
|
||||||
|
std::string tex_path(path.C_Str());
|
||||||
|
tex_path = std::filesystem::path(tex_path).filename().string();
|
||||||
normal_tex = new Texture();
|
normal_tex = new Texture();
|
||||||
normal_tex->Load("$" + parent_dir + "/" + path.C_Str(), false, Texture::FILTER_LINEAR);
|
normal_tex->Load("$" + parent_dir + "/" + tex_path, false, Texture::FILTER_LINEAR);
|
||||||
m_normal_textures.push_back(normal_tex);
|
m_normal_textures.push_back(normal_tex);
|
||||||
KP3D_LOG_INFO("FOUND NORMAL TEXTURE: {}", path.C_Str());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model->HasBones())
|
if (model->HasBones())
|
||||||
m->AddSkinnedBatch(tex, def.vertices, def.indices, def.bones, false, normal_tex);
|
m->AddSkinnedBatch(tex ? tex : default_tex, def.vertices, def.indices, def.bones, false, normal_tex);
|
||||||
else
|
else
|
||||||
m->AddIndexedBatch(tex, def.vertices, def.indices, normal_tex);
|
m->AddIndexedBatch(tex ? tex : default_tex, def.vertices, def.indices, normal_tex);
|
||||||
|
|
||||||
m->Finalize();
|
m->Finalize();
|
||||||
m_meshes.push_back(m);
|
m_meshes.push_back(m);
|
||||||
|
|
|
@ -23,15 +23,6 @@ public:
|
||||||
~Model();
|
~Model();
|
||||||
|
|
||||||
ErrCode Load(const std::string& path, const std::string& main_texture_path = "");
|
ErrCode Load(const std::string& path, const std::string& main_texture_path = "");
|
||||||
// TODO: Remove this, realized I don't really need it
|
|
||||||
ErrCode LoadCached(
|
|
||||||
const std::string& path,
|
|
||||||
const std::string& main_texture_path,
|
|
||||||
std::vector<RawTexture*>& raw_texture_data,
|
|
||||||
TextureCache& texture_cache
|
|
||||||
);
|
|
||||||
|
|
||||||
void AddTexture(Texture* texture);
|
|
||||||
|
|
||||||
std::string GetPath() const;
|
std::string GetPath() const;
|
||||||
|
|
||||||
|
@ -70,7 +61,7 @@ private:
|
||||||
void CalcInterpRotation(aiQuaternion& out, float ticks, const aiNodeAnim* node_anim);
|
void CalcInterpRotation(aiQuaternion& out, float ticks, const aiNodeAnim* node_anim);
|
||||||
void CalcInterpScaling(aiVector3D& out, float ticks, const aiNodeAnim* node_anim);
|
void CalcInterpScaling(aiVector3D& out, float ticks, const aiNodeAnim* node_anim);
|
||||||
const aiNodeAnim* FindNodeAnim(const aiAnimation* animation, const std::string& node_name);
|
const aiNodeAnim* FindNodeAnim(const aiAnimation* animation, const std::string& node_name);
|
||||||
ErrCode LoadModel(const std::string& path, const std::string& main_texture_path, std::function<void(void)> load_textures);
|
ErrCode LoadModel(const std::string& path);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Texture* m_main_texture;
|
Texture* m_main_texture;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include "KP3D_Texture.h"
|
#include "KP3D_Texture.h"
|
||||||
|
|
||||||
#define MAX_NUM_BONES_PER_VERTEX 4
|
#define MAX_NUM_BONES_PER_VERTEX 4
|
||||||
#define MAX_BONES 48
|
#define MAX_BONES 96
|
||||||
|
|
||||||
namespace kp3d {
|
namespace kp3d {
|
||||||
|
|
||||||
|
|
|
@ -238,9 +238,9 @@ void Editor::Update()
|
||||||
|
|
||||||
#define KEY_SHORTCUT(key, action) if (sandbox->IsKeyDown(kp3d::KEY_##key)) { action; sandbox->KeyReset(kp3d::KEY_##key); }
|
#define KEY_SHORTCUT(key, action) if (sandbox->IsKeyDown(kp3d::KEY_##key)) { action; sandbox->KeyReset(kp3d::KEY_##key); }
|
||||||
|
|
||||||
KEY_SHORTCUT(SPACE, m_mode = MODE_NORMAL);
|
KEY_SHORTCUT(SPACE, SetMode(MODE_NORMAL));
|
||||||
KEY_SHORTCUT(V, m_mode = MODE_BUILD);
|
KEY_SHORTCUT(V, SetMode(MODE_BUILD));
|
||||||
KEY_SHORTCUT(T, m_mode = MODE_THINGS);
|
KEY_SHORTCUT(T, SetMode(MODE_THINGS));
|
||||||
KEY_SHORTCUT(Z, {
|
KEY_SHORTCUT(Z, {
|
||||||
if (sandbox->IsKeyDown(kp3d::KEY_LCTRL))
|
if (sandbox->IsKeyDown(kp3d::KEY_LCTRL))
|
||||||
Undo();
|
Undo();
|
||||||
|
@ -252,6 +252,7 @@ void Editor::Update()
|
||||||
KEY_SHORTCUT(F1, sandbox->map.render_wireframe ^= 1);
|
KEY_SHORTCUT(F1, sandbox->map.render_wireframe ^= 1);
|
||||||
KEY_SHORTCUT(F2, show_grid ^= 1);
|
KEY_SHORTCUT(F2, show_grid ^= 1);
|
||||||
KEY_SHORTCUT(TAB, show_selection_info ^= 1);
|
KEY_SHORTCUT(TAB, show_selection_info ^= 1);
|
||||||
|
KEY_SHORTCUT(Q, Deselect());
|
||||||
|
|
||||||
switch (m_mode)
|
switch (m_mode)
|
||||||
{
|
{
|
||||||
|
@ -308,6 +309,20 @@ void Editor::RebuildMap()
|
||||||
m_build_time = kp3d::CurrentTimeInMilliseconds().count() - start;
|
m_build_time = kp3d::CurrentTimeInMilliseconds().count() - start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Editor::SetMode(EditMode mode)
|
||||||
|
{
|
||||||
|
Deselect();
|
||||||
|
m_mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Editor::Deselect()
|
||||||
|
{
|
||||||
|
kp3d::editor_hovered_batch.clear();
|
||||||
|
m_selected_thing = nullptr;
|
||||||
|
points.clear();
|
||||||
|
build_has_start_pos = false;
|
||||||
|
}
|
||||||
|
|
||||||
void Editor::UpdateModeBuild()
|
void Editor::UpdateModeBuild()
|
||||||
{
|
{
|
||||||
if (sandbox->IsMouseButtonDown(kp3d::MOUSE_BUTTON_LEFT) && !build_show_options)
|
if (sandbox->IsMouseButtonDown(kp3d::MOUSE_BUTTON_LEFT) && !build_show_options)
|
||||||
|
@ -993,8 +1008,6 @@ void Editor::RenderModeThings()
|
||||||
nullptr
|
nullptr
|
||||||
);
|
);
|
||||||
editing_gizmo = ImGuizmo::IsOver();
|
editing_gizmo = ImGuizmo::IsOver();
|
||||||
// if (v)
|
|
||||||
{
|
|
||||||
float translation[3], rotation[3], scale[3];
|
float translation[3], rotation[3], scale[3];
|
||||||
ImGuizmo::DecomposeMatrixToComponents(tmp, translation, rotation, scale);
|
ImGuizmo::DecomposeMatrixToComponents(tmp, translation, rotation, scale);
|
||||||
m_selected_thing->transform.translation = {translation[0], translation[1], translation[2]};
|
m_selected_thing->transform.translation = {translation[0], translation[1], translation[2]};
|
||||||
|
@ -1005,7 +1018,6 @@ void Editor::RenderModeThings()
|
||||||
};
|
};
|
||||||
m_selected_thing->transform.scale = {scale[0], scale[1], scale[2]};
|
m_selected_thing->transform.scale = {scale[0], scale[1], scale[2]};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void Editor::RenderUI()
|
void Editor::RenderUI()
|
||||||
{
|
{
|
||||||
|
@ -1030,9 +1042,11 @@ void Editor::RenderUI()
|
||||||
}
|
}
|
||||||
if (ImGui::BeginMenu("Mode"))
|
if (ImGui::BeginMenu("Mode"))
|
||||||
{
|
{
|
||||||
if (ImGui::MenuItem("Normal Mode", "Space", m_mode == MODE_NORMAL)) m_mode = MODE_NORMAL;
|
if (ImGui::MenuItem("Normal Mode", "Space", m_mode == MODE_NORMAL)) SetMode(MODE_NORMAL);
|
||||||
if (ImGui::MenuItem("Build Mode", "V", m_mode == MODE_BUILD)) m_mode = MODE_BUILD;
|
if (ImGui::MenuItem("Build Mode", "V", m_mode == MODE_BUILD)) SetMode(MODE_BUILD);
|
||||||
if (ImGui::MenuItem("Things Mode", "T", m_mode == MODE_THINGS)) m_mode = MODE_THINGS;
|
if (ImGui::MenuItem("Things Mode", "T", m_mode == MODE_THINGS)) SetMode(MODE_THINGS);
|
||||||
|
ImGui::Separator();
|
||||||
|
if (ImGui::MenuItem("Clear Selection", "Q")) Deselect();
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
if (ImGui::BeginMenu("View"))
|
if (ImGui::BeginMenu("View"))
|
||||||
|
|
|
@ -43,6 +43,9 @@ public:
|
||||||
void RenderStem(kp3d::Vec3 position);
|
void RenderStem(kp3d::Vec3 position);
|
||||||
void RebuildMap();
|
void RebuildMap();
|
||||||
|
|
||||||
|
void SetMode(EditMode mode);
|
||||||
|
void Deselect();
|
||||||
|
|
||||||
void UpdateModeBuild();
|
void UpdateModeBuild();
|
||||||
void RenderModeBuild();
|
void RenderModeBuild();
|
||||||
void UpdateModeNormal();
|
void UpdateModeNormal();
|
||||||
|
|
|
@ -20,7 +20,7 @@ Sandbox::Sandbox(const std::string& path):
|
||||||
kp3d::res::LoadTextures();
|
kp3d::res::LoadTextures();
|
||||||
|
|
||||||
seal.noflip = true;
|
seal.noflip = true;
|
||||||
seal.Load("seal/seal.dae");
|
seal.Load("konata/Konata_PistolAnimations.dae");
|
||||||
|
|
||||||
tex.Load("logo.png");
|
tex.Load("logo.png");
|
||||||
crosshair.Load(".kp3d/crosshair.png");
|
crosshair.Load(".kp3d/crosshair.png");
|
||||||
|
@ -123,7 +123,7 @@ void Sandbox::Render()
|
||||||
if (m_mode == MODE_EDIT)
|
if (m_mode == MODE_EDIT)
|
||||||
editor.RenderMap();
|
editor.RenderMap();
|
||||||
kp3d::Renderer3D::DrawBillboard(tex, {}, { 1, 1 });
|
kp3d::Renderer3D::DrawBillboard(tex, {}, { 1, 1 });
|
||||||
kp3d::Transform trans{ {-2.0f, 0.0f, -2.0f}, {kp3d::ToRadians(-90), 0, 0}, kp3d::Vec3(0.1f)};
|
kp3d::Transform trans{ {0.0f, 0.0f, 0}, {kp3d::ToRadians(-90), 0, 0}, kp3d::Vec3(1.0f)};
|
||||||
kp3d::Renderer3D::PushShader(kp3d::Renderer3D::GetMapShader());
|
kp3d::Renderer3D::PushShader(kp3d::Renderer3D::GetMapShader());
|
||||||
kp3d::Renderer3D::DrawModel(seal, trans);
|
kp3d::Renderer3D::DrawModel(seal, trans);
|
||||||
kp3d::Renderer3D::PopShader();
|
kp3d::Renderer3D::PopShader();
|
||||||
|
|
Loading…
Reference in a new issue