diff --git a/LastSession.t4jlog b/LastSession.t4jlog index 0a9f7ed..8916e8d 100644 --- a/LastSession.t4jlog +++ b/LastSession.t4jlog @@ -1,879 +1,871 @@ -181:06:2026 15:49:03.454 INFO: +182:07:2026 21:36:42.529 INFO: Launching New Terrain4J Powered Software! -181:06:2026 15:49:03.464 DEBUG: File [terrain4j.properties] read -181:06:2026 15:49:03.473 DEBUG: +182:07:2026 21:36:42.533 DEBUG: File [terrain4j.properties] read +182:07:2026 21:36:42.536 DEBUG: successfully loaded configuration: {compatibility_mode=false, ShaderRecompiling=true, cap_main_to_tickrate=true, LoadingScreenLocation=resources/EngineResources/Texture/Terrain4JTitleImage.png, z_near_plane=10000.0f, display_width=640, anti_alias_mode=0, main_thread_tickrate=120, Software_Icon=ProgramIcon.png, MaxAllowedVulkanCrashes=10, throttle_on_unfocus=true, vsync=false, cap_fast_to_tickrate=true, Software_Icon_Path=/WindowResources/Icon/, RequestedImages=3, throttle_accuracy=100000000, DualPassRendering=false, field_of_view=60.0f, ShadowMapSize=2048, PhysicalDeviceName=, fast_thread_tickrate=240, vkValidated=true, cap_master_to_tickrate=true, AlphaToCoverage=false, display_height=480, Renderer=1, Software_Title=Terrain4J Game Engine, z_far_plane=0.1f, frame_accuracy=0, master_tick_rate=240, Debug_Shaders=false, DefaultTexturePath=resources/EngineResources/Texture/NoTexture.png} -181:06:2026 15:49:04.302 DEBUG: Loading Icon From Location [src\main\resources\WindowResources\Icon\ProgramIcon.png] -181:06:2026 15:49:04.351 DEBUG: Freeing icon Buffer -181:06:2026 15:49:04.786 DEBUG: Loading Models From [resources/models/melona/melona.json] -181:06:2026 15:49:04.876 DEBUG: Loaded Model Data: [ModelData[ID=melona, Meshes=[MeshData[ID=m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0, MaterialID=melona-mat-1, OffsetVertex=0, VertexSize=24192, OffsetIndex=0, IndexSize=2640], MeshData[ID=none_1, MaterialID=melona-mat-2, OffsetVertex=24192, VertexSize=672, OffsetIndex=2640, IndexSize=96]], VertexPath=resources/models/melona/melona.vtx, IndexPath=resources/models/melona/melona.idx]] -181:06:2026 15:49:04.876 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] -181:06:2026 15:49:04.907 DEBUG: Loaded Material Data: [[MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]] -181:06:2026 15:49:04.980 DEBUG: Starting Main Thread -181:06:2026 15:49:04.981 DEBUG: Starting Fast Thread -181:06:2026 15:49:04.991 DEBUG: Initialising Vulkan Instance -181:06:2026 15:49:05.039 DEBUG: Validation Layer Count:16 -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_OBS_HOOK] -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_RENDERDOC_Capture] -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_VALVE_steam_overlay] -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_VALVE_steam_fossilize] -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_LUNARG_api_dump] -181:06:2026 15:49:05.048 TRACE: Supported Layer [VK_LAYER_LUNARG_gfxreconstruct] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_KHRONOS_synchronization2] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_KHRONOS_validation] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_LUNARG_monitor] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_LUNARG_screenshot] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_KHRONOS_profiles] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_KHRONOS_shader_object] -181:06:2026 15:49:05.049 TRACE: Supported Layer [VK_LAYER_LUNARG_crash_diagnostic] -181:06:2026 15:49:05.050 TRACE: Supported Layer [VK_LAYER_INTEL_gvk_restore_point] -181:06:2026 15:49:05.050 TRACE: Supported Layer [VK_LAYER_INTEL_gvk_state_tracker] -181:06:2026 15:49:05.050 TRACE: Supported Layer [VK_LAYER_INTEL_gvk_virtual_swapchain] -181:06:2026 15:49:05.050 DEBUG: Validation:true -181:06:2026 15:49:05.050 DEBUG: Using Validation Layer:VK_LAYER_KHRONOS_validation -181:06:2026 15:49:05.061 DEBUG: Instance Extension Count:[13] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_surface] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_win32_surface] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_external_memory_capabilities] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_external_semaphore_capabilities] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_external_fence_capabilities] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_get_physical_device_properties2] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_get_surface_capabilities2] -181:06:2026 15:49:05.066 TRACE: Supported Instance Extension [VK_KHR_device_group_creation] -181:06:2026 15:49:05.067 TRACE: Supported Instance Extension [VK_EXT_swapchain_colorspace] -181:06:2026 15:49:05.067 TRACE: Supported Instance Extension [VK_EXT_debug_report] -181:06:2026 15:49:05.067 TRACE: Supported Instance Extension [VK_EXT_debug_utils] -181:06:2026 15:49:05.067 TRACE: Supported Instance Extension [VK_KHR_portability_enumeration] -181:06:2026 15:49:05.067 TRACE: Supported Instance Extension [VK_LUNARG_direct_driver_loading] -181:06:2026 15:49:05.160 DEBUG: selecting physical devices -181:06:2026 15:49:05.161 DEBUG: Detected Physical Device Count: 1 -181:06:2026 15:49:05.187 DEBUG: Selected Graphics Driver: [Intel(R) UHD Graphics] -181:06:2026 15:49:05.189 DEBUG: Creating Device Interface Layer -181:06:2026 15:49:05.189 TRACE: Device supports [110] number of extensions -181:06:2026 15:49:05.189 TRACE: [VK_EXT_full_screen_exclusive] is a supported extension -181:06:2026 15:49:05.189 TRACE: [VK_KHR_swapchain] is a supported extension -181:06:2026 15:49:05.189 TRACE: [VK_KHR_external_memory] is a supported extension -181:06:2026 15:49:05.189 TRACE: [VK_KHR_external_memory_win32] is a supported extension -181:06:2026 15:49:05.189 TRACE: [VK_EXT_external_memory_host] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_external_semaphore] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_external_semaphore_win32] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_external_fence] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_external_fence_win32] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_timeline_semaphore] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_win32_keyed_mutex] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_get_memory_requirements2] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_bind_memory2] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_dedicated_allocation] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_sampler_mirror_clamp_to_edge] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_maintenance1] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_maintenance2] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_maintenance3] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_maintenance4] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_synchronization2] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_shader_draw_parameters] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_push_descriptor] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_descriptor_update_template] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_multiview] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_shader_float16_int8] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_shader_float_controls] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_16bit_storage] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_8bit_storage] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_shader_subgroup_ballot] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_shader_subgroup_vote] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_storage_buffer_storage_class] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_variable_pointers] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_relaxed_block_layout] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_sampler_filter_minmax] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_device_group] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_ycbcr_2plane_444_formats] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_4444_formats] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_post_depth_coverage] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_shader_viewport_index_layer] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_shader_stencil_export] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_conservative_rasterization] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_sample_locations] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_KHR_draw_indirect_count] is a supported extension -181:06:2026 15:49:05.190 TRACE: [VK_EXT_multi_draw] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_image_format_list] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_vertex_attribute_divisor] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_descriptor_indexing] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_inline_uniform_block] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_create_renderpass2] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_dynamic_rendering] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_swapchain_mutable_format] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_depth_stencil_resolve] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_driver_properties] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_vulkan_memory_model] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_conditional_rendering] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_hdr_metadata] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_fragment_shading_rate] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_depth_clip_enable] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_depth_clip_control] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_scalar_block_layout] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_imageless_framebuffer] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_buffer_device_address] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_buffer_device_address] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_EXT_host_query_reset] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_performance_query] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_NV_device_diagnostic_checkpoints] is a supported extension -181:06:2026 15:49:05.191 TRACE: [VK_KHR_separate_depth_stencil_layouts] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_KHR_shader_clock] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_KHR_spirv_1_4] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_KHR_uniform_buffer_standard_layout] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_separate_stencil_usage] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_fragment_shader_interlock] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_index_type_uint8] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_primitive_topology_list_restart] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_KHR_shader_subgroup_extended_types] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_line_rasterization] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_memory_budget] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_memory_priority] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_texel_buffer_alignment] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_INTEL_performance_query] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_subgroup_size_control] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_shader_demote_to_helper_invocation] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_pipeline_creation_feedback] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_pipeline_creation_cache_control] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_KHR_pipeline_executable_properties] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_transform_feedback] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_provoking_vertex] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_extended_dynamic_state] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_extended_dynamic_state2] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_vertex_input_dynamic_state] is a supported extension -181:06:2026 15:49:05.192 TRACE: [VK_EXT_custom_border_color] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_robustness2] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_image_robustness] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_calibrated_timestamps] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_shader_integer_dot_product] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_shader_subgroup_uniform_control_flow] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_shader_terminate_invocation] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_workgroup_memory_explicit_layout] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_shader_atomic_float] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_copy_commands2] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_shader_non_semantic_info] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_zero_initialize_workgroup_memory] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_shader_atomic_float2] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_global_priority] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_global_priority_query] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_global_priority] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_KHR_format_feature_flags2] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_color_write_enable] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_private_data] is a supported extension -181:06:2026 15:49:05.193 TRACE: [VK_EXT_image_2d_view_of_3d] is a supported extension -181:06:2026 15:49:05.247 DEBUG: Creating Vulkan Surface -181:06:2026 15:49:05.257 DEBUG: Creating Vulkan SwapChain -181:06:2026 15:49:05.302 DEBUG: Creating new Vk Pipeline Cache -181:06:2026 15:49:05.304 DEBUG: Creating Descriptor Allocator -181:06:2026 15:49:05.306 DEBUG: Creating Descriptor pool -181:06:2026 15:49:05.323 DEBUG: Vulkan: Creating A Queue -181:06:2026 15:49:05.328 DEBUG: Vulkan: Creating A Queue -181:06:2026 15:49:05.331 DEBUG: Creating Vulkan Command Pool -181:06:2026 15:49:05.332 DEBUG: Creating Command Buffer -181:06:2026 15:49:05.336 DEBUG: Creating Vulkan Command Pool -181:06:2026 15:49:05.336 DEBUG: Creating Command Buffer -181:06:2026 15:49:05.389 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -181:06:2026 15:49:05.390 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_fragment_deferred.glsl.spv] -181:06:2026 15:49:05.402 DEBUG: Creating Pipeline -181:06:2026 15:49:05.413 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.414 DEBUG: created render info -181:06:2026 15:49:05.415 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.424 ERROR: VkDebugUtilsCallback, vkCreatePipelineLayout(): max per-stage sampler bindings count (128) exceeds device maxPerStageDescriptorSamplers limit (64). -The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers (https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-03016) -181:06:2026 15:49:05.424 DEBUG: created PipelineLayout -181:06:2026 15:49:05.424 DEBUG: created vertexInputState -181:06:2026 15:49:05.427 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.433 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.433 DEBUG: Pipeline Created -181:06:2026 15:49:05.434 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -181:06:2026 15:49:05.435 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_opaque_fragment_deferred.glsl.spv] -181:06:2026 15:49:05.436 DEBUG: Creating Pipeline -181:06:2026 15:49:05.437 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.437 DEBUG: created render info -181:06:2026 15:49:05.437 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.437 ERROR: VkDebugUtilsCallback, vkCreatePipelineLayout(): max per-stage sampler bindings count (128) exceeds device maxPerStageDescriptorSamplers limit (64). -The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers (https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-03016) -181:06:2026 15:49:05.437 DEBUG: created PipelineLayout -181:06:2026 15:49:05.437 DEBUG: created vertexInputState -181:06:2026 15:49:05.437 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.437 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.437 DEBUG: Pipeline Created -181:06:2026 15:49:05.438 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -181:06:2026 15:49:05.438 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_translucent_fragment_deferred.glsl.spv] -181:06:2026 15:49:05.440 DEBUG: Creating Pipeline -181:06:2026 15:49:05.440 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.440 DEBUG: created render info -181:06:2026 15:49:05.440 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.440 ERROR: VkDebugUtilsCallback, vkCreatePipelineLayout(): max per-stage sampler bindings count (128) exceeds device maxPerStageDescriptorSamplers limit (64). -The Vulkan spec states: The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers (https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html#VUID-VkPipelineLayoutCreateInfo-descriptorType-03016) -181:06:2026 15:49:05.440 DEBUG: created PipelineLayout -181:06:2026 15:49:05.441 DEBUG: created vertexInputState -181:06:2026 15:49:05.441 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.441 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.441 DEBUG: Pipeline Created -181:06:2026 15:49:05.442 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_vertex.glsl.spv] -181:06:2026 15:49:05.443 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_fragment.glsl.spv] -181:06:2026 15:49:05.445 DEBUG: Creating Pipeline -181:06:2026 15:49:05.445 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.445 DEBUG: created render info -181:06:2026 15:49:05.445 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.445 DEBUG: created PipelineLayout -181:06:2026 15:49:05.445 DEBUG: created vertexInputState -181:06:2026 15:49:05.445 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.445 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.445 DEBUG: Skybox Pipeline Created Successfully -181:06:2026 15:49:05.445 DEBUG: Deferred Renderer Pipeline -> [60473139527735] -181:06:2026 15:49:05.449 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_vertex.glsl.spv] -181:06:2026 15:49:05.450 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_frag.glsl.spv] -181:06:2026 15:49:05.457 DEBUG: Creating Pipeline -181:06:2026 15:49:05.457 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.457 DEBUG: created render info -181:06:2026 15:49:05.457 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.457 DEBUG: created PipelineLayout -181:06:2026 15:49:05.457 DEBUG: created vertexInputState -181:06:2026 15:49:05.457 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.458 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.458 DEBUG: Light Renderer Pipeline -> [95657511616599] -181:06:2026 15:49:05.465 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_vtx.glsl.spv] -181:06:2026 15:49:05.465 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_frag.glsl.spv] -181:06:2026 15:49:05.467 DEBUG: Creating Pipeline -181:06:2026 15:49:05.467 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.467 DEBUG: created render info -181:06:2026 15:49:05.467 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.467 DEBUG: created PipelineLayout -181:06:2026 15:49:05.467 DEBUG: created vertexInputState -181:06:2026 15:49:05.467 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.470 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.470 DEBUG: Post Process Renderer Pipeline -> [109951162777700] -181:06:2026 15:49:05.473 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_vertex.glsl.spv] -181:06:2026 15:49:05.474 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_frag.glsl.spv] -181:06:2026 15:49:05.476 DEBUG: Creating Pipeline -181:06:2026 15:49:05.476 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.477 DEBUG: created render info -181:06:2026 15:49:05.477 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.477 DEBUG: created PipelineLayout -181:06:2026 15:49:05.477 DEBUG: created vertexInputState -181:06:2026 15:49:05.477 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.477 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.615 DEBUG: Creating Vulkan Command Pool -181:06:2026 15:49:05.615 DEBUG: Creating Command Buffer -181:06:2026 15:49:05.636 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:05.638 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:05.654 TRACE: Destroyed Command Buffer -181:06:2026 15:49:05.659 DEBUG: Destroying Vulkan Command Pool -181:06:2026 15:49:05.663 DEBUG: GUI Renderer Pipeline -> [115448720916585] -181:06:2026 15:49:05.666 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_vtx.glsl.spv] -181:06:2026 15:49:05.667 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_frag.glsl.spv] -181:06:2026 15:49:05.668 DEBUG: Creating Pipeline -181:06:2026 15:49:05.668 DEBUG: registered Descriptor sets -181:06:2026 15:49:05.668 DEBUG: created render info -181:06:2026 15:49:05.668 DEBUG: created BlendAttributeStates -181:06:2026 15:49:05.668 DEBUG: created PipelineLayout -181:06:2026 15:49:05.668 DEBUG: created vertexInputState -181:06:2026 15:49:05.668 DEBUG: created PipelineCreateInfo -181:06:2026 15:49:05.669 DEBUG: created GraphicsPipeline -181:06:2026 15:49:05.669 DEBUG: Swap Chain Renderer Pipeline -> [131941395333240] -181:06:2026 15:49:05.675 DEBUG: Starting Render Thread -181:06:2026 15:49:05.675 DEBUG: Loading 3 Materials -181:06:2026 15:49:05.675 DEBUG: Creating Command Buffer -181:06:2026 15:49:05.683 DEBUG: Material Texture Path -> [] -181:06:2026 15:49:05.684 TRACE: MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] -181:06:2026 15:49:05.684 DEBUG: Material Texture Path -> [resources\models\melona\Melonamodel.png] -181:06:2026 15:49:05.685 DEBUG: Loading Image [resources\models\melona\Melonamodel.png] -181:06:2026 15:49:05.687 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=65536 cap=65536]] -181:06:2026 15:49:05.687 TRACE: MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] -181:06:2026 15:49:05.687 DEBUG: Material Texture Path -> [] -181:06:2026 15:49:05.687 TRACE: MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] -181:06:2026 15:49:05.694 TRACE: Destroyed Command Buffer -181:06:2026 15:49:05.695 DEBUG: Loaded 3 Materials -181:06:2026 15:49:05.696 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] -181:06:2026 15:49:05.792 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16777216 cap=16777216]] -181:06:2026 15:49:05.794 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] -181:06:2026 15:49:05.885 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:05.887 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyLeft.png] -181:06:2026 15:49:05.987 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:05.988 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyUp.png] -181:06:2026 15:49:06.122 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:06.123 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyDown.png] -181:06:2026 15:49:06.197 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:06.199 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyFront.png] -181:06:2026 15:49:06.285 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:06.286 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyBack.png] -181:06:2026 15:49:06.374 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -181:06:2026 15:49:06.564 DEBUG: Loading Image [resources/EngineResources/Texture/Terrain4JTitleImage.png] -181:06:2026 15:49:06.577 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=198720 cap=198720]] -181:06:2026 15:49:06.577 DEBUG: Loading Image [resources/EngineResources/Texture/Billy.png] -181:06:2026 15:49:06.604 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=7613760 cap=7613760]] -181:06:2026 15:49:06.604 DEBUG: Transitioning Textures -181:06:2026 15:49:06.604 DEBUG: Recording Texture Transition -181:06:2026 15:49:06.605 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.616 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.616 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.623 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.624 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.632 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.633 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.641 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.641 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.649 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.649 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.656 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.656 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.664 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.664 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.671 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.671 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.679 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.680 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.687 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.687 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.695 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.695 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.702 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.703 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.711 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.711 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.719 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.719 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.728 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.729 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.738 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.738 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.746 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.746 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.755 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.755 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.763 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.764 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.772 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.772 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.780 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.780 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.791 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.791 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.801 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.801 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.810 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.810 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.819 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.819 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.827 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.827 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.836 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.836 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.844 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.844 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.908 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.908 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.916 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.916 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.925 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.925 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.933 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.933 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.941 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.941 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.949 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.950 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.958 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.958 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.967 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.967 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.975 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.975 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.984 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.984 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:06.994 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:06.994 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.001 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.001 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.010 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.010 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.019 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.019 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.029 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.029 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.038 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.038 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.050 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.050 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.059 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.059 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.068 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.068 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.079 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.079 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.091 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.091 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.100 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.100 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.109 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.109 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.117 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.117 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.126 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.126 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.135 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.135 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.145 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.145 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.154 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.154 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.164 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.164 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.173 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.173 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.183 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.183 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.193 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.193 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.202 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.202 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.212 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.212 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.223 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.223 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.232 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.233 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.242 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.242 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.252 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.252 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.261 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.261 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.269 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.270 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.279 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.279 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.289 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.289 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.301 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.301 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.311 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.311 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.321 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.321 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.330 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.331 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.340 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.340 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.353 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.353 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.362 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.362 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.371 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.372 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.381 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.381 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.391 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.391 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.400 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.400 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.410 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.410 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.420 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.420 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.430 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.430 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.439 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.439 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.450 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.451 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.460 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.461 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.469 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.470 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.479 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.479 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.489 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.489 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.502 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.502 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.514 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.514 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.526 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.526 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.537 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.537 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.546 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.547 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.556 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.556 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.565 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.565 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.574 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.574 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.583 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.583 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.592 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.592 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.603 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.603 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.612 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.612 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.623 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.623 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.634 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.634 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.643 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.643 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.653 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.653 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.662 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.662 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.671 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.671 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.680 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.680 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.691 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.691 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.700 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.700 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.709 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.709 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.781 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.781 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.793 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.794 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.805 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.805 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.815 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.816 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.827 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.827 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.835 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.836 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.845 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.846 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.855 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.855 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.866 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.866 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.876 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.876 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.886 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.886 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -181:06:2026 15:49:07.896 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -181:06:2026 15:49:07.896 DEBUG: Creating Command Buffer -181:06:2026 15:49:07.898 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.898 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.901 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.901 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.902 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.902 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.903 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.903 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.904 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.904 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.905 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.905 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.906 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.906 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.907 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.907 ERROR: VkDebugUtilsCallback, vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:07.908 ERROR: VkDebugUtilsCallback, (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it). -vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-03910) -181:06:2026 15:49:07.908 ERROR: VkDebugUtilsCallback, (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it). -vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].dstAccessMask (VK_ACCESS_SHADER_READ_BIT) is not supported by stage mask (VK_PIPELINE_STAGE_TRANSFER_BIT). -The Vulkan spec states: If dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-dstAccessMask-07454) -181:06:2026 15:49:08.047 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b79b3b8 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 1) to be in layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.047 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b79b3b8 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 2) to be in layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.047 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b79b3b8 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 3) to be in layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.048 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b79b3b8 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 4) to be in layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.048 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b79b3b8 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 5) to be in layout VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.048 TRACE: Destroyed Command Buffer -181:06:2026 15:49:08.073 DEBUG: Recorded Texture Transition -181:06:2026 15:49:08.073 DEBUG: Transitioned Textures -181:06:2026 15:49:08.073 DEBUG: Loading 1 models -181:06:2026 15:49:08.075 DEBUG: Creating Command Buffer -181:06:2026 15:49:08.076 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0] VertexSize=[24192] -181:06:2026 15:49:08.079 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[none_1] VertexSize=[672] -181:06:2026 15:49:08.082 TRACE: Destroyed Command Buffer -181:06:2026 15:49:08.109 DEBUG: Loaded 1 models -181:06:2026 15:49:08.110 DEBUG: Fetching Texture -> [SKYBOX_TEXTURE] -181:06:2026 15:49:08.111 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Terrain4JTitleImage.png] -181:06:2026 15:49:08.111 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Billy.png] -181:06:2026 15:49:08.264 INFO: Launched Terrain4J Engine -181:06:2026 15:49:08.265 DEBUG: Primary Thread Started -181:06:2026 15:49:08.265 DEBUG: Main Thread Started -181:06:2026 15:49:08.265 DEBUG: Render Thread Started -181:06:2026 15:49:08.265 DEBUG: Fast Thread Started -181:06:2026 15:49:08.333 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.340 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.377 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.378 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.387 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b53a028 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.389 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b53a028 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 1) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.390 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b53a028 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 2) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.390 ERROR: VkDebugUtilsCallback, vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b53a028 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 3) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.391 ERROR: VkDebugUtilsCallback, (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it). -vkQueueSubmit2(): pSubmits[0] command buffer VkCommandBuffer 0x1936b53a028 expects VkImage 0x840000000084 (subresource: aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, mipLevel = 0, arrayLayer = 4) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED. -The Vulkan spec states: If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDraw-None-09600) -181:06:2026 15:49:08.396 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.399 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.417 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.419 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.434 ERROR: VkDebugUtilsCallback, vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:08.437 ERROR: VkDebugUtilsCallback, (Warning - This VUID has now been reported 10 times, which is the duplicate_message_limit value, this will be the last time reporting it). -vkCmdDrawIndexed(): the combined image sampler descriptor [VkDescriptorSet 0x28d000000028d, Set 3, Binding 0, Index 1, variable "textSampler"] VkImageViewType is VK_IMAGE_VIEW_TYPE_CUBE but the OpTypeImage has (Dim = 2D) and (Arrayed = 0). -Either fix in shader or update the VkImageViewType to VK_IMAGE_VIEW_TYPE_2D. -The Vulkan spec states: If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types (https://docs.vulkan.org/spec/latest/chapters/drawing.html#VUID-vkCmdDrawIndexed-viewType-07752) -181:06:2026 15:49:45.515 DEBUG: ThrottlingEngine -181:06:2026 15:49:48.869 DEBUG: UnThrottlingEngine -181:06:2026 15:49:49.320 DEBUG: ThrottlingEngine -181:06:2026 15:49:52.690 DEBUG: UnThrottlingEngine -181:06:2026 15:49:52.693 DEBUG: ThrottlingEngine -181:06:2026 15:52:54.347 DEBUG: UnThrottlingEngine -181:06:2026 15:52:56.532 DEBUG: Closing Software of name [Terrain4J Game Engine] -181:06:2026 15:52:56.533 DEBUG: Closing Main Thread, Thread: [Thread[#34,Terrain4J Main Engine Thread,5,main]] -181:06:2026 15:52:56.554 DEBUG: Waiting Vulkan Context -181:06:2026 15:52:56.554 DEBUG: destroying Pipeline -181:06:2026 15:52:56.556 DEBUG: destroying Pipeline -181:06:2026 15:52:56.557 DEBUG: destroying Pipeline -181:06:2026 15:52:56.561 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.562 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.562 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.563 DEBUG: Destroying Image View -181:06:2026 15:52:56.565 DEBUG: Destroyed Window -181:06:2026 15:52:56.567 DEBUG: Destroying Image View -181:06:2026 15:52:56.567 DEBUG: Destroying Image View -181:06:2026 15:52:56.567 DEBUG: Destroying Image View -181:06:2026 15:52:56.567 DEBUG: Destroying Image View -181:06:2026 15:52:56.567 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.568 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.569 DEBUG: destroying Pipeline -181:06:2026 15:52:56.571 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.571 DEBUG: Destroying Image View -181:06:2026 15:52:56.572 DEBUG: Destroying Image View -181:06:2026 15:52:56.575 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.576 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.577 DEBUG: destroying Pipeline -181:06:2026 15:52:56.578 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.578 DEBUG: destroying Pipeline -181:06:2026 15:52:56.581 DEBUG: Destroying Image View -181:06:2026 15:52:56.581 DEBUG: Destroying Descriptor Set Layout -181:06:2026 15:52:56.581 DEBUG: destroying Pipeline -181:06:2026 15:52:56.596 DEBUG: Destroying Image View -181:06:2026 15:52:56.596 DEBUG: Destroying Image View -181:06:2026 15:52:56.598 DEBUG: Destroying Image View -181:06:2026 15:52:56.598 DEBUG: Destroying Image View -181:06:2026 15:52:56.599 DEBUG: Destroying Image View -181:06:2026 15:52:56.599 DEBUG: Destroying Image View -181:06:2026 15:52:56.599 DEBUG: Destroying Image View -181:06:2026 15:52:56.599 DEBUG: Destroying Image View -181:06:2026 15:52:56.600 DEBUG: Destroying Image View -181:06:2026 15:52:56.600 DEBUG: Destroying Image View -181:06:2026 15:52:56.601 DEBUG: Destroying Image View -181:06:2026 15:52:56.603 DEBUG: Destroying Image View -181:06:2026 15:52:56.605 DEBUG: Destroying Image View -181:06:2026 15:52:56.605 DEBUG: Destroying Image View -181:06:2026 15:52:56.606 DEBUG: Destroying Image View -181:06:2026 15:52:56.606 DEBUG: Destroying Image View -181:06:2026 15:52:56.607 DEBUG: Destroying Image View -181:06:2026 15:52:56.607 DEBUG: Destroying Image View -181:06:2026 15:52:56.607 DEBUG: Destroying Image View -181:06:2026 15:52:56.608 DEBUG: Destroying Image View -181:06:2026 15:52:56.608 DEBUG: Destroying Image View -181:06:2026 15:52:56.610 DEBUG: Destroying Image View -181:06:2026 15:52:56.612 DEBUG: Destroying Image View -181:06:2026 15:52:56.612 DEBUG: Destroying Image View -181:06:2026 15:52:56.613 DEBUG: Destroying Image View -181:06:2026 15:52:56.614 DEBUG: Destroying Image View -181:06:2026 15:52:56.614 DEBUG: Destroying Image View -181:06:2026 15:52:56.617 DEBUG: Destroying Image View -181:06:2026 15:52:56.617 DEBUG: Destroying Image View -181:06:2026 15:52:56.652 DEBUG: Destroyed Window -181:06:2026 15:52:56.804 DEBUG: Destroying Image View -181:06:2026 15:52:56.805 DEBUG: Destroying Image View -181:06:2026 15:52:56.805 DEBUG: Destroying Image View -181:06:2026 15:52:56.805 DEBUG: Process still running: [[Thread[#3,Terrain4J Primary Runtime Thread,5,main], Thread[#35,Terrain4J Fast Engine Thread,5,main], Thread[#16,Signal Dispatcher,9,system], Thread[#26,tinylog-WritingThread,1,main], Thread[#24,Notification Thread,9,system], Thread[#36,Terrain4J Render Engine Thread,5,main], Thread[#15,Finalizer,8,system], Thread[#14,Reference Handler,10,system], Thread[#25,Common-Cleaner,8,InnocuousThreadGroup], Thread[#17,Attach Listener,5,system], Thread[#38,Thread-5,5,main]]] -181:06:2026 15:52:56.805 DEBUG: Waiting to close Primary Thread, making sure vulkan has shut down properly first and Engine Threads are closed +182:07:2026 21:36:42.776 DEBUG: Loading Icon From Location [src\main\resources\WindowResources\Icon\ProgramIcon.png] +182:07:2026 21:36:42.790 DEBUG: Freeing icon Buffer +182:07:2026 21:36:47.987 DEBUG: Loading Models From [resources/models/melona/melona.json] +182:07:2026 21:36:48.014 DEBUG: Loaded Model Data: [ModelData[ID=melona, Meshes=[MeshData[ID=m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0, MaterialID=melona-mat-1, OffsetVertex=0, VertexSize=24192, OffsetIndex=0, IndexSize=2640], MeshData[ID=none_1, MaterialID=melona-mat-2, OffsetVertex=24192, VertexSize=672, OffsetIndex=2640, IndexSize=96]], VertexPath=resources/models/melona/melona.vtx, IndexPath=resources/models/melona/melona.idx]] +182:07:2026 21:36:48.014 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] +182:07:2026 21:36:48.019 DEBUG: Loaded Material Data: [[MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]] +182:07:2026 21:36:48.044 DEBUG: Starting Main Thread +182:07:2026 21:36:48.044 DEBUG: Starting Fast Thread +182:07:2026 21:36:48.045 DEBUG: Initialising Vulkan Instance +182:07:2026 21:36:48.055 DEBUG: Validation Layer Count:12 +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_AMD_switchable_graphics] +182:07:2026 21:36:48.057 TRACE: Supported Layer [GalaxyOverlayVkLayer] +182:07:2026 21:36:48.057 TRACE: Supported Layer [GalaxyOverlayVkLayer_VERBOSE] +182:07:2026 21:36:48.057 TRACE: Supported Layer [GalaxyOverlayVkLayer_DEBUG] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_EOS_Overlay] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_RENDERDOC_Capture] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_OW_OVERLAY] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_OW_OBS_HOOK] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_VALVE_steam_overlay] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_VALVE_steam_fossilize] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_OBS_HOOK] +182:07:2026 21:36:48.057 TRACE: Supported Layer [VK_LAYER_ROCKSTAR_GAMES_social_club] +182:07:2026 21:36:48.057 WARN: No Layers Found to Validate, continuing without validation +182:07:2026 21:36:48.057 DEBUG: Validation:false +182:07:2026 21:36:48.061 DEBUG: Instance Extension Count:[14] +182:07:2026 21:36:48.062 TRACE: Supported Instance Extension [VK_KHR_device_group_creation] +182:07:2026 21:36:48.062 TRACE: Supported Instance Extension [VK_KHR_external_fence_capabilities] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_external_memory_capabilities] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_external_semaphore_capabilities] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_get_physical_device_properties2] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_get_surface_capabilities2] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_surface] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_win32_surface] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_EXT_debug_report] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_EXT_debug_utils] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_EXT_swapchain_colorspace] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_surface_maintenance1] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_KHR_portability_enumeration] +182:07:2026 21:36:48.063 TRACE: Supported Instance Extension [VK_LUNARG_direct_driver_loading] +182:07:2026 21:36:48.128 DEBUG: selecting physical devices +182:07:2026 21:36:48.130 DEBUG: Detected Physical Device Count: 2 +182:07:2026 21:36:48.143 DEBUG: freeing physical device [AMD Radeon(TM) Graphics] +182:07:2026 21:36:48.143 DEBUG: Selected Graphics Driver: [AMD Radeon RX 9070 XT] +182:07:2026 21:36:48.144 DEBUG: Creating Device Interface Layer +182:07:2026 21:36:48.144 TRACE: Device supports [221] number of extensions +182:07:2026 21:36:48.144 TRACE: [VK_KHR_16bit_storage] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_8bit_storage] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_acceleration_structure] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_bind_memory2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_buffer_device_address] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_calibrated_timestamps] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_compute_shader_derivatives] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_cooperative_matrix] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_copy_commands2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_copy_memory_indirect] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_create_renderpass2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_dedicated_allocation] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_deferred_host_operations] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_depth_clamp_zero_one] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_depth_stencil_resolve] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_descriptor_update_template] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_device_address_commands] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_device_group] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_draw_indirect_count] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_driver_properties] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_dynamic_rendering] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_dynamic_rendering_local_read] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_fence] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_fence_win32] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_memory] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_memory_win32] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_semaphore] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_external_semaphore_win32] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_format_feature_flags2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_fragment_shader_barycentric] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_fragment_shading_rate] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_get_memory_requirements2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_global_priority] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_imageless_framebuffer] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_image_format_list] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_index_type_uint8] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_line_rasterization] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_load_store_op_none] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance1] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance3] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance4] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance5] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance6] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance7] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance8] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance9] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance10] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_maintenance11] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_map_memory2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_multiview] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_pipeline_binary] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_pipeline_executable_properties] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_pipeline_library] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_present_id2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_present_mode_fifo_latest_ready] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_present_wait2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_push_descriptor] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_ray_query] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_ray_tracing_maintenance1] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_ray_tracing_pipeline] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_ray_tracing_position_fetch] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_relaxed_block_layout] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_robustness2] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_sampler_mirror_clamp_to_edge] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_sampler_ycbcr_conversion] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_separate_depth_stencil_layouts] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_atomic_int64] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_bfloat16] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_clock] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_draw_parameters] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_expect_assume] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_float16_int8] is a supported extension +182:07:2026 21:36:48.144 TRACE: [VK_KHR_shader_float_controls] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_float_controls2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_fma] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_integer_dot_product] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_maximal_reconvergence] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_non_semantic_info] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_quad_control] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_subgroup_extended_types] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_subgroup_rotate] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_subgroup_uniform_control_flow] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_terminate_invocation] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_shader_untyped_pointers] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_spirv_1_4] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_storage_buffer_storage_class] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_swapchain] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_swapchain_maintenance1] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_swapchain_mutable_format] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_synchronization2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_timeline_semaphore] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_uniform_buffer_standard_layout] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_variable_pointers] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_vertex_attribute_divisor] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_decode_av1] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_decode_h264] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_decode_h265] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_decode_queue] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_decode_vp9] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_av1] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_h264] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_h265] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_intra_refresh] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_quantization_map] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_encode_queue] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_maintenance1] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_video_queue] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_vulkan_memory_model] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_win32_keyed_mutex] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_workgroup_memory_explicit_layout] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_KHR_zero_initialize_workgroup_memory] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_4444_formats] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_attachment_feedback_loop_layout] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_border_color_swizzle] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_calibrated_timestamps] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_color_write_enable] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_conditional_rendering] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_conservative_rasterization] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_custom_border_color] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_depth_clamp_control] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_depth_clamp_zero_one] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_depth_clip_control] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_depth_clip_enable] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_depth_range_unrestricted] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_descriptor_buffer] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_descriptor_heap] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_descriptor_indexing] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_device_address_binding_report] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_device_fault] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_device_generated_commands] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_dynamic_rendering_unused_attachments] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_extended_dynamic_state] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_extended_dynamic_state2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_extended_dynamic_state3] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_external_memory_host] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_fragment_shader_interlock] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_frame_boundary] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_full_screen_exclusive] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_global_priority] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_global_priority_query] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_graphics_pipeline_library] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_hdr_metadata] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_host_image_copy] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_host_query_reset] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_image_2d_view_of_3d] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_image_robustness] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_image_sliced_view_of_3d] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_image_view_min_lod] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_index_type_uint8] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_inline_uniform_block] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_line_rasterization] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_load_store_op_none] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_memory_budget] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_memory_priority] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_mesh_shader] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_mutable_descriptor_type] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_nested_command_buffer] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_non_seamless_cube_map] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_pageable_device_local_memory] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_pipeline_creation_cache_control] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_pipeline_creation_feedback] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_pipeline_library_group_handles] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_post_depth_coverage] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_present_mode_fifo_latest_ready] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_primitive_topology_list_restart] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_primitives_generated_query] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_private_data] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_provoking_vertex] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_queue_family_foreign] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_ray_tracing_invocation_reorder] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_robustness2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_sampler_filter_minmax] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_sample_locations] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_scalar_block_layout] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_separate_stencil_usage] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_atomic_float] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_atomic_float2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_demote_to_helper_invocation] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_float8] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_image_atomic_int64] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_long_vector] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_module_identifier] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_object] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_replicated_composites] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_stencil_export] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_subgroup_ballot] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_subgroup_vote] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_uniform_buffer_unsized_array] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_shader_viewport_index_layer] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_subgroup_size_control] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_texel_buffer_alignment] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_tooling_info] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_transform_feedback] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_vertex_attribute_divisor] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_vertex_input_dynamic_state] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_EXT_ycbcr_image_arrays] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_anti_lag] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_buffer_marker] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_device_coherent_memory] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_display_native_hdr] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_draw_indirect_count] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_gcn_shader] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_gpa_interface] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_gpu_shader_half_float] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_gpu_shader_int16] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_memory_overallocation_behavior] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_mixed_attachment_samples] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_shader_ballot] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_shader_core_properties] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_shader_core_properties2] is a supported extension +182:07:2026 21:36:48.145 TRACE: [VK_AMD_shader_early_and_late_fragment_tests] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_AMD_shader_explicit_vertex_parameter] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_AMD_shader_image_load_store_lod] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_AMD_shader_info] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_AMD_shader_trinary_minmax] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_AMDX_dense_geometry_format] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_GOOGLE_decorate_string] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_GOOGLE_hlsl_functionality1] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_GOOGLE_user_type] is a supported extension +182:07:2026 21:36:48.146 TRACE: [VK_VALVE_mutable_descriptor_type] is a supported extension +182:07:2026 21:36:48.216 DEBUG: Creating Vulkan Surface +182:07:2026 21:36:48.220 DEBUG: Creating Vulkan SwapChain +182:07:2026 21:36:48.277 DEBUG: Creating new Vk Pipeline Cache +182:07:2026 21:36:48.277 DEBUG: Creating Descriptor Allocator +182:07:2026 21:36:48.279 DEBUG: Creating Descriptor pool +182:07:2026 21:36:48.286 DEBUG: Vulkan: Creating A Queue +182:07:2026 21:36:48.287 DEBUG: Vulkan: Creating A Queue +182:07:2026 21:36:48.289 DEBUG: Creating Vulkan Command Pool +182:07:2026 21:36:48.289 DEBUG: Creating Command Buffer +182:07:2026 21:36:48.290 DEBUG: Creating Vulkan Command Pool +182:07:2026 21:36:48.290 DEBUG: Creating Command Buffer +182:07:2026 21:36:48.315 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +182:07:2026 21:36:48.315 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_fragment_deferred.glsl.spv] +182:07:2026 21:36:48.317 DEBUG: Creating Pipeline +182:07:2026 21:36:48.320 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.320 DEBUG: created render info +182:07:2026 21:36:48.321 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.321 DEBUG: created PipelineLayout +182:07:2026 21:36:48.321 DEBUG: created vertexInputState +182:07:2026 21:36:48.322 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.323 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.324 DEBUG: Pipeline Created +182:07:2026 21:36:48.324 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +182:07:2026 21:36:48.324 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_opaque_fragment_deferred.glsl.spv] +182:07:2026 21:36:48.324 DEBUG: Creating Pipeline +182:07:2026 21:36:48.324 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.324 DEBUG: created render info +182:07:2026 21:36:48.324 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.324 DEBUG: created PipelineLayout +182:07:2026 21:36:48.324 DEBUG: created vertexInputState +182:07:2026 21:36:48.324 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.325 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.325 DEBUG: Pipeline Created +182:07:2026 21:36:48.325 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +182:07:2026 21:36:48.325 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_translucent_fragment_deferred.glsl.spv] +182:07:2026 21:36:48.325 DEBUG: Creating Pipeline +182:07:2026 21:36:48.325 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.325 DEBUG: created render info +182:07:2026 21:36:48.325 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.325 DEBUG: created PipelineLayout +182:07:2026 21:36:48.325 DEBUG: created vertexInputState +182:07:2026 21:36:48.325 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.325 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.325 DEBUG: Pipeline Created +182:07:2026 21:36:48.326 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_vertex.glsl.spv] +182:07:2026 21:36:48.326 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_fragment.glsl.spv] +182:07:2026 21:36:48.326 DEBUG: Creating Pipeline +182:07:2026 21:36:48.326 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.326 DEBUG: created render info +182:07:2026 21:36:48.326 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.326 DEBUG: created PipelineLayout +182:07:2026 21:36:48.326 DEBUG: created vertexInputState +182:07:2026 21:36:48.326 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.326 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.326 DEBUG: Skybox Pipeline Created Successfully +182:07:2026 21:36:48.326 DEBUG: Deferred Renderer Pipeline -> [2400447498624] +182:07:2026 21:36:48.329 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_vertex.glsl.spv] +182:07:2026 21:36:48.329 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_frag.glsl.spv] +182:07:2026 21:36:48.331 DEBUG: Creating Pipeline +182:07:2026 21:36:48.331 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.331 DEBUG: created render info +182:07:2026 21:36:48.331 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.331 DEBUG: created PipelineLayout +182:07:2026 21:36:48.331 DEBUG: created vertexInputState +182:07:2026 21:36:48.331 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.331 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.331 DEBUG: Light Renderer Pipeline -> [2261306615744] +182:07:2026 21:36:48.335 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_vtx.glsl.spv] +182:07:2026 21:36:48.335 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_frag.glsl.spv] +182:07:2026 21:36:48.335 DEBUG: Creating Pipeline +182:07:2026 21:36:48.336 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.336 DEBUG: created render info +182:07:2026 21:36:48.336 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.336 DEBUG: created PipelineLayout +182:07:2026 21:36:48.336 DEBUG: created vertexInputState +182:07:2026 21:36:48.336 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.336 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.336 DEBUG: Post Process Renderer Pipeline -> [2400447717712] +182:07:2026 21:36:48.337 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_vertex.glsl.spv] +182:07:2026 21:36:48.337 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_frag.glsl.spv] +182:07:2026 21:36:48.337 DEBUG: Creating Pipeline +182:07:2026 21:36:48.337 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.337 DEBUG: created render info +182:07:2026 21:36:48.337 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.337 DEBUG: created PipelineLayout +182:07:2026 21:36:48.337 DEBUG: created vertexInputState +182:07:2026 21:36:48.337 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.337 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.397 DEBUG: Creating Vulkan Command Pool +182:07:2026 21:36:48.397 DEBUG: Creating Command Buffer +182:07:2026 21:36:48.407 TRACE: Destroyed Command Buffer +182:07:2026 21:36:48.409 DEBUG: Destroying Vulkan Command Pool +182:07:2026 21:36:48.410 DEBUG: GUI Renderer Pipeline -> [2400447623456] +182:07:2026 21:36:48.411 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_vtx.glsl.spv] +182:07:2026 21:36:48.411 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_frag.glsl.spv] +182:07:2026 21:36:48.411 DEBUG: Creating Pipeline +182:07:2026 21:36:48.411 DEBUG: registered Descriptor sets +182:07:2026 21:36:48.411 DEBUG: created render info +182:07:2026 21:36:48.411 DEBUG: created BlendAttributeStates +182:07:2026 21:36:48.411 DEBUG: created PipelineLayout +182:07:2026 21:36:48.411 DEBUG: created vertexInputState +182:07:2026 21:36:48.411 DEBUG: created PipelineCreateInfo +182:07:2026 21:36:48.411 DEBUG: created GraphicsPipeline +182:07:2026 21:36:48.412 DEBUG: Swap Chain Renderer Pipeline -> [2400448623776] +182:07:2026 21:36:48.413 DEBUG: Starting Render Thread +182:07:2026 21:36:48.414 DEBUG: Loading 3 Materials +182:07:2026 21:36:48.415 DEBUG: Creating Command Buffer +182:07:2026 21:36:48.416 DEBUG: Material Texture Path -> [] +182:07:2026 21:36:48.416 TRACE: MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] +182:07:2026 21:36:48.416 DEBUG: Material Texture Path -> [resources\models\melona\Melonamodel.png] +182:07:2026 21:36:48.416 DEBUG: Loading Image [resources\models\melona\Melonamodel.png] +182:07:2026 21:36:48.417 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=65536 cap=65536]] +182:07:2026 21:36:48.417 TRACE: MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] +182:07:2026 21:36:48.417 DEBUG: Material Texture Path -> [] +182:07:2026 21:36:48.417 TRACE: MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0] +182:07:2026 21:36:48.419 TRACE: Destroyed Command Buffer +182:07:2026 21:36:48.419 DEBUG: Loaded 3 Materials +182:07:2026 21:36:48.420 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] +182:07:2026 21:36:48.456 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.464 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] +182:07:2026 21:36:48.501 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.501 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyLeft.png] +182:07:2026 21:36:48.539 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.540 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyUp.png] +182:07:2026 21:36:48.591 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.591 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyDown.png] +182:07:2026 21:36:48.623 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.624 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyFront.png] +182:07:2026 21:36:48.660 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.660 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyBack.png] +182:07:2026 21:36:48.698 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +182:07:2026 21:36:48.882 DEBUG: Loading Image [resources/EngineResources/Texture/Terrain4JTitleImage.png] +182:07:2026 21:36:48.884 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=198720 cap=198720]] +182:07:2026 21:36:48.884 DEBUG: Loading Image [resources/EngineResources/Texture/Billy.png] +182:07:2026 21:36:48.896 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=7613760 cap=7613760]] +182:07:2026 21:36:48.896 DEBUG: Transitioning Textures +182:07:2026 21:36:48.896 DEBUG: Recording Texture Transition +182:07:2026 21:36:48.897 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.901 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.901 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.906 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.906 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.909 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.909 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.913 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.913 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.917 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.917 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.921 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.921 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.924 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.924 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.928 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.928 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.932 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.932 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.935 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.936 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.939 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.939 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.943 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.943 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.947 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.947 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.951 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.951 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.954 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.954 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.958 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.958 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.962 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.962 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.966 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.966 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.970 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.970 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.974 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.974 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.977 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.977 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.981 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.981 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.986 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.986 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.989 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.989 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.993 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.993 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:48.996 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:48.996 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.000 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.000 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.004 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.004 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.016 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.016 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.020 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.020 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.023 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.023 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.027 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.027 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.031 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.031 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.034 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.034 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.038 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.038 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.042 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.042 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.046 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.046 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.050 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.050 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.053 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.053 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.057 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.057 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.061 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.061 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.065 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.065 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.069 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.069 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.072 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.072 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.076 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.076 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.080 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.080 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.083 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.083 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.087 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.087 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.091 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.091 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.094 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.094 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.097 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.097 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.102 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.102 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.106 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.106 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.109 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.109 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.113 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.113 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.116 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.116 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.120 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.120 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.124 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.124 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.127 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.127 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.131 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.131 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.134 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.134 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.138 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.138 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.142 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.142 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.146 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.146 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.150 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.150 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.153 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.153 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.157 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.157 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.161 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.161 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.165 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.165 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.168 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.168 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.172 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.172 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.176 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.176 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.180 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.180 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.184 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.184 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.187 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.187 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.191 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.191 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.195 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.195 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.199 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.199 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.202 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.202 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.206 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.206 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.210 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.210 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.213 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.213 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.217 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.217 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.221 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.221 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.224 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.224 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.228 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.228 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.231 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.231 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.235 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.235 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.239 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.239 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.243 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.243 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.246 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.246 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.250 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.250 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.254 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.254 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.257 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.257 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.261 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.261 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.266 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.266 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.269 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.269 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.273 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.273 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.276 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.276 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.280 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.280 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.284 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.284 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.287 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.287 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.291 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.291 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.295 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.295 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.299 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.300 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.303 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.303 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.307 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.307 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.311 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.311 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.315 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.315 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.319 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.319 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.322 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.322 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.326 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.326 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.339 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.339 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.342 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.342 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.346 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.346 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.350 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.350 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.353 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.354 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.357 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.357 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.361 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.361 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.364 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.364 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.368 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.368 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.371 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.371 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.376 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.376 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +182:07:2026 21:36:49.379 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +182:07:2026 21:36:49.379 DEBUG: Creating Command Buffer +182:07:2026 21:36:49.399 TRACE: Destroyed Command Buffer +182:07:2026 21:36:49.414 DEBUG: Recorded Texture Transition +182:07:2026 21:36:49.414 DEBUG: Transitioned Textures +182:07:2026 21:36:49.414 DEBUG: Loading 1 models +182:07:2026 21:36:49.414 DEBUG: Creating Command Buffer +182:07:2026 21:36:49.415 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0] VertexSize=[24192] +182:07:2026 21:36:49.416 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[none_1] VertexSize=[672] +182:07:2026 21:36:49.416 TRACE: Destroyed Command Buffer +182:07:2026 21:36:49.431 DEBUG: Loaded 1 models +182:07:2026 21:36:49.432 DEBUG: Fetching Texture -> [SKYBOX_TEXTURE] +182:07:2026 21:36:49.432 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Terrain4JTitleImage.png] +182:07:2026 21:36:49.432 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Billy.png] +182:07:2026 21:36:49.535 INFO: Launched Terrain4J Engine +182:07:2026 21:36:49.535 DEBUG: Primary Thread Started +182:07:2026 21:36:49.535 DEBUG: Main Thread Started +182:07:2026 21:36:49.535 DEBUG: Render Thread Started +182:07:2026 21:36:49.535 DEBUG: Fast Thread Started +182:07:2026 21:37:58.240 DEBUG: Closing Software of name [Terrain4J Game Engine] +182:07:2026 21:37:58.240 DEBUG: Closing Fast Thread, Thread: [Thread[#42,Terrain4J Fast Engine Thread,5,main]] +182:07:2026 21:37:58.240 DEBUG: Closing Main Thread, Thread: [Thread[#41,Terrain4J Main Engine Thread,5,main]] +182:07:2026 21:37:58.241 DEBUG: Waiting Vulkan Context +182:07:2026 21:37:58.241 DEBUG: destroying Pipeline +182:07:2026 21:37:58.241 DEBUG: destroying Pipeline +182:07:2026 21:37:58.241 DEBUG: destroying Pipeline +182:07:2026 21:37:58.241 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.241 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.241 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.241 DEBUG: Destroying Image View +182:07:2026 21:37:58.242 DEBUG: Destroying Image View +182:07:2026 21:37:58.243 DEBUG: Destroying Image View +182:07:2026 21:37:58.243 DEBUG: Destroying Image View +182:07:2026 21:37:58.243 DEBUG: Destroying Image View +182:07:2026 21:37:58.243 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.244 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.244 DEBUG: destroying Pipeline +182:07:2026 21:37:58.244 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.244 DEBUG: Destroying Image View +182:07:2026 21:37:58.245 DEBUG: Destroying Image View +182:07:2026 21:37:58.245 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.245 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.245 DEBUG: destroying Pipeline +182:07:2026 21:37:58.245 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.245 DEBUG: destroying Pipeline +182:07:2026 21:37:58.245 DEBUG: Destroying Image View +182:07:2026 21:37:58.245 DEBUG: Destroying Descriptor Set Layout +182:07:2026 21:37:58.245 DEBUG: destroying Pipeline +182:07:2026 21:37:58.247 DEBUG: Destroying Image View +182:07:2026 21:37:58.247 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.248 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.249 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.250 DEBUG: Destroying Image View +182:07:2026 21:37:58.251 DEBUG: Destroying Image View +182:07:2026 21:37:58.251 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.252 DEBUG: Destroying Image View +182:07:2026 21:37:58.253 DEBUG: Destroying Image View +182:07:2026 21:37:58.253 DEBUG: Destroying Image View +182:07:2026 21:37:58.253 DEBUG: Destroying Image View +182:07:2026 21:37:58.253 DEBUG: Destroying Image View +182:07:2026 21:37:58.253 DEBUG: Destroying Image View +182:07:2026 21:37:58.255 DEBUG: Destroyed Window +182:07:2026 21:37:58.255 DEBUG: Destroying Image View +182:07:2026 21:37:58.255 DEBUG: Destroying Image View +182:07:2026 21:37:58.255 DEBUG: Destroying Image View +182:07:2026 21:37:58.255 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.256 DEBUG: Destroying Image View +182:07:2026 21:37:58.257 DEBUG: Destroying Image View +182:07:2026 21:37:58.257 DEBUG: Destroying Image View +182:07:2026 21:37:58.257 DEBUG: Destroying Image View +182:07:2026 21:37:58.257 DEBUG: Destroying Image View +182:07:2026 21:37:58.257 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.258 DEBUG: Destroying Image View +182:07:2026 21:37:58.268 DEBUG: Destroying Image View +182:07:2026 21:37:58.268 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.269 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.270 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.271 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.272 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.273 DEBUG: Destroying Image View +182:07:2026 21:37:58.274 DEBUG: Destroying Image View +182:07:2026 21:37:58.274 DEBUG: Destroying Image View +182:07:2026 21:37:58.274 DEBUG: Dynamic Renderer Cleaned up +182:07:2026 21:37:58.274 DEBUG: Destroying Vulkan Semaphore +182:07:2026 21:37:58.274 DEBUG: Destroying Vulkan Semaphore +182:07:2026 21:37:58.274 DEBUG: Destroying Vulkan Semaphore +182:07:2026 21:37:58.274 DEBUG: Render Semaphores cleaned up +182:07:2026 21:37:58.274 DEBUG: Destroying Vulkan Semaphore +182:07:2026 21:37:58.274 DEBUG: Destroying Vulkan Semaphore +182:07:2026 21:37:58.274 DEBUG: Present Semaphores cleaned up +182:07:2026 21:37:58.275 DEBUG: Fences cleaned up +182:07:2026 21:37:58.275 TRACE: Destroyed Command Buffer +182:07:2026 21:37:58.275 DEBUG: Destroying Vulkan Command Pool +182:07:2026 21:37:58.275 TRACE: Destroyed Command Buffer +182:07:2026 21:37:58.275 DEBUG: Destroying Vulkan Command Pool +182:07:2026 21:37:58.275 DEBUG: Command pools cleaned up +182:07:2026 21:37:58.276 DEBUG: Destroyed Window +182:07:2026 21:37:58.276 DEBUG: Process still running: [[Thread[#37,Notification Thread,9,system], Thread[#3,Terrain4J Primary Runtime Thread,5,main], Thread[#16,Reference Handler,10,system], Thread[#17,Finalizer,8,system], Thread[#38,Common-Cleaner,8,InnocuousThreadGroup], Thread[#39,tinylog-WritingThread,1,main], Thread[#65,Terrain4J Render Engine Thread,5,main], Thread[#18,Signal Dispatcher,9,system], Thread[#19,Attach Listener,5,system]]] +182:07:2026 21:37:58.276 DEBUG: Waiting to close Primary Thread, making sure vulkan has shut down properly first and Engine Threads are closed Threads Open:[2] -Vulkan Layers Open:[5] -181:06:2026 15:52:56.806 DEBUG: Destroying Image View -181:06:2026 15:52:56.806 DEBUG: Destroying Image View -181:06:2026 15:52:56.810 DEBUG: Destroying Image View -181:06:2026 15:52:56.811 DEBUG: Destroying Image View -181:06:2026 15:52:56.814 DEBUG: Destroying Image View -181:06:2026 15:52:56.817 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.818 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.819 DEBUG: Destroying Image View -181:06:2026 15:52:56.820 DEBUG: Destroying Image View -181:06:2026 15:52:56.820 DEBUG: Destroying Image View -181:06:2026 15:52:56.820 DEBUG: Destroying Image View -181:06:2026 15:52:56.820 DEBUG: Destroying Image View -181:06:2026 15:52:56.821 DEBUG: Destroying Image View -181:06:2026 15:52:56.821 DEBUG: Destroying Image View -181:06:2026 15:52:56.822 DEBUG: Destroying Image View -181:06:2026 15:52:56.823 DEBUG: Destroying Image View -181:06:2026 15:52:56.823 DEBUG: Destroying Image View -181:06:2026 15:52:56.824 DEBUG: Destroying Image View -181:06:2026 15:52:56.825 DEBUG: Destroying Image View -181:06:2026 15:52:56.826 DEBUG: Destroying Image View -181:06:2026 15:52:56.827 DEBUG: Destroying Image View -181:06:2026 15:52:56.827 DEBUG: Destroying Image View -181:06:2026 15:52:56.828 DEBUG: Destroying Image View -181:06:2026 15:52:56.873 DEBUG: Destroying Image View -181:06:2026 15:52:56.887 DEBUG: Destroying Image View -181:06:2026 15:52:56.888 DEBUG: Destroying Image View -181:06:2026 15:52:56.888 DEBUG: Destroying Image View -181:06:2026 15:52:56.889 DEBUG: Destroying Image View -181:06:2026 15:52:56.889 DEBUG: Destroying Image View -181:06:2026 15:52:56.894 DEBUG: Destroying Image View -181:06:2026 15:52:56.894 DEBUG: Destroying Image View -181:06:2026 15:52:56.894 DEBUG: Destroying Image View -181:06:2026 15:52:56.894 DEBUG: Destroying Image View -181:06:2026 15:52:56.895 DEBUG: Destroying Image View -181:06:2026 15:52:56.896 DEBUG: Destroying Image View -181:06:2026 15:52:56.896 DEBUG: Destroying Image View -181:06:2026 15:52:56.897 DEBUG: Destroying Image View -181:06:2026 15:52:56.897 DEBUG: Destroying Image View -181:06:2026 15:52:56.898 DEBUG: Destroying Image View -181:06:2026 15:52:56.898 DEBUG: Destroying Image View -181:06:2026 15:52:56.898 DEBUG: Destroying Image View -181:06:2026 15:52:56.899 DEBUG: Destroying Image View -181:06:2026 15:52:56.899 DEBUG: Destroying Image View -181:06:2026 15:52:56.899 DEBUG: Destroying Image View -181:06:2026 15:52:56.900 DEBUG: Destroying Image View -181:06:2026 15:52:56.900 DEBUG: Destroying Image View -181:06:2026 15:52:56.900 DEBUG: Destroying Image View -181:06:2026 15:52:56.901 DEBUG: Destroying Image View -181:06:2026 15:52:56.901 DEBUG: Destroying Image View -181:06:2026 15:52:56.902 DEBUG: Destroying Image View -181:06:2026 15:52:56.902 DEBUG: Destroying Image View -181:06:2026 15:52:56.902 DEBUG: Destroying Image View -181:06:2026 15:52:56.903 DEBUG: Destroying Image View -181:06:2026 15:52:56.903 DEBUG: Destroying Image View -181:06:2026 15:52:56.903 DEBUG: Destroying Image View -181:06:2026 15:52:56.904 DEBUG: Destroying Image View -181:06:2026 15:52:56.904 DEBUG: Destroying Image View -181:06:2026 15:52:56.904 DEBUG: Destroying Image View -181:06:2026 15:52:56.904 DEBUG: Destroying Image View -181:06:2026 15:52:56.904 DEBUG: Destroying Image View -181:06:2026 15:52:56.905 DEBUG: Destroying Image View -181:06:2026 15:52:56.905 DEBUG: Destroying Image View -181:06:2026 15:52:56.906 DEBUG: Destroying Image View -181:06:2026 15:52:56.906 DEBUG: Destroying Image View -181:06:2026 15:52:56.910 DEBUG: Destroying Image View -181:06:2026 15:52:56.911 DEBUG: Destroying Image View -181:06:2026 15:52:56.911 DEBUG: Destroying Image View -181:06:2026 15:52:56.913 DEBUG: Destroying Image View -181:06:2026 15:52:56.913 DEBUG: Destroying Image View -181:06:2026 15:52:56.913 DEBUG: Destroying Image View -181:06:2026 15:52:56.913 DEBUG: Destroying Image View -181:06:2026 15:52:56.914 DEBUG: Destroying Image View -181:06:2026 15:52:56.914 DEBUG: Destroying Image View -181:06:2026 15:52:56.914 DEBUG: Destroying Image View -181:06:2026 15:52:56.914 DEBUG: Destroying Image View -181:06:2026 15:52:56.914 DEBUG: Destroying Image View -181:06:2026 15:52:56.915 DEBUG: Destroying Image View -181:06:2026 15:52:56.915 DEBUG: Destroying Image View -181:06:2026 15:52:56.915 DEBUG: Destroying Image View -181:06:2026 15:52:56.954 DEBUG: Destroying Image View -181:06:2026 15:52:56.955 DEBUG: Destroying Image View -181:06:2026 15:52:56.955 DEBUG: Destroying Image View -181:06:2026 15:52:56.955 DEBUG: Destroying Image View -181:06:2026 15:52:56.956 DEBUG: Destroying Image View -181:06:2026 15:52:56.956 DEBUG: Dynamic Renderer Cleaned up -181:06:2026 15:52:56.958 DEBUG: Destroying Vulkan Semaphore -181:06:2026 15:52:56.958 DEBUG: Destroying Vulkan Semaphore -181:06:2026 15:52:56.958 DEBUG: Destroying Vulkan Semaphore -181:06:2026 15:52:56.958 DEBUG: Render Semaphores cleaned up -181:06:2026 15:52:56.959 DEBUG: Destroying Vulkan Semaphore -181:06:2026 15:52:56.959 DEBUG: Destroying Vulkan Semaphore -181:06:2026 15:52:56.959 DEBUG: Present Semaphores cleaned up -181:06:2026 15:52:56.960 DEBUG: Fences cleaned up -181:06:2026 15:52:56.960 TRACE: Destroyed Command Buffer -181:06:2026 15:52:56.960 DEBUG: Destroying Vulkan Command Pool -181:06:2026 15:52:56.961 TRACE: Destroyed Command Buffer -181:06:2026 15:52:56.961 DEBUG: Destroying Vulkan Command Pool -181:06:2026 15:52:56.962 DEBUG: Command pools cleaned up -181:06:2026 15:52:57.038 DEBUG: Destroying Descriptor Allocator -181:06:2026 15:52:57.039 DEBUG: Destroying Descriptor Pool -181:06:2026 15:52:57.039 DEBUG: Destroying Vulkan Swapchain -181:06:2026 15:52:57.040 DEBUG: Destroying Image View -181:06:2026 15:52:57.040 DEBUG: Destroying Image View -181:06:2026 15:52:57.040 DEBUG: Destroying Image View -181:06:2026 15:52:57.061 DEBUG: Cleaning Up Surfaces -181:06:2026 15:52:57.061 DEBUG: Destroying Vulkan Pipeline Cache -181:06:2026 15:52:57.061 DEBUG: Removing Vulkan Device -181:06:2026 15:52:57.061 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkBuffer 0x810000000081 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.061 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkBuffer 0x2820000000282 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.061 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkBuffer 0x320000000032 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.061 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkBuffer 0x330000000033 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.062 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkPipelineLayout 0x420000000042 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.062 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkPipeline 0x430000000043 has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.062 ERROR: VkDebugUtilsCallback, vkDestroyDevice(): Object Tracking - For VkDevice 0x193285db7b8, VkDescriptorSetLayout 0x2f000000002f has not been destroyed. -The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137) -181:06:2026 15:52:57.066 DEBUG: freeing physical device [Intel(R) UHD Graphics] -181:06:2026 15:52:57.066 DEBUG: Closing Vulkan instance -181:06:2026 15:52:57.074 DEBUG: Render Thread Finished ending Vulkan Processes -Vulkan Layers Open:[0] -181:06:2026 15:52:57.074 DEBUG: Closing Render Thread, Thread: [Thread[#36,Terrain4J Render Engine Thread,5,main]] +Vulkan Layers Open:[4] +182:07:2026 21:37:58.297 DEBUG: Destroying Descriptor Allocator +182:07:2026 21:37:58.297 DEBUG: Destroying Descriptor Pool +182:07:2026 21:37:58.298 DEBUG: Destroying Vulkan Swapchain +182:07:2026 21:37:58.298 DEBUG: Destroying Image View +182:07:2026 21:37:58.298 DEBUG: Destroying Image View +182:07:2026 21:37:58.298 DEBUG: Destroying Image View +182:07:2026 21:37:58.303 DEBUG: Cleaning Up Surfaces +182:07:2026 21:37:58.303 DEBUG: Destroying Vulkan Pipeline Cache +182:07:2026 21:37:58.303 DEBUG: Removing Vulkan Device +182:07:2026 21:37:58.448 DEBUG: freeing physical device [AMD Radeon RX 9070 XT] +182:07:2026 21:37:58.448 DEBUG: Closing Vulkan instance +182:07:2026 21:37:58.469 DEBUG: Render Thread Finished ending Vulkan Processes +Vulkan Layers Open:[All processes closed and vulkan instance removed] +182:07:2026 21:37:58.469 DEBUG: Closing Render Thread, Thread: [Thread[#65,Terrain4J Render Engine Thread,5,main]] +182:07:2026 21:37:58.469 DEBUG: Closing Primary Thread, Thread: [Thread[#3,Terrain4J Primary Runtime Thread,5,main]] +182:07:2026 21:37:58.469 INFO: Successful stable Shut Down of Terrain4J in [229.368] MilliSeconds diff --git a/resources/EngineResources/audio/sounds/youusedtocallmeonyourcellphone.ogg b/resources/EngineResources/audio/sounds/youusedtocallmeonyourcellphone.ogg deleted file mode 100644 index 9d86be4..0000000 Binary files a/resources/EngineResources/audio/sounds/youusedtocallmeonyourcellphone.ogg and /dev/null differ diff --git a/resources/models/Forest/ModelTexture0.png b/resources/models/Forest/ModelTexture0.png deleted file mode 100644 index d0ac859..0000000 Binary files a/resources/models/Forest/ModelTexture0.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture1.png b/resources/models/Forest/ModelTexture1.png deleted file mode 100644 index 45c78e2..0000000 Binary files a/resources/models/Forest/ModelTexture1.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture10.png b/resources/models/Forest/ModelTexture10.png deleted file mode 100644 index bd79ee4..0000000 Binary files a/resources/models/Forest/ModelTexture10.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture11.png b/resources/models/Forest/ModelTexture11.png deleted file mode 100644 index fc49dfc..0000000 Binary files a/resources/models/Forest/ModelTexture11.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture12.png b/resources/models/Forest/ModelTexture12.png deleted file mode 100644 index d98627f..0000000 Binary files a/resources/models/Forest/ModelTexture12.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture13.png b/resources/models/Forest/ModelTexture13.png deleted file mode 100644 index e9257cb..0000000 Binary files a/resources/models/Forest/ModelTexture13.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture14.png b/resources/models/Forest/ModelTexture14.png deleted file mode 100644 index d95a293..0000000 Binary files a/resources/models/Forest/ModelTexture14.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture15.png b/resources/models/Forest/ModelTexture15.png deleted file mode 100644 index 6bf05dc..0000000 Binary files a/resources/models/Forest/ModelTexture15.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture16.png b/resources/models/Forest/ModelTexture16.png deleted file mode 100644 index b38cf72..0000000 Binary files a/resources/models/Forest/ModelTexture16.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture17.png b/resources/models/Forest/ModelTexture17.png deleted file mode 100644 index 5e7a9a4..0000000 Binary files a/resources/models/Forest/ModelTexture17.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture18.png b/resources/models/Forest/ModelTexture18.png deleted file mode 100644 index 68b1d4f..0000000 Binary files a/resources/models/Forest/ModelTexture18.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture19.png b/resources/models/Forest/ModelTexture19.png deleted file mode 100644 index 303e651..0000000 Binary files a/resources/models/Forest/ModelTexture19.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture2.png b/resources/models/Forest/ModelTexture2.png deleted file mode 100644 index 52361ef..0000000 Binary files a/resources/models/Forest/ModelTexture2.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture20.png b/resources/models/Forest/ModelTexture20.png deleted file mode 100644 index 1d3cc6a..0000000 Binary files a/resources/models/Forest/ModelTexture20.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture21.png b/resources/models/Forest/ModelTexture21.png deleted file mode 100644 index 15e31a6..0000000 Binary files a/resources/models/Forest/ModelTexture21.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture22.png b/resources/models/Forest/ModelTexture22.png deleted file mode 100644 index 065e970..0000000 Binary files a/resources/models/Forest/ModelTexture22.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture23.png b/resources/models/Forest/ModelTexture23.png deleted file mode 100644 index db885b4..0000000 Binary files a/resources/models/Forest/ModelTexture23.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture24.png b/resources/models/Forest/ModelTexture24.png deleted file mode 100644 index b83fc35..0000000 Binary files a/resources/models/Forest/ModelTexture24.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture25.png b/resources/models/Forest/ModelTexture25.png deleted file mode 100644 index 63321b0..0000000 Binary files a/resources/models/Forest/ModelTexture25.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture26.png b/resources/models/Forest/ModelTexture26.png deleted file mode 100644 index eeb607b..0000000 Binary files a/resources/models/Forest/ModelTexture26.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture27.png b/resources/models/Forest/ModelTexture27.png deleted file mode 100644 index 6a98693..0000000 Binary files a/resources/models/Forest/ModelTexture27.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture28.png b/resources/models/Forest/ModelTexture28.png deleted file mode 100644 index 39355c8..0000000 Binary files a/resources/models/Forest/ModelTexture28.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture29.png b/resources/models/Forest/ModelTexture29.png deleted file mode 100644 index e561a2c..0000000 Binary files a/resources/models/Forest/ModelTexture29.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture30.png b/resources/models/Forest/ModelTexture30.png deleted file mode 100644 index 68a8486..0000000 Binary files a/resources/models/Forest/ModelTexture30.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture31.png b/resources/models/Forest/ModelTexture31.png deleted file mode 100644 index 057fa8c..0000000 Binary files a/resources/models/Forest/ModelTexture31.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture32.png b/resources/models/Forest/ModelTexture32.png deleted file mode 100644 index a0f1083..0000000 Binary files a/resources/models/Forest/ModelTexture32.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture33.png b/resources/models/Forest/ModelTexture33.png deleted file mode 100644 index a97d329..0000000 Binary files a/resources/models/Forest/ModelTexture33.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture34.png b/resources/models/Forest/ModelTexture34.png deleted file mode 100644 index 0a93127..0000000 Binary files a/resources/models/Forest/ModelTexture34.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture35.png b/resources/models/Forest/ModelTexture35.png deleted file mode 100644 index 7a5687e..0000000 Binary files a/resources/models/Forest/ModelTexture35.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture36.png b/resources/models/Forest/ModelTexture36.png deleted file mode 100644 index 624c275..0000000 Binary files a/resources/models/Forest/ModelTexture36.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture37.png b/resources/models/Forest/ModelTexture37.png deleted file mode 100644 index f0fba86..0000000 Binary files a/resources/models/Forest/ModelTexture37.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture38.png b/resources/models/Forest/ModelTexture38.png deleted file mode 100644 index 4f1b0fb..0000000 Binary files a/resources/models/Forest/ModelTexture38.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture39.png b/resources/models/Forest/ModelTexture39.png deleted file mode 100644 index ac798dc..0000000 Binary files a/resources/models/Forest/ModelTexture39.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture4.png b/resources/models/Forest/ModelTexture4.png deleted file mode 100644 index 2c108cb..0000000 Binary files a/resources/models/Forest/ModelTexture4.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture40.png b/resources/models/Forest/ModelTexture40.png deleted file mode 100644 index 825e62f..0000000 Binary files a/resources/models/Forest/ModelTexture40.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture41.png b/resources/models/Forest/ModelTexture41.png deleted file mode 100644 index e2a0c1c..0000000 Binary files a/resources/models/Forest/ModelTexture41.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture42.png b/resources/models/Forest/ModelTexture42.png deleted file mode 100644 index b5b66d1..0000000 Binary files a/resources/models/Forest/ModelTexture42.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture43.png b/resources/models/Forest/ModelTexture43.png deleted file mode 100644 index 9a1cfdd..0000000 Binary files a/resources/models/Forest/ModelTexture43.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture44.png b/resources/models/Forest/ModelTexture44.png deleted file mode 100644 index 86672b1..0000000 Binary files a/resources/models/Forest/ModelTexture44.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture45.png b/resources/models/Forest/ModelTexture45.png deleted file mode 100644 index fe6c012..0000000 Binary files a/resources/models/Forest/ModelTexture45.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture46.png b/resources/models/Forest/ModelTexture46.png deleted file mode 100644 index 8afb880..0000000 Binary files a/resources/models/Forest/ModelTexture46.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture47.png b/resources/models/Forest/ModelTexture47.png deleted file mode 100644 index 8d03481..0000000 Binary files a/resources/models/Forest/ModelTexture47.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture48.png b/resources/models/Forest/ModelTexture48.png deleted file mode 100644 index f7b0f84..0000000 Binary files a/resources/models/Forest/ModelTexture48.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture49.png b/resources/models/Forest/ModelTexture49.png deleted file mode 100644 index 4def1aa..0000000 Binary files a/resources/models/Forest/ModelTexture49.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture5.png b/resources/models/Forest/ModelTexture5.png deleted file mode 100644 index 3f30088..0000000 Binary files a/resources/models/Forest/ModelTexture5.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture50.png b/resources/models/Forest/ModelTexture50.png deleted file mode 100644 index 178fcc2..0000000 Binary files a/resources/models/Forest/ModelTexture50.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture51.png b/resources/models/Forest/ModelTexture51.png deleted file mode 100644 index 6f73b59..0000000 Binary files a/resources/models/Forest/ModelTexture51.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture52.png b/resources/models/Forest/ModelTexture52.png deleted file mode 100644 index ef9d835..0000000 Binary files a/resources/models/Forest/ModelTexture52.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture53.png b/resources/models/Forest/ModelTexture53.png deleted file mode 100644 index 0592766..0000000 Binary files a/resources/models/Forest/ModelTexture53.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture54.png b/resources/models/Forest/ModelTexture54.png deleted file mode 100644 index 25080ff..0000000 Binary files a/resources/models/Forest/ModelTexture54.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture55.png b/resources/models/Forest/ModelTexture55.png deleted file mode 100644 index 36f1af4..0000000 Binary files a/resources/models/Forest/ModelTexture55.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture56.png b/resources/models/Forest/ModelTexture56.png deleted file mode 100644 index 1179f63..0000000 Binary files a/resources/models/Forest/ModelTexture56.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture57.png b/resources/models/Forest/ModelTexture57.png deleted file mode 100644 index 4a9a3f1..0000000 Binary files a/resources/models/Forest/ModelTexture57.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture58.png b/resources/models/Forest/ModelTexture58.png deleted file mode 100644 index 276aa20..0000000 Binary files a/resources/models/Forest/ModelTexture58.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture59.png b/resources/models/Forest/ModelTexture59.png deleted file mode 100644 index e3a67e6..0000000 Binary files a/resources/models/Forest/ModelTexture59.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture6.png b/resources/models/Forest/ModelTexture6.png deleted file mode 100644 index 1a250ee..0000000 Binary files a/resources/models/Forest/ModelTexture6.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture60.png b/resources/models/Forest/ModelTexture60.png deleted file mode 100644 index d689047..0000000 Binary files a/resources/models/Forest/ModelTexture60.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture61.png b/resources/models/Forest/ModelTexture61.png deleted file mode 100644 index 0343320..0000000 Binary files a/resources/models/Forest/ModelTexture61.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture62.png b/resources/models/Forest/ModelTexture62.png deleted file mode 100644 index 88341b4..0000000 Binary files a/resources/models/Forest/ModelTexture62.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture63.png b/resources/models/Forest/ModelTexture63.png deleted file mode 100644 index 76908cf..0000000 Binary files a/resources/models/Forest/ModelTexture63.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture64.png b/resources/models/Forest/ModelTexture64.png deleted file mode 100644 index 89b0414..0000000 Binary files a/resources/models/Forest/ModelTexture64.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture65.png b/resources/models/Forest/ModelTexture65.png deleted file mode 100644 index 7f5b8d4..0000000 Binary files a/resources/models/Forest/ModelTexture65.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture66.png b/resources/models/Forest/ModelTexture66.png deleted file mode 100644 index c96ba92..0000000 Binary files a/resources/models/Forest/ModelTexture66.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture67.png b/resources/models/Forest/ModelTexture67.png deleted file mode 100644 index 20d111f..0000000 Binary files a/resources/models/Forest/ModelTexture67.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture68.png b/resources/models/Forest/ModelTexture68.png deleted file mode 100644 index 777b958..0000000 Binary files a/resources/models/Forest/ModelTexture68.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture69.png b/resources/models/Forest/ModelTexture69.png deleted file mode 100644 index ab92425..0000000 Binary files a/resources/models/Forest/ModelTexture69.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture7.png b/resources/models/Forest/ModelTexture7.png deleted file mode 100644 index 352371c..0000000 Binary files a/resources/models/Forest/ModelTexture7.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture8.png b/resources/models/Forest/ModelTexture8.png deleted file mode 100644 index 5e6d1c1..0000000 Binary files a/resources/models/Forest/ModelTexture8.png and /dev/null differ diff --git a/resources/models/Forest/ModelTexture9.png b/resources/models/Forest/ModelTexture9.png deleted file mode 100644 index 6908544..0000000 Binary files a/resources/models/Forest/ModelTexture9.png and /dev/null differ diff --git a/resources/models/Forest/forest.glb b/resources/models/Forest/forest.glb deleted file mode 100644 index 3f6ca38..0000000 Binary files a/resources/models/Forest/forest.glb and /dev/null differ diff --git a/resources/models/Forest/forest.idx b/resources/models/Forest/forest.idx deleted file mode 100644 index 51710d5..0000000 Binary files a/resources/models/Forest/forest.idx and /dev/null differ diff --git a/resources/models/Forest/forest.json b/resources/models/Forest/forest.json deleted file mode 100644 index 896502b..0000000 --- a/resources/models/Forest/forest.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "ID": "forest", - "Meshes": [ - { - "ID": "Background_Tree_Atlas.001_Background_Tree_Atlas_0_0", - "MaterialID": "forest-mat-0", - "OffsetVertex": 0, - "VertexSize": 5860960, - "OffsetIndex": 0, - "IndexSize": 1125636 - }, - { - "ID": "Background_Tree_Atlas.002_Metal_Fence_0_1", - "MaterialID": "forest-mat-1", - "OffsetVertex": 5860960, - "VertexSize": 9184, - "OffsetIndex": 1125636, - "IndexSize": 984 - }, - { - "ID": "Background_Tree_Atlas.003_Dirt_Road_Bare_0_2", - "MaterialID": "forest-mat-2", - "OffsetVertex": 5870144, - "VertexSize": 13160, - "OffsetIndex": 1126620, - "IndexSize": 4740 - }, - { - "ID": "Background_Tree_Atlas.004_Trunk_Birch_0_3", - "MaterialID": "forest-mat-3", - "OffsetVertex": 5883304, - "VertexSize": 674016, - "OffsetIndex": 1131360, - "IndexSize": 155052 - }, - { - "ID": "Background_Tree_Atlas.005_Wood_Log_0_4", - "MaterialID": "forest-mat-4", - "OffsetVertex": 6557320, - "VertexSize": 56448, - "OffsetIndex": 1286412, - "IndexSize": 10584 - }, - { - "ID": "Background_Tree_Atlas.006_Trunk_Oak_0_5", - "MaterialID": "forest-mat-5", - "OffsetVertex": 6613768, - "VertexSize": 3659488, - "OffsetIndex": 1296996, - "IndexSize": 841836 - }, - { - "ID": "Background_Tree_Atlas.007_Fallen_Generic_Leaves_0_6", - "MaterialID": "forest-mat-6", - "OffsetVertex": 10273256, - "VertexSize": 379400, - "OffsetIndex": 2138832, - "IndexSize": 91788 - }, - { - "ID": "Background_Tree_Atlas.008_Ground_Dirt_0_7", - "MaterialID": "forest-mat-7", - "OffsetVertex": 10652656, - "VertexSize": 452032, - "OffsetIndex": 2230620, - "IndexSize": 41844 - }, - { - "ID": "Background_Tree_Atlas.009_Forest_Bush_0_8", - "MaterialID": "forest-mat-8", - "OffsetVertex": 11104688, - "VertexSize": 726992, - "OffsetIndex": 2272464, - "IndexSize": 102840 - }, - { - "ID": "Background_Tree_Atlas.010_Grass_Vegetation_Dry_0_9", - "MaterialID": "forest-mat-9", - "OffsetVertex": 11831680, - "VertexSize": 1873312, - "OffsetIndex": 2375304, - "IndexSize": 200712 - }, - { - "ID": "Background_Tree_Atlas.011_Grass_Vegetation_Green_0_10", - "MaterialID": "forest-mat-10", - "OffsetVertex": 13704992, - "VertexSize": 2930144, - "OffsetIndex": 2576016, - "IndexSize": 313512 - }, - { - "ID": "Background_Tree_Atlas.012_Fallen_Maple_Leaves_0_11", - "MaterialID": "forest-mat-11", - "OffsetVertex": 16635136, - "VertexSize": 583520, - "OffsetIndex": 2889528, - "IndexSize": 138060 - }, - { - "ID": "Background_Tree_Atlas.013_Rock_Decal_0_12", - "MaterialID": "forest-mat-12", - "OffsetVertex": 17218656, - "VertexSize": 861896, - "OffsetIndex": 3027588, - "IndexSize": 246348 - }, - { - "ID": "Background_Tree_Atlas.014_Mud_Pile_0_13", - "MaterialID": "forest-mat-13", - "OffsetVertex": 18080552, - "VertexSize": 48720, - "OffsetIndex": 3273936, - "IndexSize": 18108 - }, - { - "ID": "Background_Tree_Atlas.015_Dirt_Road_Trails_0_14", - "MaterialID": "forest-mat-14", - "OffsetVertex": 18129272, - "VertexSize": 169792, - "OffsetIndex": 3292044, - "IndexSize": 63504 - }, - { - "ID": "Background_Tree_Atlas.016_Road_Edge_Gravel_Dusty_0_15", - "MaterialID": "forest-mat-15", - "OffsetVertex": 18299064, - "VertexSize": 102368, - "OffsetIndex": 3355548, - "IndexSize": 37512 - }, - { - "ID": "Background_Tree_Atlas.017_Puddle_Streaks_0_16", - "MaterialID": "forest-mat-16", - "OffsetVertex": 18401432, - "VertexSize": 113848, - "OffsetIndex": 3393060, - "IndexSize": 44316 - }, - { - "ID": "Background_Tree_Atlas.018_Wood_Fence_0_17", - "MaterialID": "forest-mat-17", - "OffsetVertex": 18515280, - "VertexSize": 63280, - "OffsetIndex": 3437376, - "IndexSize": 8016 - }, - { - "ID": "Background_Tree_Atlas.019_Sloped_Rock_0_18", - "MaterialID": "forest-mat-18", - "OffsetVertex": 18578560, - "VertexSize": 1375640, - "OffsetIndex": 3445392, - "IndexSize": 123444 - }, - { - "ID": "Background_Tree_Atlas.020_Terrain_Far_0_19", - "MaterialID": "forest-mat-19", - "OffsetVertex": 19954200, - "VertexSize": 156184, - "OffsetIndex": 3568836, - "IndexSize": 31728 - }, - { - "ID": "Background_Tree_Atlas.021_Aerial_Grass_0_20", - "MaterialID": "forest-mat-20", - "OffsetVertex": 20110384, - "VertexSize": 1072624, - "OffsetIndex": 3600564, - "IndexSize": 128748 - }, - { - "ID": "Background_Tree_Atlas.022_Tall_Cliff_0_21", - "MaterialID": "forest-mat-21", - "OffsetVertex": 21183008, - "VertexSize": 1084664, - "OffsetIndex": 3729312, - "IndexSize": 93840 - }, - { - "ID": "Background_Tree_Atlas.023_Cobblestone_0_22", - "MaterialID": "forest-mat-22", - "OffsetVertex": 22267672, - "VertexSize": 114016, - "OffsetIndex": 3823152, - "IndexSize": 10860 - }, - { - "ID": "Background_Tree_Atlas.024_Grass_Close_0_23", - "MaterialID": "forest-mat-23", - "OffsetVertex": 22381688, - "VertexSize": 471184, - "OffsetIndex": 3834012, - "IndexSize": 87936 - }, - { - "ID": "Background_Tree_Atlas.025_Dirt_Road_0_24", - "MaterialID": "forest-mat-24", - "OffsetVertex": 22852872, - "VertexSize": 305928, - "OffsetIndex": 3921948, - "IndexSize": 120624 - }, - { - "ID": "Background_Tree_Atlas.026_Broken_Rocks_0_25", - "MaterialID": "forest-mat-25", - "OffsetVertex": 23158800, - "VertexSize": 632744, - "OffsetIndex": 4042572, - "IndexSize": 50736 - } - ], - "VertexPath": "resources/models/Forest/forest.vtx", - "IndexPath": "resources/models/Forest/forest.idx" -} \ No newline at end of file diff --git a/resources/models/Forest/forest.vtx b/resources/models/Forest/forest.vtx deleted file mode 100644 index d5d3e43..0000000 Binary files a/resources/models/Forest/forest.vtx and /dev/null differ diff --git a/resources/models/Forest/forest_mat.json b/resources/models/Forest/forest_mat.json deleted file mode 100644 index cc63f7e..0000000 --- a/resources/models/Forest/forest_mat.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - { - "ID": "forest-mat-0", - "TexturePath": "resources\\models\\Forest\\ModelTexture0.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture2.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture1.png", - "DiffuseColour": { - "X": 0.3347269, - "Y": 0.3347269, - "Z": 0.3347269, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-1", - "TexturePath": "resources\\models\\Forest\\ModelTexture4.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture6.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture5.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-2", - "TexturePath": "resources\\models\\Forest\\ModelTexture7.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture9.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture8.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-3", - "TexturePath": "resources\\models\\Forest\\ModelTexture10.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture12.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture11.png", - "DiffuseColour": { - "X": 0.8147891, - "Y": 0.8147891, - "Z": 0.8147891, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-4", - "TexturePath": "resources\\models\\Forest\\ModelTexture13.png", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 0.9849378, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-5", - "TexturePath": "resources\\models\\Forest\\ModelTexture14.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture16.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture15.png", - "DiffuseColour": { - "X": 0.9180937, - "Y": 0.9180937, - "Z": 0.9180937, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-6", - "TexturePath": "resources\\models\\Forest\\ModelTexture17.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture19.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture18.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-7", - "TexturePath": "resources\\models\\Forest\\ModelTexture20.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture22.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture21.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-8", - "TexturePath": "resources\\models\\Forest\\ModelTexture23.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture24.png", - "MetalRoughnessMap": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-9", - "TexturePath": "resources\\models\\Forest\\ModelTexture25.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture27.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture26.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-10", - "TexturePath": "resources\\models\\Forest\\ModelTexture28.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture27.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture26.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-11", - "TexturePath": "resources\\models\\Forest\\ModelTexture29.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture31.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture30.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-12", - "TexturePath": "resources\\models\\Forest\\ModelTexture32.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture34.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture33.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-13", - "TexturePath": "resources\\models\\Forest\\ModelTexture35.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture37.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture36.png", - "DiffuseColour": { - "X": 0.79048216, - "Y": 0.79048216, - "Z": 0.79048216, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-14", - "TexturePath": "resources\\models\\Forest\\ModelTexture38.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture40.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture39.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-15", - "TexturePath": "resources\\models\\Forest\\ModelTexture41.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture43.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture42.png", - "DiffuseColour": { - "X": 0.6446405, - "Y": 0.6446405, - "Z": 0.6446405, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-16", - "TexturePath": "resources\\models\\Forest\\ModelTexture44.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture46.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture45.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 0.7783287, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-17", - "TexturePath": "resources\\models\\Forest\\ModelTexture47.png", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 0.9484773, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-18", - "TexturePath": "resources\\models\\Forest\\ModelTexture48.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture50.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture49.png", - "DiffuseColour": { - "X": 0.74186826, - "Y": 0.74186826, - "Z": 0.74186826, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-19", - "TexturePath": "resources\\models\\Forest\\ModelTexture51.png", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-20", - "TexturePath": "resources\\models\\Forest\\ModelTexture52.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture54.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture53.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-21", - "TexturePath": "resources\\models\\Forest\\ModelTexture55.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture57.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture56.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-22", - "TexturePath": "resources\\models\\Forest\\ModelTexture58.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture60.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture59.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-23", - "TexturePath": "resources\\models\\Forest\\ModelTexture61.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture63.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture62.png", - "DiffuseColour": { - "X": 0.8998634, - "Y": 0.8998634, - "Z": 0.8998634, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-24", - "TexturePath": "resources\\models\\Forest\\ModelTexture64.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture66.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture65.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-25", - "TexturePath": "resources\\models\\Forest\\ModelTexture67.png", - "NormalTexturePath": "resources\\models\\Forest\\ModelTexture69.png", - "MetalRoughnessMap": "resources\\models\\Forest\\ModelTexture68.png", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 0.0 - }, - { - "ID": "forest-mat-26", - "TexturePath": "", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "Roughness": 1.0, - "Metallic": 1.0 - } -] \ No newline at end of file diff --git a/resources/models/ModelCredits.txt b/resources/models/ModelCredits.txt deleted file mode 100644 index 3aff187..0000000 --- a/resources/models/ModelCredits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Dirt Road - 99.Miles on sketchfab -https://sketchfab.com/3d-models/free-dirt-road-through-forest-c4676cdf7715484382400ff63faffd45 - -radio - TraianDumbrava on sketchfab -https://sketchfab.com/3d-models/radio-d21d6bf783154170bfa6dc7ce0a208f1 - -Sponza - its self explanatory diff --git a/resources/models/MusicParticle/MusicParticle.idx b/resources/models/MusicParticle/MusicParticle.idx deleted file mode 100644 index f224964..0000000 Binary files a/resources/models/MusicParticle/MusicParticle.idx and /dev/null differ diff --git a/resources/models/MusicParticle/MusicParticle.json b/resources/models/MusicParticle/MusicParticle.json deleted file mode 100644 index f7db35c..0000000 --- a/resources/models/MusicParticle/MusicParticle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "ID": "MusicParticle", - "Meshes": [ - { - "ID": "plane_0", - "MaterialID": "MusicParticle-mat-1", - "OffsetVertex": 0, - "VertexSize": 224, - "OffsetIndex": 0, - "IndexSize": 24 - } - ], - "VertexPath": "resources/models/MusicParticle/MusicParticle.vtx", - "IndexPath": "resources/models/MusicParticle/MusicParticle.idx" -} \ No newline at end of file diff --git a/resources/models/MusicParticle/MusicParticle.mtl b/resources/models/MusicParticle/MusicParticle.mtl deleted file mode 100644 index 2149b2f..0000000 --- a/resources/models/MusicParticle/MusicParticle.mtl +++ /dev/null @@ -1,4 +0,0 @@ -# Made in Blockbench 5.1.4 -newmtl m_ce0c8b4a-552e-1f03-b22d-adf149492418 -map_Kd texture.png -newmtl none \ No newline at end of file diff --git a/resources/models/MusicParticle/MusicParticle.obj b/resources/models/MusicParticle/MusicParticle.obj deleted file mode 100644 index e408d43..0000000 --- a/resources/models/MusicParticle/MusicParticle.obj +++ /dev/null @@ -1,15 +0,0 @@ -# Made in Blockbench 5.1.4 -mtllib MusicParticle.mtl - -o plane -v 0.25 0.25 5.551115123125783e-17 -v 0.25 -0.25 -5.551115123125783e-17 -v -0.25 0.25 5.551115123125783e-17 -v -0.25 -0.25 -5.551115123125783e-17 -vt 1 0 -vt 1 1 -vt 0 1 -vt 0 0 -vn 0 2.220446049250313e-16 -1 -usemtl m_ce0c8b4a-552e-1f03-b22d-adf149492418 -f 1/1/1 2/2/1 4/3/1 3/4/1 \ No newline at end of file diff --git a/resources/models/MusicParticle/MusicParticle.vtx b/resources/models/MusicParticle/MusicParticle.vtx deleted file mode 100644 index 1458af3..0000000 Binary files a/resources/models/MusicParticle/MusicParticle.vtx and /dev/null differ diff --git a/resources/models/MusicParticle/MusicParticle_mat.json b/resources/models/MusicParticle/MusicParticle_mat.json deleted file mode 100644 index ba99364..0000000 --- a/resources/models/MusicParticle/MusicParticle_mat.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "ID": "MusicParticle-mat-0", - "TexturePath": "", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "EmissiveMapPath": "", - "DiffuseColour": { - "X": 0.6, - "Y": 0.6, - "Z": 0.6, - "W": 1.0 - }, - "EmissiveColour": { - "X": 0.0, - "Y": 0.0, - "Z": 0.0, - "W": 0.0 - }, - "Roughness": 0.0, - "Metallic": 0.0 - }, - { - "ID": "MusicParticle-mat-1", - "TexturePath": "resources\\models\\MusicParticle\\texture.png", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "EmissiveMapPath": "", - "DiffuseColour": { - "X": 0.6, - "Y": 0.6, - "Z": 0.6, - "W": 1.0 - }, - "EmissiveColour": { - "X": 0.0, - "Y": 0.0, - "Z": 0.0, - "W": 0.0 - }, - "Roughness": 0.0, - "Metallic": 0.0 - }, - { - "ID": "MusicParticle-mat-2", - "TexturePath": "", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "EmissiveMapPath": "", - "DiffuseColour": { - "X": 0.6, - "Y": 0.6, - "Z": 0.6, - "W": 1.0 - }, - "EmissiveColour": { - "X": 0.0, - "Y": 0.0, - "Z": 0.0, - "W": 0.0 - }, - "Roughness": 0.0, - "Metallic": 0.0 - } -] \ No newline at end of file diff --git a/resources/models/MusicParticle/texture.png b/resources/models/MusicParticle/texture.png deleted file mode 100644 index a0bb339..0000000 Binary files a/resources/models/MusicParticle/texture.png and /dev/null differ diff --git a/resources/models/radio/ModelTexture0.png b/resources/models/radio/ModelTexture0.png deleted file mode 100644 index 2b1469c..0000000 Binary files a/resources/models/radio/ModelTexture0.png and /dev/null differ diff --git a/resources/models/radio/ModelTexture1.png b/resources/models/radio/ModelTexture1.png deleted file mode 100644 index df53c1c..0000000 Binary files a/resources/models/radio/ModelTexture1.png and /dev/null differ diff --git a/resources/models/radio/ModelTexture2.png b/resources/models/radio/ModelTexture2.png deleted file mode 100644 index 7f91331..0000000 Binary files a/resources/models/radio/ModelTexture2.png and /dev/null differ diff --git a/resources/models/radio/radio.glb b/resources/models/radio/radio.glb deleted file mode 100644 index 8c1ebc7..0000000 Binary files a/resources/models/radio/radio.glb and /dev/null differ diff --git a/resources/models/radio/radio.idx b/resources/models/radio/radio.idx deleted file mode 100644 index 3caee5d..0000000 Binary files a/resources/models/radio/radio.idx and /dev/null differ diff --git a/resources/models/radio/radio.json b/resources/models/radio/radio.json deleted file mode 100644 index 5e41d4d..0000000 --- a/resources/models/radio/radio.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "ID": "radio", - "Meshes": [ - { - "ID": "Radio_20 - Default_0_0", - "MaterialID": "radio-mat-0", - "OffsetVertex": 0, - "VertexSize": 55776, - "OffsetIndex": 0, - "IndexSize": 10104 - } - ], - "VertexPath": "resources/models/radio/radio.vtx", - "IndexPath": "resources/models/radio/radio.idx" -} \ No newline at end of file diff --git a/resources/models/radio/radio.vtx b/resources/models/radio/radio.vtx deleted file mode 100644 index 29036f6..0000000 Binary files a/resources/models/radio/radio.vtx and /dev/null differ diff --git a/resources/models/radio/radio_mat.json b/resources/models/radio/radio_mat.json deleted file mode 100644 index 6504b1f..0000000 --- a/resources/models/radio/radio_mat.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - { - "ID": "radio-mat-0", - "TexturePath": "resources\\models\\radio\\ModelTexture0.png", - "NormalTexturePath": "resources\\models\\radio\\ModelTexture2.png", - "MetalRoughnessMap": "resources\\models\\radio\\ModelTexture1.png", - "EmissiveMapPath": "", - "DiffuseColour": { - "X": 0.8042929, - "Y": 0.8042929, - "Z": 0.8042929, - "W": 1.0 - }, - "EmissiveColour": { - "X": 0.0, - "Y": 0.0, - "Z": 0.0, - "W": 0.0 - }, - "Roughness": 1.0, - "Metallic": 1.0 - }, - { - "ID": "radio-mat-1", - "TexturePath": "", - "NormalTexturePath": "", - "MetalRoughnessMap": "", - "EmissiveMapPath": "", - "DiffuseColour": { - "X": 1.0, - "Y": 1.0, - "Z": 1.0, - "W": 1.0 - }, - "EmissiveColour": { - "X": 0.0, - "Y": 0.0, - "Z": 0.0, - "W": 0.0 - }, - "Roughness": 1.0, - "Metallic": 1.0 - } -] \ No newline at end of file diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionManager.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionManager.java index 95bab7b..2176208 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionManager.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionManager.java @@ -1,6 +1,7 @@ package net.halbear.Terrain4J.EngineCore.Logic.Collision; import org.joml.Vector3f; +import org.joml.primitives.AABBf; import java.util.ArrayList; import java.util.HashMap; @@ -10,41 +11,77 @@ import java.util.Map; public class CollisionManager { public static Map CollisionMeshes = new HashMap<>(); public static Map> CollisionChunks = new HashMap<>(); + public static List AlwaysCheckMeshes = new ArrayList<>(); public static int ChunkWidth = 64; public static void AddNewMesh(CollisionMesh mesh){ CollisionMeshes.put(mesh.ID, mesh); - Vector3f WorldPos = new Vector3f(mesh.WorldPosition).div(ChunkWidth); - WorldPos.x = (int)Math.floor(WorldPos.x); - WorldPos.y = (int)Math.floor(WorldPos.y); - WorldPos.z = (int)Math.floor(WorldPos.z); - String ChunkPosition = WorldPos.x + ":" + WorldPos.y + ":" + WorldPos.z; - if(!CollisionChunks.containsKey(ChunkPosition)){ - List newStrList = new ArrayList<>(); - CollisionChunks.put(ChunkPosition, newStrList); + AABBf Bounds = mesh.GetVoxelCollider(); + if(Bounds != null) { + Vector3f LowestPoints = new Vector3f(Bounds.minX, Bounds.minY, Bounds.minZ).div(ChunkWidth); + LowestPoints.x = (int) Math.floor(LowestPoints.x); + LowestPoints.y = (int) Math.floor(LowestPoints.y); + LowestPoints.z = (int) Math.floor(LowestPoints.z); + Vector3f LargestPoints = new Vector3f(Bounds.maxX, Bounds.maxY, Bounds.maxZ).div(ChunkWidth); + LargestPoints.x = (int) Math.ceil(LargestPoints.x); + LargestPoints.y = (int) Math.ceil(LargestPoints.y); + LargestPoints.z = (int) Math.ceil(LargestPoints.z); + for (int x = (int) LowestPoints.x; x < LargestPoints.x + 1; x++) { + for (int y = (int) LowestPoints.y; y < LargestPoints.y + 1; y++) { + for (int z = (int) LowestPoints.z; z < LargestPoints.z + 1; z++) { + String ChunkPosition = x + ":" + y + ":" + z; + if (!CollisionChunks.containsKey(ChunkPosition)) { + List newStrList = new ArrayList<>(); + CollisionChunks.put(ChunkPosition, newStrList); + } + CollisionChunks.get(ChunkPosition).add(mesh.ID); + } + } + } + } else{ + AlwaysCheckMeshes.add(mesh.ID); } - CollisionChunks.get(ChunkPosition).add(mesh.ID); + } + + public static List GetCollisionMeshesAtChunk(String Chunk){ + return CollisionChunks.get(Chunk) == null ? new ArrayList<>() : CollisionChunks.get(Chunk); } public static List GetAllCollisionMeshes(){return CollisionMeshes.values().stream().toList();} - public static void UpdateCollisionChunks(){ + public static synchronized void UpdateCollisionChunks(){ Map> newMap = new HashMap<>(); List meshes = GetAllCollisionMeshes(); + List AlwaysShowMesh = new ArrayList<>(); for(int i = 0; i < meshes.size(); i++){ - Vector3f WorldPos = new Vector3f(meshes.get(i).WorldPosition).div(ChunkWidth); - WorldPos.x = (int)Math.floor(WorldPos.x); - WorldPos.y = (int)Math.floor(WorldPos.y); - WorldPos.z = (int)Math.floor(WorldPos.z); - String ChunkPosition = WorldPos.x + ":" + WorldPos.y + ":" + WorldPos.z; - if(!newMap.containsKey(ChunkPosition)){ - List newStrList = new ArrayList<>(); - newMap.put(ChunkPosition, newStrList); + CollisionMesh mesh = meshes.get(i); + AABBf Bounds = mesh.GetVoxelCollider(); + if(Bounds != null) { + Vector3f LowestPoints = new Vector3f(Bounds.minX, Bounds.minY, Bounds.minZ).div(ChunkWidth); + LowestPoints.x = (int) Math.floor(LowestPoints.x); + LowestPoints.y = (int) Math.floor(LowestPoints.y); + LowestPoints.z = (int) Math.floor(LowestPoints.z); + Vector3f LargestPoints = new Vector3f(Bounds.maxX, Bounds.maxY, Bounds.maxZ).div(ChunkWidth); + LargestPoints.x = (int) Math.ceil(LargestPoints.x); + LargestPoints.y = (int) Math.ceil(LargestPoints.y); + LargestPoints.z = (int) Math.ceil(LargestPoints.z); + for (int x = (int) LowestPoints.x; x < LargestPoints.x + 1; x++) { + for (int y = (int) LowestPoints.y; y < LargestPoints.y + 1; y++) { + for (int z = (int) LowestPoints.z; z < LargestPoints.z + 1; z++) { + String ChunkPosition = x + ":" + y + ":" + z; + if (!CollisionChunks.containsKey(ChunkPosition)) { + List newStrList = new ArrayList<>(); + CollisionChunks.put(ChunkPosition, newStrList); + } + CollisionChunks.get(ChunkPosition).add(mesh.ID); + } + } + } + } else{ + AlwaysShowMesh.add(mesh.ID); } - newMap.get(ChunkPosition).add(meshes.get(i).ID); - } - CollisionChunks.clear(); - CollisionChunks.putAll(newMap); + AlwaysCheckMeshes = (AlwaysShowMesh); + CollisionChunks = (newMap); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionMesh.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionMesh.java index aff3d70..04e328c 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionMesh.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Collision/CollisionMesh.java @@ -1,37 +1,57 @@ package net.halbear.Terrain4J.EngineCore.Logic.Collision; +import net.halbear.Terrain4J.EngineCore.Main.Scene.Actor; import net.halbear.Terrain4J.EngineCore.Main.Util.Maths.T4Math; -import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VertexBufferStructure; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.MeshData; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.ModelData; -import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.VulkanMesh; -import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.VulkanModel; import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils; import org.joml.Intersectionf; import org.joml.Quaternionf; import org.joml.Vector2f; import org.joml.Vector3f; -import org.lwjgl.system.MemoryUtil; +import org.joml.primitives.AABBf; import java.io.*; -import java.nio.FloatBuffer; -import java.nio.LongBuffer; import java.util.*; public class CollisionMesh { public final List Polygons; - public Vector3f TopLeftFront = new Vector3f(0,0,0); - public Vector3f BottomRightBack = new Vector3f(0,0,0); + public Vector3f TopRightFront = new Vector3f(0,0,0); + public Vector3f BottomLeftBack = new Vector3f(0,0,0); public Vector3f WorldPosition = new Vector3f(0,0,0); - public Quaternionf Rotation; - public Vector3f Scale; + public Quaternionf Rotation = new Quaternionf(); + public Vector3f Scale = new Vector3f(1f,1f,1f); public final String ID; - public CollisionMesh(String ID){ + public final String ParentID; + public AABBf Voxel; + + public CollisionMesh(String ID, String ActorID){ this.ID = ID; + if(ActorID != "NULL") { + Scale = new Vector3f(Actor.Actors.get(ActorID).GetScale()); + Rotation = new Quaternionf(Actor.Actors.get(ActorID).GetRotation()); + } + ParentID = ActorID; Polygons = new ArrayList<>(); + } + + public void RegisterMesh(){ CollisionManager.AddNewMesh(this); } + public AABBf GetVoxelCollider(){ + if(TopRightFront == null || BottomLeftBack == null) return null; + if(Voxel == null){ + Vector3f TLF = new Vector3f(TopRightFront); + Vector3f BRB = new Vector3f(BottomLeftBack); + TLF = TLF.mul(Scale).rotate(Rotation).add(WorldPosition); + BRB = BRB.mul(Scale).rotate(Rotation).add(WorldPosition); + AABBf ThisVoxel = new AABBf(BRB,TLF); + this.Voxel = ThisVoxel; + } + return Voxel; + } + public CollisionMesh SetWorldPosition(Vector3f newPos){ this.WorldPosition = new Vector3f(newPos); return this; @@ -107,37 +127,71 @@ public class CollisionMesh { } public void CheckAABbounds(Vector3f v1, Vector3f v2, Vector3f v3){ - float Bottom = Math.min(Math.min(v3.y, v1.y), Math.min(v3.y, v2.y)); - float Left = Math.min(Math.min(v3.x, v1.x), Math.min(v3.x, v2.x)); - float back = Math.min(Math.min(v3.z, v1.z), Math.min(v3.z, v2.z)); - float Top = Math.max(Math.max(v3.y, v1.y), Math.max(v3.y, v2.y)); - float Right = Math.max(Math.max(v3.x, v1.x), Math.max(v3.x, v2.x)); - float Front = Math.max(Math.max(v3.z, v1.z), Math.max(v3.z, v2.z)); - TopLeftFront.x = Math.min(TopLeftFront.x, Left); - TopLeftFront.y = Math.max(TopLeftFront.y, Top); - TopLeftFront.z = Math.max(TopLeftFront.z, Front); - BottomRightBack.x = Math.max(BottomRightBack.x, Right); - BottomRightBack.y = Math.min(BottomRightBack.y, Bottom); - BottomRightBack.z = Math.min(BottomRightBack.z, back); + float localMinX = Math.min(v1.x, Math.min(v2.x, v3.x)); + float localMinY = Math.min(v1.y, Math.min(v2.y, v3.y)); + float localMinZ = Math.min(v1.z, Math.min(v2.z, v3.z)); + float localMaxX = Math.max(v1.x, Math.max(v2.x, v3.x)); + float localMaxY = Math.max(v1.y, Math.max(v2.y, v3.y)); + float localMaxZ = Math.max(v1.z, Math.max(v2.z, v3.z)); + TopRightFront.x = Math.max(TopRightFront.x, localMaxX); + TopRightFront.y = Math.max(TopRightFront.y, localMaxY); + TopRightFront.z = Math.max(TopRightFront.z, localMaxZ); + BottomLeftBack.x = Math.min(BottomLeftBack.x, localMinX); + BottomLeftBack.y = Math.min(BottomLeftBack.y, localMinY); + BottomLeftBack.z = Math.min(BottomLeftBack.z, localMinZ); } public void AddNewCollisionPoly(Vector3f v1, Vector3f v2, Vector3f v3){ + // if(Actor.Actors.get(ParentID) != null) { + // PhysicsController physicsController = Actor.Actors.get(ParentID).GetPhysicsController(); + // if (physicsController != null) { + // physicsController.AddCollisionSensor(v1); + // physicsController.AddCollisionSensor(v2); + // physicsController.AddCollisionSensor(v3); + // } + // } CollisionPoly newPoly = new CollisionPoly(v1,v2,v3,new Vector3f(0,0,0)); newPoly.CalculateCentre(); Polygons.add(newPoly); CheckAABbounds(v1,v2,v3); } + public boolean CheckAABBCollisionAgainstAABB(Vector3f inTopLeftFront, Vector3f inBottomRightBack){ + AABBf OtherVoxel = new AABBf(inBottomRightBack,inTopLeftFront); + Vector3f TLF = new Vector3f(TopRightFront); + Vector3f BRB = new Vector3f(BottomLeftBack); + TLF = TLF.mul(Scale).rotate(Rotation).add(WorldPosition); + BRB = BRB.mul(Scale).rotate(Rotation).add(WorldPosition); + AABBf ThisVoxel = new AABBf(BRB,TLF); + this.Voxel = ThisVoxel; + return ThisVoxel.intersectsAABB(OtherVoxel); + } + + public boolean CheckAABBCollisionAgainstAABB(AABBf OtherVoxel){ + Vector3f TLF = new Vector3f(TopRightFront); + Vector3f BRB = new Vector3f(BottomLeftBack); + TLF = TLF.mul(Scale).rotate(Rotation).add(WorldPosition); + BRB = BRB.mul(Scale).rotate(Rotation).add(WorldPosition); + AABBf ThisVoxel = new AABBf(BRB,TLF); + this.Voxel = ThisVoxel; + return ThisVoxel.intersectsAABB(OtherVoxel); + } + public boolean CheckAABCollision(Vector3f Origin, Vector3f Sensor){ Vector3f LineDirection = new Vector3f(Sensor).sub(Origin); Vector2f Result = new Vector2f(); - return Intersectionf.intersectRayAab(Origin, LineDirection,BottomRightBack,TopLeftFront,Result) && Result.x <= 1.0f && Result.y >= 0.0f; + Vector3f TLF = new Vector3f(TopRightFront); + Vector3f BRB = new Vector3f(BottomLeftBack); + TLF = TLF.mul(Scale).rotate(Rotation).add(WorldPosition); + BRB = BRB.mul(Scale).rotate(Rotation).add(WorldPosition); + AABBf ThisVoxel = new AABBf(BRB,TLF); + return Intersectionf.intersectRayAab(Origin, LineDirection,BRB,TLF,Result) && Result.x <= 1.0f && Result.y >= 0.0f; } public boolean SimpleCheckCollision(Vector3f Origin, Vector3f Sensor){ Vector3f LineDirection = new Vector3f(Sensor).sub(Origin); Vector2f Result = new Vector2f(0,0); - if(Intersectionf.intersectRayAab(Origin, LineDirection,BottomRightBack,TopLeftFront,Result) && Result.x <= 1.0f && Result.y >= 0.0f){ + if(Intersectionf.intersectRayAab(Origin, LineDirection, BottomLeftBack, TopRightFront,Result) && Result.x <= 1.0f && Result.y >= 0.0f){ for(int i = 0; i < Polygons.size(); i++){ CollisionPoly polygon = Polygons.get(i); if(T4Math.Math3D.DoesLineCollideWithPoly(Origin,Sensor,new Vector3f[]{polygon.v1(),polygon.v2(),polygon.v3()})){ @@ -151,18 +205,20 @@ public class CollisionMesh { public CollisionPoly[] GetAllPolygons(){ int Rows = Polygons.size(); CollisionPoly[] PolygonArr = new CollisionPoly[Rows * 3]; + Vector3f PivotOffset = Actor.Actors.get(ParentID) != null ? new Vector3f(Actor.Actors.get(ParentID).GetPivotOffset()).add(Actor.Actors.get(ParentID).GetAditionalPivotOffset()) : new Vector3f(0,0,0); for(int row = 0; row < Rows; row++){ - PolygonArr[row] = Polygons.get(row).TransformScale(Scale).TransformRotation(Rotation).TransformPosition(WorldPosition); + PolygonArr[row] = Polygons.get(row).TransformScale(Scale).TransformPosition(PivotOffset).TransformRotation(Rotation).TransformPosition(PivotOffset.negate()).TransformPosition(WorldPosition); } return PolygonArr; } public Vector3f[] GetAllVertices(){ int Rows = Polygons.size(); + Vector3f PivotOffset = Actor.Actors.get(ParentID) != null ? new Vector3f(Actor.Actors.get(ParentID).GetPivotOffset()).add(Actor.Actors.get(ParentID).GetAditionalPivotOffset()) : new Vector3f(0,0,0); Vector3f[] Vertices = new Vector3f[Rows * 3]; for(int row = 0; row < Rows; row++){ int StartPos = row * 3; - CollisionPoly poly = Polygons.get(row).TransformScale(Scale).TransformRotation(Rotation).TransformPosition(WorldPosition); + CollisionPoly poly = Polygons.get(row).TransformScale(Scale).TransformPosition(PivotOffset).TransformRotation(Rotation).TransformPosition(PivotOffset.negate()).TransformPosition(WorldPosition); Vertices[StartPos] = new Vector3f(poly.v1().x,poly.v1().y,poly.v1().z); Vertices[StartPos + 1] = new Vector3f(poly.v2().x,poly.v2().y,poly.v2().z); Vertices[StartPos + 2] = new Vector3f(poly.v3().x,poly.v3().y,poly.v3().z); diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/CollisionSensor.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/CollisionSensor.java new file mode 100644 index 0000000..8ef2cef --- /dev/null +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/CollisionSensor.java @@ -0,0 +1,29 @@ +package net.halbear.Terrain4J.EngineCore.Logic.Physics; + +import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionPoly; +import org.joml.Quaternionf; +import org.joml.Vector3f; + +public record CollisionSensor(Vector3f Offset, String ActorID) { + public CollisionSensor TransformRotation(Quaternionf quaternionf){ + if(quaternionf == null ) return this; + Vector3f newV1 = new Vector3f(Offset); + newV1.rotate(quaternionf); + CollisionSensor newPoly = new CollisionSensor(newV1,ActorID); + return newPoly; + } + public CollisionSensor TransformScale(Vector3f Scale){ + if(Scale == null ) return this; + Vector3f newV1 = new Vector3f(Offset); + newV1.mul(Scale); + CollisionSensor newPoly = new CollisionSensor(newV1,ActorID); + return newPoly; + } + public CollisionSensor TransformPosition(Vector3f Position){ + if(Position == null ) return this; + Vector3f newV1 = new Vector3f(Offset); + newV1.add(Position); + CollisionSensor newPoly = new CollisionSensor(newV1,ActorID); + return newPoly; + } +} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/PhysicsController.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/PhysicsController.java new file mode 100644 index 0000000..7aa86b8 --- /dev/null +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/PhysicsController.java @@ -0,0 +1,132 @@ +package net.halbear.Terrain4J.EngineCore.Logic.Physics; + +import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionManager; +import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionMesh; +import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionPoly; +import net.halbear.Terrain4J.EngineCore.Main.Scene.Actor; +import net.halbear.Terrain4J.EngineCore.Main.Util.Maths.T4Math; +import org.joml.Vector3f; +import org.tinylog.Logger; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import static net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionManager.ChunkWidth; + +public class PhysicsController { + + public List collisionSensors; + public Vector3f Velocities = new Vector3f(0,0,0); + public Vector3f WeightBalance = new Vector3f(0,0,0); + public float MassKG = 10.0f; + public Vector3f TerminalVelocitiesMS = new Vector3f(36f,6.6f,36f); + public Vector3f Drag = new Vector3f(0.2f,0.2f,0.2f); + public Vector3f DragCoefficients = new Vector3f(0.1f,0.1f,0.1f); + public Vector3f CrossSectionAreas = new Vector3f(1.8f * 0.9f, 0.6f * 0.9f, 1.8f * 0.6f); + public Vector3f WeightDistribution = new Vector3f(2.0f,5.0f,7.0f); + public float FallingAcceleration = 0.0f; + public float Bounciness = 0.3f; + String CurrentChunkPosition = "NULL"; + + public void CalculateDragCoefficients(){ + Vector3f dragCoefficients = WorldPhysicsManager.CalculateDragFromTerminalVelocities(TerminalVelocitiesMS,MassKG,CrossSectionAreas); + this.DragCoefficients = new Vector3f(dragCoefficients); + } + public void CalculateDrag(){ + Vector3f drag = WorldPhysicsManager.CalculateRealDrag(Velocities,DragCoefficients,CrossSectionAreas); + this.Drag = new Vector3f(drag); + } + public void CalculateFallSpeed(){ + FallingAcceleration = WorldPhysicsManager.CalculateGravityForce(MassKG, Drag); + } + + public final String ID; + public final String ParentID; + + public PhysicsController(String ActorID){ + collisionSensors = new ArrayList<>(); + ID = ActorID + "_PHYSICS_CONTROLLER"; + ParentID = ActorID; + WorldPhysicsManager.PhysicsObjects.put(ID, this); + WorldPhysicsManager.ActiveControllers.add(ID); + Actor actor = Actor.Actors.get(ParentID); + Vector3f WorldPos = new Vector3f(actor.GetPosition()).div(ChunkWidth); + WorldPos.x = (int)Math.floor(WorldPos.x); + WorldPos.y = (int)Math.floor(WorldPos.y); + WorldPos.z = (int)Math.floor(WorldPos.z); + CurrentChunkPosition = WorldPos.x + ":" + WorldPos.y + ":" + WorldPos.z; + CalculateDragCoefficients(); + } + + public PhysicsController AddCollisionSensor(Vector3f RelativeOffset){ + collisionSensors.add(new CollisionSensor(RelativeOffset, ParentID)); + return this; + } + + public void PhysicsTick(float DeltaTime, float TargetFrameRate){ + Actor actor = Actor.Actors.get(ParentID); + Vector3f Position = new Vector3f(actor.GetPosition()); + Vector3f NextPosition = new Vector3f(Position); + Vector3f Velocity = new Vector3f(Velocities); + Velocity = Velocity.mul(DeltaTime); + NextPosition.add(Velocity); + boolean ValidMovement = true; + CalculateDrag(); + CalculateFallSpeed(); + Velocities.y -= (FallingAcceleration/(TargetFrameRate*2)) * DeltaTime; + Velocities = Velocities.mul((1f - (WorldPhysicsManager.Drag * (DeltaTime))),1f,(1f - (WorldPhysicsManager.Drag * (DeltaTime)))); + if(collisionSensors != null && !collisionSensors.isEmpty()) { + // Vector3f WorldPos = new Vector3f(NextPosition).div(ChunkWidth); + // WorldPos.x = (int) Math.floor(WorldPos.x); + // WorldPos.y = (int) Math.floor(WorldPos.y); + // WorldPos.z = (int) Math.floor(WorldPos.z); + // String NextChunkPosition = WorldPos.x + ":" + WorldPos.y + ":" + WorldPos.z; + // List CollisionMeshesToCycleThrough = new ArrayList<>(CollisionManager.AlwaysCheckMeshes); + // CollisionMeshesToCycleThrough.addAll(CollisionManager.GetCollisionMeshesAtChunk(NextChunkPosition)); + // if (!NextChunkPosition.equals(CurrentChunkPosition)) { + // CollisionMeshesToCycleThrough.addAll(CollisionManager.GetCollisionMeshesAtChunk(CurrentChunkPosition)); + // CurrentChunkPosition = NextChunkPosition; + // } + // Logger.debug(CollisionMeshesToCycleThrough.size()); + List CollisionMeshesToCycleThrough = CollisionManager.GetAllCollisionMeshes(); + //Logger.debug("Collision Mesh Count [{}]",CollisionMeshesToCycleThrough.size()); + Vector3f PivotOffset = Actor.Actors.get(ParentID) != null ? new Vector3f(Actor.Actors.get(ParentID).GetPivotOffset()).add(Actor.Actors.get(ParentID).GetAditionalPivotOffset()) : new Vector3f(0,0,0); + List CollidingSensors = new ArrayList<>(); + for (int j = 0; j < collisionSensors.size(); j++) { + CollidingSensors.add(collisionSensors.get(j).TransformScale(actor.GetScale()).TransformPosition(PivotOffset).TransformRotation(actor.GetRotation()).TransformPosition(PivotOffset.negate()).TransformPosition(NextPosition)); + } + if(CollidingSensors.size() > 0){ + for(int i = 0; i < CollisionMeshesToCycleThrough.size(); i++){ + CollisionMesh collisionMesh = CollisionMeshesToCycleThrough.get(i); + if(collisionMesh != null && !Objects.equals(collisionMesh.ID, actor.GetCollisionMesh().ID) && collisionMesh.CheckAABBCollisionAgainstAABB(collisionMesh.GetVoxelCollider())) { + CollisionPoly[] polygons = collisionMesh.GetAllPolygons(); + for(int j = 0; j < polygons.length; j++){ + CollisionPoly poly = polygons[j]; + if(poly != null) { + for (int k = 0; k < CollidingSensors.size(); k++) { + Vector3f CollisionPoint = T4Math.Math3D.LineCollisionPointWithPoly(NextPosition, CollidingSensors.get(k).Offset(), new Vector3f[]{poly.v1(), poly.v2(), poly.v3()}); + if (CollisionPoint != null) { + Vector3f subtraction = new Vector3f(NextPosition).sub(CollisionPoint); + if(Math.abs(subtraction.x) > 0.1f && Math.abs(subtraction.z) > 0.1f) { + NextPosition.sub(new Vector3f(NextPosition).sub(CollisionPoint)); + } else { + NextPosition.sub(0,new Vector3f(NextPosition).sub(CollisionPoint).y,0); + } + Velocities.y = -Velocities.y * Bounciness; + if(Math.abs(Velocities.y) < 0.05f) Velocities.y = 0; + ValidMovement = false; + } + if(!ValidMovement)break; + } + } + if(!ValidMovement)break; + } + } + if(!ValidMovement)break; + } + } + } + actor.SetPosition(NextPosition); + } +} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/WorldPhysicsManager.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/WorldPhysicsManager.java new file mode 100644 index 0000000..72a6ada --- /dev/null +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/Physics/WorldPhysicsManager.java @@ -0,0 +1,43 @@ +package net.halbear.Terrain4J.EngineCore.Logic.Physics; + +import org.joml.Vector3f; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class WorldPhysicsManager { + public static float GravityMS = 9.8f; + public static float AirResistance = 0.5f; + public static float Drag = 0.02f; + public static float AirDensityKGM3 = 1.225f; + + public static Vector3f CalculateRealDrag(Vector3f Velocity, Vector3f DragCoefficients, Vector3f CrossSectionAreas){ + float XDrag = 0.5f * (AirDensityKGM3 * Velocity.x * Velocity.x * DragCoefficients.x * CrossSectionAreas.x); + float YDrag = 0.5f * (AirDensityKGM3 * Velocity.y * Velocity.y * DragCoefficients.y * CrossSectionAreas.y); + float ZDrag = 0.5f * (AirDensityKGM3 * Velocity.z * Velocity.z * DragCoefficients.z * CrossSectionAreas.z); + return new Vector3f(XDrag,YDrag,ZDrag); + } + + public static float CalculateGravityForce(float Mass, Vector3f Drag){ + return ((Mass * GravityMS) - Drag.y)/Mass; + } + + public static Vector3f CalculateDragFromTerminalVelocities(Vector3f TerminalVelocities, float Mass, Vector3f CrossSectionAreas){ + float Cdx = (2 * Mass * GravityMS) / (AirDensityKGM3 * TerminalVelocities.x * TerminalVelocities.x * CrossSectionAreas.x); + float Cdy = (2 * Mass * GravityMS) / (AirDensityKGM3 * TerminalVelocities.y * TerminalVelocities.y * CrossSectionAreas.y); + float Cdz = (2 * Mass * GravityMS) / (AirDensityKGM3 * TerminalVelocities.z * TerminalVelocities.z * CrossSectionAreas.z); + return new Vector3f(Cdx, Cdy, Cdz); + } + + public static final Map PhysicsObjects = new HashMap<>(); + public static List ActiveControllers = new ArrayList<>(); + + public static void PhysicsTick(float DeltaTime, float TargetFrameTime){ + for(int i = 0; i < ActiveControllers.size(); i++){ + PhysicsObjects.get(ActiveControllers.get(i)).PhysicsTick(DeltaTime, TargetFrameTime); + } + } + +} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java index 1f1ee25..adfba54 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java @@ -12,11 +12,13 @@ import net.halbear.Terrain4J.EngineCore.Audio.SoundListener; import net.halbear.Terrain4J.EngineCore.Display.Window; import net.halbear.Terrain4J.EngineCore.Input.KeyboardInput; import net.halbear.Terrain4J.EngineCore.Input.MouseListener; +import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionManager; import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionMesh; import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig; import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance; import net.halbear.Terrain4J.EngineCore.Logic.GameLogic; import net.halbear.Terrain4J.EngineCore.Logic.InitData; +import net.halbear.Terrain4J.EngineCore.Logic.Physics.WorldPhysicsManager; import net.halbear.Terrain4J.EngineCore.Logic.Rendering.ModelLoader; import net.halbear.Terrain4J.EngineCore.Main.Scene.*; import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.Gimbal; @@ -78,14 +80,32 @@ public class GameCore implements GameLogic { MelonaData = ModelLoader.LoadModel("resources/models/melona/melona.json"); List MelonaDataMat = ModelLoader.LoadMaterials("resources/models/melona/melona_mat.json"); var Melona = new Actor("Melona", MelonaData.ID(), new Vector3f(0,0f,-5f)).SetRotation(0,(float)Math.toRadians(180),0); - CollisionMesh mesh = new CollisionMesh("Super Collision Mesh"); - mesh.AddNewCollisionPoly(new Vector3f(-100,-5,0),new Vector3f(-100,-5,-100),new Vector3f(0,-5,-100)); - mesh.AddNewCollisionPoly(new Vector3f(0,-5,0),new Vector3f(0,-5,-100),new Vector3f(-100,-5,0)); + Melona.CreatePhysicsController(); + Melona.GetPhysicsController() + .AddCollisionSensor(new Vector3f(0,0,0)) + .AddCollisionSensor(new Vector3f(0,1.8f,0)) + .AddCollisionSensor(new Vector3f(0.5f,0,0)) + .AddCollisionSensor(new Vector3f(-0.5f,0,0)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,0)) + .AddCollisionSensor(new Vector3f(-5f,1.8f,0)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0.5f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0.5f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(0f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(-0f,0f,-0.5f)) + .AddCollisionSensor(new Vector3f(0f,0f,0.5f)); + + CollisionMesh mesh = new CollisionMesh("Super Collision Mesh","NULL"); + mesh.AddNewCollisionPoly(new Vector3f(-100,-5,100),new Vector3f(-100,-5.5f,-100),new Vector3f(100,-6,-100)); + mesh.AddNewCollisionPoly(new Vector3f(100,-5.5f,100),new Vector3f(100,-6,-100),new Vector3f(-100,-5,100)); try { Melona.GenerateCollisionMesh(MelonaData); } catch(IOException e){ Logger.error("Could Not Generate Collison Mesh [{}]",e); } + mesh.RegisterMesh(); scene.AddActor(Melona); ActorEditorComponents.add(new EditorActorComponent(Melona,new Vector3f(0,0f,-5f),new Vector3f(1.0f,1.8f,1.0f))); CubeActors.forEach(scene::AddActor); @@ -127,7 +147,26 @@ public class GameCore implements GameLogic { public void SpawnNewActorEditorComponent(EngineInstance engineInstance){ var scene = engineInstance.scene(); - var Melona = new Actor("Melona" + scene.GetActors().size(), MelonaData.ID(), new Vector3f(scene.GetCamera().GetPosition())).SetRotation(new Vector3f(scene.GetCamera().GetRotation())); + Camera camera = scene.GetCamera().CloneCamera(); + camera.MoveForward(5); + var Melona = new Actor("MelonaSpawned" + scene.GetActors().size(), MelonaData.ID(), new Vector3f(camera.GetPosition())); + camera = null; + Melona.CreatePhysicsController(); + Melona.GetPhysicsController() + .AddCollisionSensor(new Vector3f(0,0,0)) + .AddCollisionSensor(new Vector3f(0,1.8f,0)) + .AddCollisionSensor(new Vector3f(0.5f,0,0)) + .AddCollisionSensor(new Vector3f(-0.5f,0,0)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,0)) + .AddCollisionSensor(new Vector3f(-5f,1.8f,0)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0.5f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0.5f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(0.5f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(0f,1.8f,0.5f)) + .AddCollisionSensor(new Vector3f(-0f,1.8f,-0.5f)) + .AddCollisionSensor(new Vector3f(-0f,0f,-0.5f)) + .AddCollisionSensor(new Vector3f(0f,0f,0.5f)); try { Melona.GenerateCollisionMesh(MelonaData); } catch(IOException e){ @@ -196,7 +235,7 @@ public class GameCore implements GameLogic { KeyboardInput input = window.getKeyboardInput(); float MovementDist = (float)(FrameDiffNanoSeconds / 1000000L) * MOVEMENT_SPEED; Camera camera = scene.GetCamera(); - if(input.keyPressed(GLFW_KEY_F3)){ + if(input.keySinglePress(GLFW_KEY_F3)){ GUI_MODE = (GUI_MODE + 1) % 2; } if(input.keyPressed(GLFW_KEY_1)) { @@ -208,6 +247,14 @@ public class GameCore implements GameLogic { if(input.keyPressed(GLFW_KEY_3)) { Gimbal.universalType = Gimbal.GimbalType.Rotate; } + if(input.keyPressed(GLFW_KEY_TAB)){ + for(int i = 0; i < ActorEditorComponents.size(); i++){ + ActorEditorComponents.get(i).UpdateAll(); + } + } + if(input.keySinglePress(GLFW_KEY_F2)) { + EngineConfig.getInstance().SetRenderCollisionMesh(!EngineConfig.getInstance().RenderCollisionMeshes()); + } if(input.keyPressed(GLFW_KEY_W)){ camera.MoveForward(MovementDist); } @@ -269,10 +316,18 @@ public class GameCore implements GameLogic { @Override public void Update(EngineInstance engineInstance, long FrameDiffNanoSeconds) { + } @Override public void UpdateFastThread(EngineInstance engineInstance, long FrameDiffNanoSeconds) { + float PhysicsFramerate = 24f; + float PhysicsFrameTime = 1000f/PhysicsFramerate; + float DeltaTime = (float)FrameDiffNanoSeconds/(PhysicsFrameTime*1000000f); + if(PrimaryRuntime.GetFastThread().Ticks(20)==0){ + //CollisionManager.UpdateCollisionChunks(); + } + WorldPhysicsManager.PhysicsTick(DeltaTime, PhysicsFramerate); } @Override diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java index 0dba149..f4e4b53 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java @@ -1,14 +1,19 @@ package net.halbear.Terrain4J.EngineCore.Main.Scene; +import imgui.extension.imguizmo.flag.Mode; import net.halbear.Terrain4J.EngineCore.Logic.Collision.CollisionMesh; +import net.halbear.Terrain4J.EngineCore.Logic.Physics.PhysicsController; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.ModelData; import org.joml.Matrix4f; import org.joml.Quaternionf; import org.joml.Vector3f; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; public class Actor{ + public static final Map Actors = new HashMap<>(); private final String ID; private final String ModelID; private final Matrix4f ModelMatrix; @@ -16,6 +21,10 @@ public class Actor{ private final Quaternionf Rotation; private CollisionMesh collisionMesh; private Vector3f Scale; + private PhysicsController physicsController; + private final Vector3f PivotOffset; + private final Vector3f AdditionalPivotOffset; + private final Vector3f TemporaryVector; public CollisionMesh GetCollisionMesh(){ return collisionMesh; @@ -25,15 +34,41 @@ public class Actor{ this.ID = ID; this.ModelID = ModelID; this.Position = Position; + TemporaryVector = new Vector3f(); + PivotOffset = new Vector3f(); + AdditionalPivotOffset = new Vector3f(); Scale = new Vector3f(1f,1f,1f); Rotation = new Quaternionf(); ModelMatrix = new Matrix4f(); UpdateModelMatrix(); + Actors.put(ID,this); + } + + public Vector3f GetAditionalPivotOffset(){return AdditionalPivotOffset;} + + public Actor SetAditionalPivotOffset(Vector3f offset){ + AdditionalPivotOffset.set(offset); + return this; + } + + public Vector3f GetPivotOffset(){return PivotOffset;} + + public Actor SetPivotOffset(Vector3f offset){ + PivotOffset.set(offset); + return this; + } + + public PhysicsController GetPhysicsController(){return physicsController;} + + public Actor CreatePhysicsController(){ + physicsController = new PhysicsController(ID); + return this; } public Actor GenerateCollisionMesh(ModelData modelData) throws IOException { - collisionMesh = new CollisionMesh(ID + "_COLLISION_MESH"); + collisionMesh = new CollisionMesh(ID + "_COLLISION_MESH", ID); collisionMesh.GenerateCollisionMeshFromVulkanModel(modelData); + collisionMesh.RegisterMesh(); return this; } @@ -59,7 +94,12 @@ public class Actor{ UpdateModelMatrix(); return this; } - + public Actor SetPosition(Vector3f position){ + Position.set(position); + UpdateModelMatrix(); + if(collisionMesh != null)collisionMesh.SetWorldPosition(Position); + return this; + } public Actor SetPosition(float x, float y, float z){ Position.x = x; Position.y = y; @@ -83,7 +123,10 @@ public class Actor{ } public void UpdateModelMatrix(){ + ModelMatrix.translateLocal(TemporaryVector.set(PivotOffset).add(AdditionalPivotOffset)); ModelMatrix.translationRotateScale(Position, Rotation, Scale); + ModelMatrix.translateLocal(TemporaryVector.negate()); + } public String GetID(){return ID;} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java index 8eb6d12..844f7ab 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java @@ -13,7 +13,18 @@ public class Camera { private final Matrix4f ViewMatrix; private float FOV = (float) (60 * EngineConfig.DegToRad); private boolean Sprint; - int i = 0; + + public Camera CloneCamera(){ + Camera NewCam = new Camera(); + NewCam.SetPosition(Position.x, Position.y, Position.z); + NewCam.SetRotation(Rotation.x, Rotation.y, Rotation.z); + NewCam.Right.set(new Vector3f(Right)); + NewCam.Up.set(new Vector3f(Up)); + NewCam.SetFOVrad(FOV); + NewCam.Sprint = Sprint; + NewCam.ViewMatrix.set(new Matrix4f(ViewMatrix)); + return NewCam; + } public Camera(){ Direction = new Vector3f(); @@ -24,6 +35,12 @@ public class Camera { ViewMatrix = new Matrix4f(); } + public Camera SetFOVrad(float FOVradians){ + FOV = FOVradians; + return this; + } + + public Camera SetFOV(float FOVdegrees){ FOV = (float) (FOVdegrees * EngineConfig.DegToRad); return this; diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/EditorActorComponent.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/EditorActorComponent.java index 5e8b005..6f80555 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/EditorActorComponent.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/EditorActorComponent.java @@ -3,7 +3,10 @@ package net.halbear.Terrain4J.EngineCore.Main.Scene; import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.Gimbal; import org.joml.Vector3f; +import java.util.HashMap; + public class EditorActorComponent implements IMoveableActorComponent{ + public static final HashMap EditorComponents = new HashMap<>(); public static int ActorComponentCount = 0; private Gimbal ActorGimbal; private Actor actor; @@ -19,8 +22,12 @@ public class EditorActorComponent implements IMoveableActorComponent{ ActorGimbal = new Gimbal(Position, new Vector3f(1.0f,1.0f,1.0f),this).SetID(ID); ActorComponentCount++; UpdateAll(); + EditorComponents.put(actor.GetID() + "_COMPONENT",this); } + public IMoveableActorComponent GetEditorComponent(String ActorID){ + return EditorComponents.get(ActorID + "_COMPONENT"); + } @Override public void UpdateAll() { @@ -30,7 +37,7 @@ public class EditorActorComponent implements IMoveableActorComponent{ actor.GetCollisionMesh().SetRotationTransform(actor.GetRotation()); actor.GetCollisionMesh().SetScaleTransform(actor.GetScale()); } - ActorGimbal.SetPosition(new Vector3f(Position.x, Position.y + ActorDimensions.y/2, Position.z)); + ActorGimbal.SetPosition(new Vector3f(Position.x, Position.y, Position.z).add(actor.GetPivotOffset()).add(actor.GetAditionalPivotOffset())); } @Override @@ -45,8 +52,8 @@ public class EditorActorComponent implements IMoveableActorComponent{ @Override public void AddPosition(Vector3f addedPos) { - Vector3f Pos = actor.GetPosition(); - actor.SetPosition(Pos.x + addedPos.x, Pos.y + addedPos.y, Pos.z + addedPos.z); + Vector3f Pos = Position; + actor.GetPosition().set(Pos.x + addedPos.x, Pos.y + addedPos.y, Pos.z + addedPos.z); Position = new Vector3f(actor.GetPosition()); UpdateAll(); } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/Gimbal.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/Gimbal.java index 11578f3..2b72f98 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/Gimbal.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/Gimbal.java @@ -117,7 +117,7 @@ public class Gimbal implements GUIOverlay { drawList.addLine(v1.x, v1.y, v2.x, v2.y, colour, 1f); drawList.addLine(v2.x, v2.y, v3.x, v3.y, colour, 1f); drawList.addLine(v3.x, v3.y, v1.x, v1.y, colour, 1f); - colour = ImGui.getColorU32(0.0f, 0.4f, 1.0f, 0.3f); + colour = ImGui.getColorU32(0.0f, 0.4f, 1.0f, 0.1f); drawList.addTriangleFilled( new ImVec2(v1.x,v1.y), new ImVec2(v2.x,v2.y), diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Util/Maths/T4Math.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Util/Maths/T4Math.java index eb9f9b2..29b8f4a 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Util/Maths/T4Math.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Util/Maths/T4Math.java @@ -28,6 +28,17 @@ public class T4Math { public static class Math3D { public static float epsilon = 1e-6f; + + + public static boolean TestAabbAabb( + float minX1, float minY1, float minZ1, float maxX1, float maxY1, float maxZ1, + float minX2, float minY2, float minZ2, float maxX2, float maxY2, float maxZ2) { + + return minX1 <= maxX2 && maxX1 >= minX2 && + minY1 <= maxY2 && maxY1 >= minY2 && + minZ1 <= maxZ2 && maxZ1 >= minZ2; + } + public static boolean DoesLineCollideWithPoly(Vector3f Origin, Vector3f Point, Vector3f[] Vertices){ Vector3f LineDirection = new Vector3f(Point).sub(Origin); float Test = Intersectionf.intersectRayTriangle(Origin,LineDirection, @@ -35,36 +46,14 @@ public class T4Math { return(Test >= 0.0f && Test <= 1.0f); } - public static boolean ComplexLinePolyCollisionCheck(Vector3f Origin, Vector3f Point, Vector3f[] Vertices){ + public static Vector3f LineCollisionPointWithPolyRelative(Vector3f Origin, Vector3f Point, Vector3f[] Vertices){ Vector3f LineDirection = new Vector3f(Point).sub(Origin); float Test = Intersectionf.intersectRayTriangle(Origin,LineDirection, Vertices[0],Vertices[1],Vertices[2], epsilon); - if(Test >= 0.0f && Test <= 1.0f) return true; - - Vector3f edge1 = new Vector3f(Vertices[1]).sub(Vertices[0]); - Vector3f edge2 = new Vector3f(Vertices[2]).sub(Vertices[0]); - Vector3f normal = new Vector3f(edge1).cross(edge2).normalize(); - Vector3f pAFromV0 = new Vector3f(Origin).sub(Vertices[0]); - Vector3f pBFromV0 = new Vector3f(Point).sub(Vertices[0]); - boolean pAOnPlane = Math.abs(pAFromV0.dot(normal)) < epsilon; - boolean pBOnPlane = Math.abs(pBFromV0.dot(normal)) < epsilon; - - if (pAOnPlane && pBOnPlane) { - if (Intersectionf.testPointInTriangle(Origin.x,Origin.y,Origin.z, - Vertices[0].x,Vertices[0].y,Vertices[0].z, - Vertices[1].x,Vertices[1].y,Vertices[1].z, - Vertices[2].x,Vertices[2].y,Vertices[2].z) || - Intersectionf.testPointInTriangle(Point.x,Point.y,Point.z, - Vertices[0].x,Vertices[0].y,Vertices[0].z, - Vertices[1].x,Vertices[1].y,Vertices[1].z, - Vertices[2].x,Vertices[2].y,Vertices[2].z)) { - return true; - } - if (Intersectionf.testLineSegmentTriangle(Origin, Point, Vertices[0], Vertices[1],Vertices[2], epsilon)){ - return true; - } + if (Test >= 0.0f && Test <= 1.0f) { + return new Vector3f(LineDirection).mul(Test); } - return false; + return null; } public static Vector3f LineCollisionPointWithPoly(Vector3f Origin, Vector3f Point, Vector3f[] Vertices){ @@ -128,10 +117,41 @@ public class T4Math { float ndcX = clipSpacePos.x / clipSpacePos.w; float ndcY = clipSpacePos.y / clipSpacePos.w; float ndcZ = clipSpacePos.z / clipSpacePos.w; - if (ndcZ < -1.0f || ndcZ > 1.0f) return null; float screenX = ((ndcX + 1.0f) / 2.0f) * windowWidth; float screenY = ((1.0f - ndcY) / 2.0f) * windowHeight; return new Vector3f(screenX, screenY, ndcZ); } + + public static boolean ComplexLinePolyCollisionCheck(Vector3f Origin, Vector3f Point, Vector3f[] Vertices){ + Vector3f LineDirection = new Vector3f(Point).sub(Origin); + float Test = Intersectionf.intersectRayTriangle(Origin,LineDirection, + Vertices[0],Vertices[1],Vertices[2], epsilon); + if(Test >= 0.0f && Test <= 1.0f) return true; + + Vector3f edge1 = new Vector3f(Vertices[1]).sub(Vertices[0]); + Vector3f edge2 = new Vector3f(Vertices[2]).sub(Vertices[0]); + Vector3f normal = new Vector3f(edge1).cross(edge2).normalize(); + Vector3f pAFromV0 = new Vector3f(Origin).sub(Vertices[0]); + Vector3f pBFromV0 = new Vector3f(Point).sub(Vertices[0]); + boolean pAOnPlane = Math.abs(pAFromV0.dot(normal)) < epsilon; + boolean pBOnPlane = Math.abs(pBFromV0.dot(normal)) < epsilon; + + if (pAOnPlane && pBOnPlane) { + if (Intersectionf.testPointInTriangle(Origin.x,Origin.y,Origin.z, + Vertices[0].x,Vertices[0].y,Vertices[0].z, + Vertices[1].x,Vertices[1].y,Vertices[1].z, + Vertices[2].x,Vertices[2].y,Vertices[2].z) || + Intersectionf.testPointInTriangle(Point.x,Point.y,Point.z, + Vertices[0].x,Vertices[0].y,Vertices[0].z, + Vertices[1].x,Vertices[1].y,Vertices[1].z, + Vertices[2].x,Vertices[2].y,Vertices[2].z)) { + return true; + } + if (Intersectionf.testLineSegmentTriangle(Origin, Point, Vertices[0], Vertices[1],Vertices[2], epsilon)){ + return true; + } + } + return false; + } } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/FastTickThread.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/FastTickThread.java index a75c209..dab46f1 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/FastTickThread.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/FastTickThread.java @@ -8,6 +8,8 @@ import org.tinylog.Logger; public class FastTickThread extends EngineThread { + private int Ticks = 0; + public FastTickThread(EngineInstance engineInstance, GameLogic appLogic){ super(engineInstance, appLogic, "Fast"); UpdateTickRateThreshold(); @@ -17,6 +19,14 @@ public class FastTickThread extends EngineThread { public void TickEvent(long nsTimeDiff){ gameLogic.UpdateFastThread(PrimaryRuntime.GetEngineInstance(), nsTimeDiff); } + + public int Ticks(int TickThreshold){ + int TickCount = Ticks; + Ticks++; + if(Ticks >= TickThreshold) Ticks = 0; + return TickCount; + } + @Override public void FrameEvent(long now, long InitialTime){