diff --git a/Data/resources/shaders/.kp3d/map_f.glsl b/Data/resources/shaders/.kp3d/map_f.glsl index 0da10aa..8e7cbb3 100644 --- a/Data/resources/shaders/.kp3d/map_f.glsl +++ b/Data/resources/shaders/.kp3d/map_f.glsl @@ -39,32 +39,37 @@ vec4 MakeLight(vec3 norm, vec3 position, vec3 diffuse, float radius, float sharp light.diffuse = diffuse; light.radius = radius; + float alpha = kpc(distance(light.position, v_position), light.radius * sharpness, light.radius); + vec3 light_dir = normalize(light.position - v_position); //vec3 view_dir = normalize(u_camdir - v_position); vec3 view_dir = normalize(u_campos - v_position); vec3 reflect_dir = reflect(-light_dir, norm); float spec = max(dot(view_dir, reflect_dir), 0.0); float diff = max(dot(norm, light_dir), 0.0); + //diff *= 1.0 - alpha; power *= 0.5; - vec3 ddiffuse = diff * vec3(1.0);// * light.diffuse; - vec3 specular = power * spec * light.diffuse; - vec4 res = vec4(ddiffuse + specular, 1.0); + //power = 0.5;//alpha; + vec3 specular = power * spec * light.diffuse * diff; + vec4 res = vec4(vec3(diff) + specular, 1.0) * (1.0 - alpha); + res *= vec4(light.diffuse, 1); - float alpha = kpc(distance(light.position, v_position), light.radius * sharpness, light.radius); - res *= mix(vec4(light.diffuse, 1), vec4(0,0,0,1), alpha); + //float alpha = kpc(distance(light.position, v_position), light.radius * sharpness, light.radius); + //res *= mix(vec4(light.diffuse, 1), vec4(0,0,0,1), alpha); return res; } void main() { - vec3 tangentNormal = texture(u_normal_texture, v_texcoord).xyz * 2.0 - 1.0; + vec3 tangentNormal = normalize(texture(u_normal_texture, v_texcoord).xyz * 2.0 - 1.0); vec3 T = normalize(v_tangent); vec3 B = normalize(v_bitangent); - vec3 N = normalize(v_normal); + vec3 N = normalize(abs(v_normal)); mat3 TBN = mat3(T, B, N); - vec3 norm = normalize(TBN * tangentNormal) * 2.0; - vec4 texv = texture(u_texture, v_texcoord); + vec3 norm = normalize(TBN * tangentNormal); + //norm = vec3(0,1,0); + vec4 texv = texture(u_texture, v_texcoord); vec4 ambient = vec4(0.1, 0.1, 0.1, 1.0) * 1.5, light = ambient; diff --git a/Data/resources/shaders/.kp3d/map_v.glsl b/Data/resources/shaders/.kp3d/map_v.glsl index 84d06de..1cef950 100644 --- a/Data/resources/shaders/.kp3d/map_v.glsl +++ b/Data/resources/shaders/.kp3d/map_v.glsl @@ -22,7 +22,7 @@ void main() v_position = position; v_normal = normal; v_proj_normal = vec4(u_mvp * vec4(normal, 1.0)).xyz; - v_texcoord = texcoord; + v_texcoord = vec2(texcoord.x, -texcoord.y); v_tangent = tangent; v_bitangent = bitangent; diff --git a/Data/resources/textures/materials/brick2.jpg b/Data/resources/textures/materials/brick2.jpg new file mode 100644 index 0000000..42a21ce Binary files /dev/null and b/Data/resources/textures/materials/brick2.jpg differ diff --git a/Data/resources/textures/materials/brick2_n.jpg b/Data/resources/textures/materials/brick2_n.jpg new file mode 100644 index 0000000..65b3e59 Binary files /dev/null and b/Data/resources/textures/materials/brick2_n.jpg differ diff --git a/Data/resources/textures/materials/bricks.jpg b/Data/resources/textures/materials/bricks.jpg new file mode 100644 index 0000000..aa48236 Binary files /dev/null and b/Data/resources/textures/materials/bricks.jpg differ diff --git a/Data/resources/textures/materials/bricks_n.jpg b/Data/resources/textures/materials/bricks_n.jpg new file mode 100644 index 0000000..ee11e9c Binary files /dev/null and b/Data/resources/textures/materials/bricks_n.jpg differ diff --git a/Data/resources/textures/materials/hardwood.jpg b/Data/resources/textures/materials/hardwood.jpg new file mode 100644 index 0000000..4496afd Binary files /dev/null and b/Data/resources/textures/materials/hardwood.jpg differ diff --git a/Data/resources/textures/materials/hardwood_n.jpg b/Data/resources/textures/materials/hardwood_n.jpg new file mode 100644 index 0000000..0c34232 Binary files /dev/null and b/Data/resources/textures/materials/hardwood_n.jpg differ diff --git a/Data/sandbox-log.txt b/Data/sandbox-log.txt index 8a7bf28..9860666 100644 --- a/Data/sandbox-log.txt +++ b/Data/sandbox-log.txt @@ -1,787 +1,95 @@ -[00:57:22 AM] Info: Starting... +[01:51:37 AM] Info: Starting... KP3D version 2 =============================== Copyright (C) kpworld.xyz 2018-2024 Contact me! @kp_cftsz -[00:57:22 AM] Info: Initializing SDL -[00:57:23 AM] Info: Initializing OpenGL -[00:57:23 AM] Info: OpenGL version: 4.6.0 NVIDIA 536.23 -[00:57:23 AM] Info: Initializing GLEW -[00:57:23 AM] Info: Initializing SDL_mixer -[00:57:23 AM] Info: Reticulating splines... -[00:57:23 AM] Info: Ready! -[00:57:23 AM] Info: Loading material resource: block.png -[00:57:23 AM] Info: Found normal map texture: materials/block_n.png -[00:57:23 AM] Info: Loading material resource: FLAT5_7.png -[00:57:23 AM] Info: Found normal map texture: materials/FLAT5_7_n.png -[00:57:23 AM] Info: Loading material resource: floor0.png -[00:57:23 AM] Info: Found normal map texture: materials/floor0_n.png -[00:57:23 AM] Info: Loading material resource: floor1.png -[00:57:23 AM] Info: Found normal map texture: materials/floor1_n.png -[00:57:23 AM] Info: Loading material resource: GRASS2.png -[00:57:23 AM] Info: Found normal map texture: materials/GRASS2_n.png -[00:57:23 AM] Info: Map init -[00:57:23 AM] Info: Finalized mesh with 49 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:27 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:28 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:29 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:30 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:31 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:32 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:33 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:34 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:35 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:36 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:37 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:38 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:39 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:40 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:41 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:42 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:43 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:44 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:45 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:46 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:47 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:48 AM] Info: Finalized mesh with 48 batches -[00:57:59 AM] Info: Finalized mesh with 48 batches -[00:58:01 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:09 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:10 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:11 AM] Info: Finalized mesh with 48 batches -[00:58:12 AM] Info: Finalized mesh with 48 batches -[00:58:12 AM] Info: Finalized mesh with 48 batches -[00:58:12 AM] Info: Finalized mesh with 48 batches -[00:58:12 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:14 AM] Info: Finalized mesh with 48 batches -[00:58:15 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:29 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:30 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:34 AM] Info: Finalized mesh with 48 batches -[00:58:35 AM] Info: Finalized mesh with 48 batches +[01:51:37 AM] Info: Initializing SDL +[01:51:37 AM] Info: Initializing OpenGL +[01:51:37 AM] Info: OpenGL version: 4.6.0 NVIDIA 536.23 +[01:51:37 AM] Info: Initializing GLEW +[01:51:38 AM] Info: Initializing SDL_mixer +[01:51:38 AM] Info: Reticulating splines... +[01:51:38 AM] Info: Ready! +[01:51:38 AM] Info: Loading material resource: block.png +[01:51:38 AM] Info: Found normal map texture: materials/block_n.png +[01:51:38 AM] Info: Loading material resource: brick2.jpg +[01:51:38 AM] Info: Found normal map texture: materials/brick2_n.jpg +[01:51:38 AM] Info: Loading material resource: bricks.jpg +[01:51:38 AM] Info: Found normal map texture: materials/bricks_n.jpg +[01:51:38 AM] Info: Loading material resource: FLAT5_7.png +[01:51:38 AM] Info: Found normal map texture: materials/FLAT5_7_n.png +[01:51:38 AM] Info: Loading material resource: floor0.png +[01:51:38 AM] Info: Found normal map texture: materials/floor0_n.png +[01:51:38 AM] Info: Loading material resource: floor1.png +[01:51:38 AM] Info: Found normal map texture: materials/floor1_n.png +[01:51:38 AM] Info: Loading material resource: GRASS2.png +[01:51:38 AM] Info: Found normal map texture: materials/GRASS2_n.png +[01:51:38 AM] Info: Loading material resource: hardwood.jpg +[01:51:38 AM] Info: Found normal map texture: materials/hardwood_n.jpg +[01:51:38 AM] Info: Map init +[01:51:38 AM] Info: Finalized mesh with 49 batches +[01:51:58 AM] Info: Finalized mesh with 48 batches +[01:52:01 AM] Info: Finalized mesh with 48 batches +[01:52:12 AM] Info: Finalized mesh with 48 batches +[01:52:14 AM] Info: Finalized mesh with 48 batches +[01:52:15 AM] Info: Finalized mesh with 48 batches +[01:52:21 AM] Info: Finalized mesh with 48 batches +[01:52:24 AM] Info: Finalized mesh with 48 batches +[01:53:07 AM] Info: $ set-mode game +[01:53:07 AM] Info: $ +[01:53:24 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:25 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:26 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:27 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:28 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:29 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:30 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:31 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:32 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:33 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:34 AM] Warning: Failed to compile fragment shader: +0(52) : error C7011: implicit cast from "float" to "vec3" + +[01:53:35 AM] Warning: Failed to compile fragment shader: +0(53) : error C1503: undefined variable "ddiffuse" + +[01:53:36 AM] Warning: Failed to compile fragment shader: +0(53) : error C1503: undefined variable "ddiffuse" + +[01:53:37 AM] Warning: Failed to compile fragment shader: +0(53) : error C1503: undefined variable "ddiffuse" + +[01:53:38 AM] Warning: Failed to compile fragment shader: +0(53) : error C1503: undefined variable "ddiffuse" + +[01:58:13 AM] Warning: Failed to compile fragment shader: +0(50) : error C1503: undefined variable "ff" + +[01:58:14 AM] Warning: Failed to compile fragment shader: +0(50) : error C1503: undefined variable "ff" + +[01:58:15 AM] Warning: Failed to compile fragment shader: +0(50) : error C1503: undefined variable "ff" + diff --git a/KP3Dii/src/KP3D_Renderer3D.cpp b/KP3Dii/src/KP3D_Renderer3D.cpp index 3b64c81..3ee5676 100644 --- a/KP3Dii/src/KP3D_Renderer3D.cpp +++ b/KP3Dii/src/KP3D_Renderer3D.cpp @@ -165,7 +165,7 @@ void Renderer3D::End() r3d_state->active = false; } -void Renderer3D::DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader, uint (*func_highlight)(const RenderBatch3D&)) +void Renderer3D::DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader, uint(*func_highlight)(const RenderBatch3D&), const Mat4& modelview) { glBindVertexArray(mesh.m_gl_vao_id); @@ -181,6 +181,7 @@ void Renderer3D::DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader, uin if (bind_shader) r3d_state->shader->Bind(); r3d_state->shader->SetUniform("u_mvp", m); + r3d_state->shader->SetUniform("u_mv", modelview); r3d_state->shader->SetUniform("u_campos", r3d_state->v->position); r3d_state->shader->SetUniform("u_camdir", r3d_state->v->forward); r3d_state->shader->SetUniform("u_time", r3d_state->time); @@ -285,7 +286,7 @@ void Renderer3D::DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader, uin void Renderer3D::DrawMesh(StaticMesh& mesh, Transform& m, bool bind_shader, uint (*func_highlight)(const RenderBatch3D&)) { - DrawMesh(mesh, m.GetProjectedTransformationMatrix(*r3d_state->v, *r3d_state->p), bind_shader, func_highlight); + DrawMesh(mesh, m.GetProjectedTransformationMatrix(*r3d_state->v, *r3d_state->p), bind_shader, func_highlight, m.GetTransformationMatrix()); } void Renderer3D::DrawBillboard(const Texture& texture, const Vec3& position, Vec2 size, bool both_axes, float yaw) diff --git a/KP3Dii/src/KP3D_Renderer3D.h b/KP3Dii/src/KP3D_Renderer3D.h index 4b71c60..f689f32 100644 --- a/KP3Dii/src/KP3D_Renderer3D.h +++ b/KP3Dii/src/KP3D_Renderer3D.h @@ -3,13 +3,11 @@ #include #include "KP3D_Common.h" +#include "KP3D_Math.h" namespace kp3d { class Camera; -class Vec2; -class Vec3; -class Mat4; class Transform; class StaticMesh; class Texture; @@ -23,7 +21,7 @@ public: static void Begin(const Camera& v, const Mat4& p); static void End(); - static void DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader = true, uint (*func_highlight)(const RenderBatch3D&) = nullptr); + static void DrawMesh(StaticMesh& mesh, const Mat4& m, bool bind_shader = true, uint (*func_highlight)(const RenderBatch3D&) = nullptr, const Mat4& modelview = Mat4()); static void DrawMesh(StaticMesh& mesh, Transform& m, bool bind_shader = true, uint (*func_highlight)(const RenderBatch3D&) = nullptr); static void DrawBillboard(const Texture& texture, const Vec3& position, Vec2 size, bool both_axes = false, float yaw = 90.0f); static void DrawSmartBillboard( diff --git a/KP3Dii/src/KP3D_Resources.cpp b/KP3Dii/src/KP3D_Resources.cpp index 1fade6f..703ff4b 100644 --- a/KP3Dii/src/KP3D_Resources.cpp +++ b/KP3Dii/src/KP3D_Resources.cpp @@ -30,7 +30,7 @@ void LoadMaterials() std::string filename = std::filesystem::proximate(path_str, kp3d::sys::GetTextureDir() + "materials/").string(); std::replace(filename.begin(), filename.end(), '\\', '/'); - if (kp3d::str::EndsWith(path_str, "_n.png")) + if (kp3d::str::EndsWith(path_str, "_n.png") || kp3d::str::EndsWith(path_str, "_n.jpg")) continue; KP3D_LOG_INFO("Loading material resource: {}", filename);