From d297a8542ae16cf8af7e4556b27f07254f0b6bfa Mon Sep 17 00:00:00 2001 From: Crystal Jin Date: Fri, 24 Oct 2025 12:17:01 -0400 Subject: [PATCH 1/7] modify cmake setting to build, finish static blades with new texture --- bin/Release/vulkan_grass_rendering.exe | Bin 245248 -> 278016 bytes external/GLFW/CMakeLists.txt | 5 +- src/Blades.cpp | 4 +- src/CMakeLists.txt | 33 ++++++++++- src/Renderer.cpp | 78 ++++++++++++++++++++----- src/Renderer.h | 1 + src/images/grass_2.jpg | Bin 0 -> 11481 bytes src/main.cpp | 19 ++++++ src/shaders/grass.frag | 14 ++--- src/shaders/grass.tesc | 37 +++++++----- src/shaders/grass.tese | 40 ++++++++++++- src/shaders/grass.vert | 23 +++++--- 12 files changed, 200 insertions(+), 54 deletions(-) create mode 100644 src/images/grass_2.jpg diff --git a/bin/Release/vulkan_grass_rendering.exe b/bin/Release/vulkan_grass_rendering.exe index f68db3a91c330e7ff4ac45238adcfedf2f35e64a..11f4b04e6719313731319a11dfe6ab2624901879 100644 GIT binary patch literal 278016 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�grD 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 z‏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 WkmZa08$q9es-RY2M5jdd|NI}9k;)1H diff --git a/external/GLFW/CMakeLists.txt b/external/GLFW/CMakeLists.txt index 56c1f38..71c4124 100644 --- a/external/GLFW/CMakeLists.txt +++ b/external/GLFW/CMakeLists.txt @@ -5,9 +5,8 @@ project(GLFW C) set(CMAKE_LEGACY_CYGWIN_WIN32 OFF) if (NOT CMAKE_VERSION VERSION_LESS "3.0") - # Until all major package systems have moved to CMake 3, - # we stick with the older INSTALL_NAME_DIR mechanism - cmake_policy(SET CMP0042 OLD) + # Use modern policy behavior; OLD is no longer supported in new CMake + cmake_policy(SET CMP0042 NEW) endif() if (NOT CMAKE_VERSION VERSION_LESS "3.1") diff --git a/src/Blades.cpp b/src/Blades.cpp index 80e3d76..0386bdf 100644 --- a/src/Blades.cpp +++ b/src/Blades.cpp @@ -44,7 +44,9 @@ Blades::Blades(Device* device, VkCommandPool commandPool, float planeDim) : Mode indirectDraw.firstVertex = 0; indirectDraw.firstInstance = 0; - BufferUtils::CreateBufferFromData(device, commandPool, blades.data(), NUM_BLADES * sizeof(Blade), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, bladesBuffer, bladesBufferMemory); + BufferUtils::CreateBufferFromData(device, commandPool, blades.data(), NUM_BLADES * sizeof(Blade), + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, + bladesBuffer, bladesBufferMemory); BufferUtils::CreateBuffer(device, NUM_BLADES * sizeof(Blade), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, culledBladesBuffer, culledBladesBufferMemory); BufferUtils::CreateBufferFromData(device, commandPool, &indirectDraw, sizeof(BladeDrawIndirect), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, numBladesBuffer, numBladesBufferMemory); } diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aea02fe..273bcb2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,10 +34,26 @@ foreach(SHADER_SOURCE ${SHADER_SOURCES}) set(SHADER_DIR ${CMAKE_CURRENT_BINARY_DIR}/shaders) if(WIN32) + # Resolve glslangValidator path robustly + if(NOT DEFINED GLSLANG_VALIDATOR) + set(GLSLANG_VALIDATOR "$ENV{VULKAN_SDK}/Bin/glslangValidator.exe") + if(NOT EXISTS "${GLSLANG_VALIDATOR}") + set(GLSLANG_VALIDATOR "$ENV{VK_SDK_PATH}/Bin/glslangValidator.exe") + endif() + if(NOT EXISTS "${GLSLANG_VALIDATOR}") + file(GLOB _VKSDK_HINT "C:/VulkanSDK/*/Bin/glslangValidator.exe") + list(SORT _VKSDK_HINT) + list(REVERSE _VKSDK_HINT) + list(LENGTH _VKSDK_HINT _VKSDK_HINT_LEN) + if(_VKSDK_HINT_LEN GREATER 0) + list(GET _VKSDK_HINT 0 GLSLANG_VALIDATOR) + endif() + endif() + endif() get_filename_component(fname ${SHADER_SOURCE} NAME) add_custom_target(${fname}.spv COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADER_DIR} && - $ENV{VK_SDK_PATH}/Bin/glslangValidator.exe -V ${SHADER_SOURCE} -o ${SHADER_DIR}/${fname}.spv -g + "${GLSLANG_VALIDATOR}" -V ${SHADER_SOURCE} -o ${SHADER_DIR}/${fname}.spv -g SOURCES ${SHADER_SOURCE} ) ExternalTarget("Shaders" ${fname}.spv) @@ -55,3 +71,18 @@ target_include_directories(vulkan_grass_rendering PRIVATE ) InternalTarget("" vulkan_grass_rendering) + +# Help Visual Studio run with the correct working directory when debugging +if (MSVC) + set_property(TARGET vulkan_grass_rendering PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "$") +endif() + +# Ensure runtime has required resources (shaders and images) next to the executable +if (WIN32) + add_custom_command(TARGET vulkan_grass_rendering POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory "$/shaders" + COMMAND ${CMAKE_COMMAND} -E make_directory "$/images" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/shaders" "$/shaders" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/images" "$/images" + ) +endif() diff --git a/src/Renderer.cpp b/src/Renderer.cpp index b445d04..2291a05 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -318,8 +318,55 @@ void Renderer::CreateModelDescriptorSets() { } void Renderer::CreateGrassDescriptorSets() { - // TODO: Create Descriptor sets for the grass. - // This should involve creating descriptor sets which point to the model matrix of each group of grass blades + grassDescriptorSets.resize(scene->GetBlades().size()); + + // Reuse model descriptor set layout: binding 0 = model UBO, binding 1 = combined image sampler + VkDescriptorSetLayout layouts[] = { modelDescriptorSetLayout }; + VkDescriptorSetAllocateInfo allocInfo = {}; + allocInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; + allocInfo.descriptorPool = descriptorPool; + allocInfo.descriptorSetCount = static_cast(grassDescriptorSets.size()); + allocInfo.pSetLayouts = layouts; + + if (!grassDescriptorSets.empty()) { + if (vkAllocateDescriptorSets(logicalDevice, &allocInfo, grassDescriptorSets.data()) != VK_SUCCESS) { + throw std::runtime_error("Failed to allocate grass descriptor sets"); + } + } + + std::vector descriptorWrites(2 * grassDescriptorSets.size()); + for (uint32_t i = 0; i < scene->GetBlades().size(); ++i) { + // Model buffer for the blades (identity by default) + VkDescriptorBufferInfo modelBufferInfo = {}; + modelBufferInfo.buffer = scene->GetBlades()[i]->GetModelBuffer(); + modelBufferInfo.offset = 0; + modelBufferInfo.range = sizeof(ModelBufferObject); + + VkDescriptorImageInfo imageInfo = {}; + imageInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + imageInfo.imageView = scene->GetBlades()[i]->GetTextureView(); + imageInfo.sampler = scene->GetBlades()[i]->GetTextureSampler(); + + descriptorWrites[2 * i + 0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descriptorWrites[2 * i + 0].dstSet = grassDescriptorSets[i]; + descriptorWrites[2 * i + 0].dstBinding = 0; + descriptorWrites[2 * i + 0].dstArrayElement = 0; + descriptorWrites[2 * i + 0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + descriptorWrites[2 * i + 0].descriptorCount = 1; + descriptorWrites[2 * i + 0].pBufferInfo = &modelBufferInfo; + + descriptorWrites[2 * i + 1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + descriptorWrites[2 * i + 1].dstSet = grassDescriptorSets[i]; + descriptorWrites[2 * i + 1].dstBinding = 1; + descriptorWrites[2 * i + 1].dstArrayElement = 0; + descriptorWrites[2 * i + 1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + descriptorWrites[2 * i + 1].descriptorCount = 1; + descriptorWrites[2 * i + 1].pImageInfo = &imageInfo; + } + + if (!descriptorWrites.empty()) { + vkUpdateDescriptorSets(logicalDevice, static_cast(descriptorWrites.size()), descriptorWrites.data(), 0, nullptr); + } } void Renderer::CreateTimeDescriptorSet() { @@ -936,14 +983,21 @@ void Renderer::RecordCommandBuffers() { barriers[j].sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; barriers[j].srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; barriers[j].dstAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT; - barriers[j].srcQueueFamilyIndex = device->GetQueueIndex(QueueFlags::Compute); - barriers[j].dstQueueFamilyIndex = device->GetQueueIndex(QueueFlags::Graphics); + uint32_t srcFamily = device->GetQueueIndex(QueueFlags::Compute); + uint32_t dstFamily = device->GetQueueIndex(QueueFlags::Graphics); + if (srcFamily == dstFamily) { + barriers[j].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + barriers[j].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + } else { + barriers[j].srcQueueFamilyIndex = srcFamily; + barriers[j].dstQueueFamilyIndex = dstFamily; + } barriers[j].buffer = scene->GetBlades()[j]->GetNumBladesBuffer(); barriers[j].offset = 0; barriers[j].size = sizeof(BladeDrawIndirect); } - vkCmdPipelineBarrier(commandBuffers[i], VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, 0, 0, nullptr, barriers.size(), barriers.data(), 0, nullptr); + vkCmdPipelineBarrier(commandBuffers[i], VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, 0, 0, nullptr, static_cast(barriers.size()), barriers.data(), 0, nullptr); // Bind the camera descriptor set. This is set 0 in all pipelines so it will be inherited vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipelineLayout, 0, 1, &cameraDescriptorSet, 0, nullptr); @@ -971,18 +1025,16 @@ void Renderer::RecordCommandBuffers() { // Bind the grass pipeline vkCmdBindPipeline(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipeline); + vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 0, 1, &cameraDescriptorSet, 0, nullptr); for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { - VkBuffer vertexBuffers[] = { scene->GetBlades()[j]->GetCulledBladesBuffer() }; + VkBuffer vertexBuffers[] = { scene->GetBlades()[j]->GetBladesBuffer() }; VkDeviceSize offsets[] = { 0 }; - // TODO: Uncomment this when the buffers are populated - // vkCmdBindVertexBuffers(commandBuffers[i], 0, 1, vertexBuffers, offsets); - - // TODO: Bind the descriptor set for each grass blades model + vkCmdBindVertexBuffers(commandBuffers[i], 0, 1, vertexBuffers, offsets); + // Bind grass descriptor set (set 1: model + sampler) + vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 1, 1, &grassDescriptorSets[j], 0, nullptr); - // Draw - // TODO: Uncomment this when the buffers are populated - // vkCmdDrawIndirect(commandBuffers[i], scene->GetBlades()[j]->GetNumBladesBuffer(), 0, 1, sizeof(BladeDrawIndirect)); + vkCmdDraw(commandBuffers[i], NUM_BLADES, 1, 0, 0); } // End render pass diff --git a/src/Renderer.h b/src/Renderer.h index 95e025f..60c743b 100644 --- a/src/Renderer.h +++ b/src/Renderer.h @@ -61,6 +61,7 @@ class Renderer { VkDescriptorSet cameraDescriptorSet; std::vector modelDescriptorSets; + std::vector grassDescriptorSets; VkDescriptorSet timeDescriptorSet; VkPipelineLayout graphicsPipelineLayout; diff --git a/src/images/grass_2.jpg b/src/images/grass_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5481d25a688d3bc171ddae2baf4d63ac2a06fc62 GIT binary patch literal 11481 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 8bf822b..a370a5c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -104,6 +104,8 @@ int main() { VkImage grassImage; VkDeviceMemory grassImageMemory; + VkImage bladesImage; + VkDeviceMemory bladesImageMemory; Image::FromFile(device, transferCommandPool, "images/grass.jpg", @@ -116,6 +118,19 @@ int main() { grassImageMemory ); + // Load the grass texture to be used for blades + Image::FromFile(device, + transferCommandPool, + "images/grass_2.jpg", + VK_FORMAT_R8G8B8A8_UNORM, + VK_IMAGE_TILING_OPTIMAL, + VK_IMAGE_USAGE_SAMPLED_BIT, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, + bladesImage, + bladesImageMemory + ); + float planeDim = 15.f; float halfWidth = planeDim * 0.5f; Model* plane = new Model(device, transferCommandPool, @@ -130,6 +145,8 @@ int main() { plane->SetTexture(grassImage); Blades* blades = new Blades(device, transferCommandPool, planeDim); + // Use the new grass texture for blades + blades->SetTexture(bladesImage); vkDestroyCommandPool(device->GetVkDevice(), transferCommandPool, nullptr); @@ -153,6 +170,8 @@ int main() { vkDestroyImage(device->GetVkDevice(), grassImage, nullptr); vkFreeMemory(device->GetVkDevice(), grassImageMemory, nullptr); + vkDestroyImage(device->GetVkDevice(), bladesImage, nullptr); + vkFreeMemory(device->GetVkDevice(), bladesImageMemory, nullptr); delete scene; delete plane; diff --git a/src/shaders/grass.frag b/src/shaders/grass.frag index c7df157..5f53abb 100644 --- a/src/shaders/grass.frag +++ b/src/shaders/grass.frag @@ -1,17 +1,13 @@ #version 450 #extension GL_ARB_separate_shader_objects : enable -layout(set = 0, binding = 0) uniform CameraBufferObject { - mat4 view; - mat4 proj; -} camera; - -// TODO: Declare fragment shader inputs +layout(set = 1, binding = 1) uniform sampler2D texSampler; +layout(location = 0) in vec2 inUV; layout(location = 0) out vec4 outColor; void main() { - // TODO: Compute fragment color - - outColor = vec4(1.0); + // Sample provided texture; fallback tint + vec4 tex = texture(texSampler, inUV); + outColor = tex; } diff --git a/src/shaders/grass.tesc b/src/shaders/grass.tesc index f9ffd07..28eae35 100644 --- a/src/shaders/grass.tesc +++ b/src/shaders/grass.tesc @@ -3,24 +3,29 @@ layout(vertices = 1) out; -layout(set = 0, binding = 0) uniform CameraBufferObject { - mat4 view; - mat4 proj; -} camera; - -// TODO: Declare tessellation control shader inputs and outputs +// VS → TCS varyings +layout(location = 0) in vec4 inV0[]; +layout(location = 1) in vec4 inV1[]; +layout(location = 2) in vec4 inV2[]; +layout(location = 3) in vec4 inUp[]; +layout(location = 0) out vec4 outV0[]; +layout(location = 1) out vec4 outV1[]; +layout(location = 2) out vec4 outV2[]; +layout(location = 3) out vec4 outUp[]; void main() { // Don't move the origin location of the patch - gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; - - // TODO: Write any shader outputs + outV0[gl_InvocationID] = inV0[0]; + outV1[gl_InvocationID] = inV1[0]; + outV2[gl_InvocationID] = inV2[0]; + outUp[gl_InvocationID] = inUp[0]; - // TODO: Set level of tesselation - // gl_TessLevelInner[0] = ??? - // gl_TessLevelInner[1] = ??? - // gl_TessLevelOuter[0] = ??? - // gl_TessLevelOuter[1] = ??? - // gl_TessLevelOuter[2] = ??? - // gl_TessLevelOuter[3] = ??? + // Fixed tess levels for first visualization (can LOD later) + // Quads domain: inner = {rows, cols}. Use moderate detail. + gl_TessLevelInner[0] = 4.0; // along v + gl_TessLevelInner[1] = 8.0; // along u + gl_TessLevelOuter[0] = 8.0; + gl_TessLevelOuter[1] = 4.0; + gl_TessLevelOuter[2] = 8.0; + gl_TessLevelOuter[3] = 4.0; } diff --git a/src/shaders/grass.tese b/src/shaders/grass.tese index 751fff6..91dc6cc 100644 --- a/src/shaders/grass.tese +++ b/src/shaders/grass.tese @@ -8,11 +8,47 @@ layout(set = 0, binding = 0) uniform CameraBufferObject { mat4 proj; } camera; -// TODO: Declare tessellation evaluation shader inputs and outputs +// TCS → TES varyings +layout(location = 0) in vec4 inV0[]; +layout(location = 1) in vec4 inV1[]; +layout(location = 2) in vec4 inV2[]; +layout(location = 3) in vec4 inUp[]; + +out gl_PerVertex { vec4 gl_Position; }; +layout(location = 0) out vec2 outUV; void main() { + // Parameterization across (v in [0,1]) and along height (u in [0,1]) float u = gl_TessCoord.x; float v = gl_TessCoord.y; - // TODO: Use u and v to parameterize along the grass blade and output positions for each vertex of the grass blade + vec3 V0 = inV0[0].xyz; + vec3 V1 = inV1[0].xyz; + vec3 V2 = inV2[0].xyz; + float orient = inV0[0].w; // radians + float height = inV1[0].w; + float width = inV2[0].w; + vec3 up = normalize(inUp[0].xyz); + + // Build an orthonormal basis on the plane perpendicular to up + vec3 base = vec3(1.0, 0.0, 0.0); + if (abs(dot(base, up)) > 0.99) base = vec3(0.0, 0.0, 1.0); + vec3 n1 = normalize(base - dot(base, up) * up); + vec3 n2 = normalize(cross(up, n1)); + + // Facing direction from orientation angle around up + vec3 forward = normalize(cos(orient) * n1 + sin(orient) * n2); + vec3 side = normalize(cross(up, forward)); + + // Quadratic Bezier along height + vec3 A = mix(V0, V1, u); + vec3 B = mix(V1, V2, u); + vec3 P = mix(A, B, u); + + // Taper width to tip + float w = width * (1.0 - u); + vec3 pos = P + (v - 0.5) * w * side; + + gl_Position = camera.proj * camera.view * vec4(pos, 1.0); + outUV = vec2(v, u); } diff --git a/src/shaders/grass.vert b/src/shaders/grass.vert index db9dfe9..6ba52e3 100644 --- a/src/shaders/grass.vert +++ b/src/shaders/grass.vert @@ -2,16 +2,21 @@ #version 450 #extension GL_ARB_separate_shader_objects : enable -layout(set = 1, binding = 0) uniform ModelBufferObject { - mat4 model; -}; +// One Blade per vertex/patch. Attributes match Blade::getAttributeDescriptions() +layout(location = 0) in vec4 inV0; // v0.xyz position, v0.w orientation (radians) +layout(location = 1) in vec4 inV1; // v1.xyz guide, inV1.w height +layout(location = 2) in vec4 inV2; // v2.xyz guide, inV2.w width +layout(location = 3) in vec4 inUp; // up.xyz, inUp.w stiffness -// TODO: Declare vertex shader inputs and outputs - -out gl_PerVertex { - vec4 gl_Position; -}; +// Pass all data to TCS as per-vertex (patch) outputs +layout(location = 0) out vec4 outV0; +layout(location = 1) out vec4 outV1; +layout(location = 2) out vec4 outV2; +layout(location = 3) out vec4 outUp; void main() { - // TODO: Write gl_Position and any other shader outputs + outV0 = inV0; + outV1 = inV1; + outV2 = inV2; + outUp = inUp; } From 28c9f84b990fc713e43841f6a6b2a9602cade586 Mon Sep 17 00:00:00 2001 From: Crystal Jin Date: Fri, 24 Oct 2025 14:55:48 -0400 Subject: [PATCH 2/7] add force --- bin/Release/vulkan_grass_rendering.exe | Bin 278016 -> 280576 bytes src/Renderer.cpp | 152 +++++++++++++++++++++---- src/Renderer.h | 2 + src/shaders/compute.comp | 84 +++++++++++++- 4 files changed, 211 insertions(+), 27 deletions(-) diff --git a/bin/Release/vulkan_grass_rendering.exe b/bin/Release/vulkan_grass_rendering.exe index 11f4b04e6719313731319a11dfe6ab2624901879..e75992a6038622ce285ac04267ad65f33e2e9cc6 100644 GIT binary patch delta 67526 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 SoSUX?LSW2}ZN1DxP5%!BS1@J( delta 65698 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 bindings = { bladesBinding, culledBinding, numBinding }; + + VkDescriptorSetLayoutCreateInfo layoutInfo = {}; + layoutInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; + layoutInfo.bindingCount = static_cast(bindings.size()); + layoutInfo.pBindings = bindings.data(); + + if (vkCreateDescriptorSetLayout(logicalDevice, &layoutInfo, nullptr, &computeDescriptorSetLayout) != VK_SUCCESS) { + throw std::runtime_error("Failed to create compute descriptor set layout"); + } } void Renderer::CreateDescriptorPool() { @@ -215,7 +240,8 @@ void Renderer::CreateDescriptorPool() { // Time (compute) { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER , 1 }, - // TODO: Add any additional types and counts of descriptors you will need to allocate + // Compute SSBOs (blades, culled, num per blades set) + { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER , static_cast(3 * std::max(1, scene->GetBlades().size())) }, }; VkDescriptorPoolCreateInfo poolInfo = {}; @@ -405,8 +431,61 @@ void Renderer::CreateTimeDescriptorSet() { } void Renderer::CreateComputeDescriptorSets() { - // TODO: Create Descriptor sets for the compute pipeline - // The descriptors should point to Storage buffers which will hold the grass blades, the culled grass blades, and the output number of grass blades + computeDescriptorSets.resize(scene->GetBlades().size()); + + if (computeDescriptorSets.empty()) return; + + VkDescriptorSetLayout layouts[] = { computeDescriptorSetLayout }; + VkDescriptorSetAllocateInfo allocInfo = {}; + allocInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; + allocInfo.descriptorPool = descriptorPool; + allocInfo.descriptorSetCount = static_cast(computeDescriptorSets.size()); + allocInfo.pSetLayouts = layouts; + + if (vkAllocateDescriptorSets(logicalDevice, &allocInfo, computeDescriptorSets.data()) != VK_SUCCESS) { + throw std::runtime_error("Failed to allocate compute descriptor sets"); + } + + std::vector writes(3 * computeDescriptorSets.size()); + for (uint32_t i = 0; i < scene->GetBlades().size(); ++i) { + VkDescriptorBufferInfo bladesBufInfo = {}; + bladesBufInfo.buffer = scene->GetBlades()[i]->GetBladesBuffer(); + bladesBufInfo.offset = 0; + bladesBufInfo.range = VK_WHOLE_SIZE; + + VkDescriptorBufferInfo culledBufInfo = {}; + culledBufInfo.buffer = scene->GetBlades()[i]->GetCulledBladesBuffer(); + culledBufInfo.offset = 0; + culledBufInfo.range = VK_WHOLE_SIZE; + + VkDescriptorBufferInfo numBufInfo = {}; + numBufInfo.buffer = scene->GetBlades()[i]->GetNumBladesBuffer(); + numBufInfo.offset = 0; + numBufInfo.range = VK_WHOLE_SIZE; + + writes[3 * i + 0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + writes[3 * i + 0].dstSet = computeDescriptorSets[i]; + writes[3 * i + 0].dstBinding = 0; + writes[3 * i + 0].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + writes[3 * i + 0].descriptorCount = 1; + writes[3 * i + 0].pBufferInfo = &bladesBufInfo; + + writes[3 * i + 1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + writes[3 * i + 1].dstSet = computeDescriptorSets[i]; + writes[3 * i + 1].dstBinding = 1; + writes[3 * i + 1].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + writes[3 * i + 1].descriptorCount = 1; + writes[3 * i + 1].pBufferInfo = &culledBufInfo; + + writes[3 * i + 2].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + writes[3 * i + 2].dstSet = computeDescriptorSets[i]; + writes[3 * i + 2].dstBinding = 2; + writes[3 * i + 2].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + writes[3 * i + 2].descriptorCount = 1; + writes[3 * i + 2].pBufferInfo = &numBufInfo; + } + + vkUpdateDescriptorSets(logicalDevice, static_cast(writes.size()), writes.data(), 0, nullptr); } void Renderer::CreateGraphicsPipeline() { @@ -763,8 +842,7 @@ void Renderer::CreateComputePipeline() { computeShaderStageInfo.module = computeShaderModule; computeShaderStageInfo.pName = "main"; - // TODO: Add the compute dsecriptor set layout you create to this list - std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, timeDescriptorSetLayout }; + std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, timeDescriptorSetLayout, computeDescriptorSetLayout }; // Create pipeline layout VkPipelineLayoutCreateInfo pipelineLayoutInfo = {}; @@ -930,7 +1008,12 @@ void Renderer::RecordComputeCommandBuffer() { // Bind descriptor set for time uniforms vkCmdBindDescriptorSets(computeCommandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, computePipelineLayout, 1, 1, &timeDescriptorSet, 0, nullptr); - // TODO: For each group of blades bind its descriptor set and dispatch + // For each group of blades bind its descriptor set and dispatch + for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { + vkCmdBindDescriptorSets(computeCommandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, computePipelineLayout, 2, 1, &computeDescriptorSets[j], 0, nullptr); + uint32_t groups = (NUM_BLADES + WORKGROUP_SIZE - 1) / WORKGROUP_SIZE; + vkCmdDispatch(computeCommandBuffer, groups, 1, 1); + } // ~ End recording ~ if (vkEndCommandBuffer(computeCommandBuffer) != VK_SUCCESS) { @@ -978,26 +1061,50 @@ void Renderer::RecordCommandBuffers() { renderPassInfo.clearValueCount = static_cast(clearValues.size()); renderPassInfo.pClearValues = clearValues.data(); - std::vector barriers(scene->GetBlades().size()); - for (uint32_t j = 0; j < barriers.size(); ++j) { - barriers[j].sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; - barriers[j].srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; - barriers[j].dstAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT; + // Two barriers per blades group: numBlades indirect args and blades vertex buffer + std::vector barriers(2 * scene->GetBlades().size()); + for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { + // Indirect args + VkBufferMemoryBarrier &b0 = barriers[2 * j + 0]; + b0.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; + b0.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + b0.dstAccessMask = VK_ACCESS_INDIRECT_COMMAND_READ_BIT; uint32_t srcFamily = device->GetQueueIndex(QueueFlags::Compute); uint32_t dstFamily = device->GetQueueIndex(QueueFlags::Graphics); if (srcFamily == dstFamily) { - barriers[j].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - barriers[j].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b0.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b0.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + } else { + b0.srcQueueFamilyIndex = srcFamily; + b0.dstQueueFamilyIndex = dstFamily; + } + b0.buffer = scene->GetBlades()[j]->GetNumBladesBuffer(); + b0.offset = 0; + b0.size = sizeof(BladeDrawIndirect); + + VkBufferMemoryBarrier &b1 = barriers[2 * j + 1]; + b1.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; + b1.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + b1.dstAccessMask = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT; + if (srcFamily == dstFamily) { + b1.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b1.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; } else { - barriers[j].srcQueueFamilyIndex = srcFamily; - barriers[j].dstQueueFamilyIndex = dstFamily; + b1.srcQueueFamilyIndex = srcFamily; + b1.dstQueueFamilyIndex = dstFamily; } - barriers[j].buffer = scene->GetBlades()[j]->GetNumBladesBuffer(); - barriers[j].offset = 0; - barriers[j].size = sizeof(BladeDrawIndirect); + b1.buffer = scene->GetBlades()[j]->GetBladesBuffer(); + b1.offset = 0; + b1.size = VK_WHOLE_SIZE; } - vkCmdPipelineBarrier(commandBuffers[i], VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, 0, 0, nullptr, static_cast(barriers.size()), barriers.data(), 0, nullptr); + vkCmdPipelineBarrier(commandBuffers[i], + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, + 0, + 0, nullptr, + static_cast(barriers.size()), barriers.data(), + 0, nullptr); // Bind the camera descriptor set. This is set 0 in all pipelines so it will be inherited vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipelineLayout, 0, 1, &cameraDescriptorSet, 0, nullptr); @@ -1109,6 +1216,7 @@ Renderer::~Renderer() { vkDestroyDescriptorSetLayout(logicalDevice, cameraDescriptorSetLayout, nullptr); vkDestroyDescriptorSetLayout(logicalDevice, modelDescriptorSetLayout, nullptr); vkDestroyDescriptorSetLayout(logicalDevice, timeDescriptorSetLayout, nullptr); + vkDestroyDescriptorSetLayout(logicalDevice, computeDescriptorSetLayout, nullptr); vkDestroyDescriptorPool(logicalDevice, descriptorPool, nullptr); diff --git a/src/Renderer.h b/src/Renderer.h index 60c743b..0f45c82 100644 --- a/src/Renderer.h +++ b/src/Renderer.h @@ -63,6 +63,8 @@ class Renderer { std::vector modelDescriptorSets; std::vector grassDescriptorSets; VkDescriptorSet timeDescriptorSet; + VkDescriptorSetLayout computeDescriptorSetLayout; + std::vector computeDescriptorSets; VkPipelineLayout graphicsPipelineLayout; VkPipelineLayout grassPipelineLayout; diff --git a/src/shaders/compute.comp b/src/shaders/compute.comp index 0fd0224..48f676c 100644 --- a/src/shaders/compute.comp +++ b/src/shaders/compute.comp @@ -21,10 +21,21 @@ struct Blade { vec4 up; }; -// TODO: Add bindings to: -// 1. Store the input blades -// 2. Write out the culled blades -// 3. Write the total number of blades remaining +// Storage buffers +layout(set = 2, binding = 0) buffer Blades { + Blade blades[]; +}; + +layout(set = 2, binding = 1) buffer CulledBlades { + Blade culled[]; +}; + +layout(set = 2, binding = 2) buffer NumBlades { + uint vertexCount; // number of blades available + uint instanceCount; // = 1 + uint firstVertex; // = 0 + uint firstInstance; // = 0 +} numBlades; // The project is using vkCmdDrawIndirect to use a buffer as the arguments for a draw call // This is sort of an advanced feature so we've showed you what this buffer should look like @@ -43,11 +54,74 @@ bool inBounds(float value, float bounds) { void main() { // Reset the number of blades to 0 if (gl_GlobalInvocationID.x == 0) { + // For culling stage (later), reset if needed // numBlades.vertexCount = 0; } barrier(); // Wait till all threads reach this point - // TODO: Apply forces on every blade and update the vertices in the buffer + uint i = gl_GlobalInvocationID.x; + // Guard against over-dispatch + if (i >= numBlades.vertexCount) return; + + Blade b = blades[i]; + + vec3 V0 = b.v0.xyz; + float orient = b.v0.w; + vec3 V1 = b.v1.xyz; + float height = b.v1.w; + vec3 V2 = b.v2.xyz; + float width = b.v2.w; + vec3 up = normalize(b.up.xyz); + float stiffness = b.up.w; + + vec3 base = vec3(1.0, 0.0, 0.0); + if (abs(dot(base, up)) > 0.99) base = vec3(0.0, 0.0, 1.0); + vec3 n1 = normalize(base - dot(base, up) * up); + vec3 n2 = normalize(cross(up, n1)); + vec3 forward = normalize(cos(orient) * n1 + sin(orient) * n2); + + // Gravity + vec4 D = vec4(0.0, -1.0, 0.0, 9.81); // direction.xyz, magnitude.w + vec3 gE = normalize(D.xyz) * D.w; + float gLen = length(gE); + vec3 gF = 0.25 * gLen * forward; // front gravity term + vec3 gravity = gE + gF; + + // Recovery + vec3 iV2 = V0 + up * height; + vec3 recovery = (iV2 - V2) * stiffness; + + // Wind direction varying with position and time + float t = totalTime; + vec3 windDir = normalize(vec3( + sin(0.17 * V0.x + 1.3 * t), + 0.0, + cos(0.19 * V0.z + 1.1 * t))); + float align = max(0.0, dot(forward, windDir)); + align = align * align; // stronger effect when aligned + vec3 wind = windDir * (4.0 * align); + + // Accumulate forces and integrate + vec3 total = gravity + recovery + wind; + vec3 dV2 = total * deltaTime; + vec3 newV2 = V2 + dV2; + + // Corrections (Section 5.2 inspired) + // 1) Prevent under-ground penetration + if (newV2.y < V0.y) newV2.y = V0.y; + // 2) Enforce constant blade length: |V2 - V0| = height + vec3 dir = newV2 - V0; + float L = length(dir); + if (L > 1e-6) { + newV2 = V0 + dir * (height / L); + } else { + newV2 = V0 + up * height; + } + + b.v2 = vec4(newV2, width); + b.v1 = vec4(iV2, height); + + blades[i] = b; // TODO: Cull blades that are too far away or not in the camera frustum and write them // to the culled blades buffer From 728d8abb663c642ea9e42cbf52bc311af35c7e8d Mon Sep 17 00:00:00 2001 From: Crystal Jin Date: Fri, 24 Oct 2025 23:35:05 -0400 Subject: [PATCH 3/7] add culling tests --- bin/Release/vulkan_grass_rendering.exe | Bin 280576 -> 284160 bytes src/Blades.cpp | 5 +- src/Renderer.cpp | 33 ++++++++-- src/Scene.cpp | 24 +++++++ src/Scene.h | 19 ++++++ src/main.cpp | 26 +++++++- src/shaders/compute.comp | 88 +++++++++++++++++++++---- 7 files changed, 178 insertions(+), 17 deletions(-) diff --git a/bin/Release/vulkan_grass_rendering.exe b/bin/Release/vulkan_grass_rendering.exe index e75992a6038622ce285ac04267ad65f33e2e9cc6..478fd28c4e226bc5ccfc3bc70990381a0a8b6674 100644 GIT binary patch delta 67383 zcmZ^M34BdQ`~RJjToMvDkz5iI5)!f@Ll4@)v))QaE1kCvofNBY_XDeZ^|jcLUqbWZzOgod=E2tedyaZ%B=Iune^HLmV92l-48!JB zGc@k}_s9z114AQ2O{rF>;XBD-IK~9{>bGhbYs!k$o~%Q}Zpqm&lHhBd4L2yvbvESs zRTM|K+1cj0CY5}2%`o2`JmS73ih6Vt&R+j@|EmA09=&9~O z3e^y)-UYu)wb>Hq>b-tDEE#sV0714U1x0E-mr95khr~M@WSi_FTiu6IR7nkrl&vmu zUXhDzbAR|Bfz*j|@(zZSnm?8d#{f@6bxU17R^M>$Bpp-LPo4eUwrry;LRzP)#m>hA z&n-dO{GzN{vaNqpIq%jD+1k0h%w#w3{T`Uwwk7H|V_);Q&m=>#Ej=Ms>Ee();?tf)8K>Pp$)s?Xgl(g;0e{#G5}Zjq{qRK0DG z9->J^2W%l;OwQZqQo3@bdfGiO_HzeFNp{iF8-bTnVu>n}6u4aYSu-{I(Su`QOnnVoxnJ$-5bgbi=G}}S?)W_ zku57HwMSO<`&yyF9XF%K%5zj&xlGm8K3pLgbW9%y=6b6tnbt}6dFq#@R?+I$qPcS3 zU0Jqa+_X-A+wHQ=TyWb7LqLFuoQ5s$ZV0Bic&=K@BiSWwo@B6_O<$`+Jbc(T zb+SiOY5I3!_`Y3^O4y76o76oXO@d;etz=s-OyZ=V0Ene*ttkkbJSFXI9rL{E;u*mr z)M(GQq|2Ao6`q08mP_g`&o^`8E-^!XQT7`oGht9CsY*5UxUAH*L>&054rXEMp4#JUhh8LxsX=lYN$v$LajBZ<cY>=5OpS5Ii{_vFNR(_3J9eS=;>6{GBR;Hlq#SXv}-@B zpLy45Vs#+d1XAyy7+vDD_W;N2DW`_NHM`)NcWyOlzyftheKR|#X4jt^x>KRa>S3O@ zUNWTGRtK#G-4Uj7?lRJtc_zNyKP+uo#9yx5Myz{2ERyVK4+B-Nv4o; zQ^;W`CeLX>L0Yj@E%Q$|O-BwW4+{#w)BjH-))Tiw=pq1yvY z*+ejk(caHfGlEt~{XbU!2x=!qA6A2d`$@P(hQmZ$K zWp&lgO~Tl9_5CJwdVRkVbqo0wn&&ebYShtu2%yKNAtm5tT!}bj9@#tABij_(XVGJm zr$B|~3w~dq4%!E;8-Z-m2g}t9O&YUV>dPjPl5wTltZ9evo0urFt#?oYk-sexwp<7L zZ%BeMx!P2Uc>ZumK(mU(bvKH3(weuYs21-UBZrL9EQU@aDig6PPh#m>OF!KUr<&v!I z$NU@nk;>f6E|aLL#*19cuaJ)@^}pv=PaV^y`m}5+U9*YV>8`^fxjMLIs8rKgwYFR+ zeY8WZ*UDcSwL@*!s<(7#ySlJd{hSAoMTl5+60tcWz-8va8|V?5TW=1cxmCK1Skv5k zc1_H!-2D}EYhIQh$RSh zfCBKB6=)Bd?2AwXs?f*7MTMvwRb`-qPl#4q=kxJCy(%Hvx{2!XsK#-w4$Ao%m|>~P z7Y`65D@Ccwx8($|8M{+QTKjC5m4~u&DhaDthHOjAwVQj+RU=wAZ0?KvBrM3OQCDD_ zIJr9;N<&c6=@QJ}tR9tEtf~Yg8x2q@1*y=csd|-)lZ% zo9NfgsYX1FE`oTGO0Z)!lB5^2x(>K|bH^|B*TrsO@8drN#y7TQQ+-AqBeLNzneLFqzMuJD; zki@}>gAxZ;2*~(_$g1$r&NSX^XU*KMS1E0;dT86CD^w zDlm$4jAVfUgq~y72JJ&7C+C9X_TfyDHmj3jgQYv0)K6lg-G1Ms_eF;G%_jAi*o;;_ z07RXkhTndycZ8cjLC5?h($o-j)?kx5G_GFq{(+)}lhF)n;b0;BgBDQR(jI6@ zRMcjEvYi@+^x@I^1WxFi*e9_cWP2@jlw#a%a8?h*jb-Q5mhonvJ=36;t?#?w=OZiW z9&-MXtQvOnm+Ij7tL*E7*beO&%T%*F9$|;ojtOR;%~Sp-{>p+e31^+zAvM8b_Su9P zC0pOaQu`igrc}^ep^ml8kb3k|?^#+(zfV*X616Xpd(}Mdc%boml(4k;i4#ib^r8@QH zal3i64!lzEdG{^VTW@(=ptKq%8Ol6>`w+Qh)e%`VM%1&klqyg9;}rHDB(;T!1#|ng zV6Mv{VQAeNP2JmnmehD`LFWMlEPTX!;I-=?(bNeP-$Zd3;t8PH5&&7r3X)MS{`Z2w zH_tgqi)HoM;1C#_0YeT;YrCr2ka*YbR4J=5@}}B+Xo$B%xO0@hj@$;R#asu!6J0YqRPNdl6Ex`p>+^s_EUXfgkn6pzDPi z2z~Sk04V+Y8=~}`O9daiyTD0e-3yHGc`l6*|w9p)r$eL zaun?k*jmtGVJve$+D6pk>Shu$K2(*OsNXEQBn=5s=Pq6-jW(-3OCqE=v)W}z8_C&R zFk{I$=jcMPEDJ+lE~iK!bt*-CjPuo;88&yn18JYL=@`Uz;J- z^({ELc0FU`3$i|MA`KpGCTdAR8KuXe=3vg+&HV^uGp_Zgc_VZmOlG?|L13l^h1ku} zI!2d9z_3*m3wWJx*7FB9R?F8;|Z z^hs{ZbkgVe?nmmZ4NaxSf$D!YG?SbI3odV%!Po+Iz{W9=YJje>hLXAZYaNHi%Ah^C zF;;PcBp-kd!?H*a_hyRvWMhJ~@|D{5tE&wjnyAgiWxhfa-J+Du7~vx-(TuAtzy6vn zDY*LeMWgFHjaH!5LAiWUZ&pV=yLqtdRA0;o)06mHYWpq8^;e?Q2#aalMeNkaB_v>? z{Br=0C($0h>Ze=!)?7jPNSj;usP-)Zq+qtz@3~lqj=GAhQHQAfEkX)zM{p221qSB3 zb@iggC2J}ZI6dbva{L2C{7JLPdKjIlhw&TL;2&Z= zu6hZU<9?-b#=(%8A7Z3oUIkzOFvy7|s4hDf)_|Kz+25t{f_6pfXFK-+_|C2!c>3?| zj_26j9r65jcOy8{PVJ6%oof{1nK4_f^BrEzqegY zBE4?}XonT4L-q~_^w8eP&}1Eof*BIS_D#U^!oG2McHRG(>v}un!fG5lLw&eE#dV~f z@|{s&IS@hU6Alh{R90EqvZ&zZ!JCrQ=#hG`xQ$1xznQ`MeNYLh2&=L86tzZ4r1__Z z%+O8;W_8*zPc~rcE?2vkG?(T+RC7vBwcG}4mv*ihcJtScC}!ju5rq-@taL9ei#Fq- z7ouLjd{B^kWF|A;`jhOX#O*^tQD~HMZNgQx&e69T*^mPtOzCD=edO^V^QD^IJV}6I z>5lzVU3qk}bZI@XsRC>VV#hq?CpOHdy(vEb41&lnq9u=HfSYPjaq>jhcUMrY-^@W6e+NA3n z8S7Kf@a9)c^1Gn^^y`PLsK9b-9%BR56SsTg+4#4I*wvYTA0b)Ks?&deV?eXB*tc6J z`ILEsVdfQPC=G%Rv&^<5veLf3L?=DZa4^e6=3G4WCn~*cI7~MHHW{!`CBT zHWg$QicC=U&2t~v-N~>|^Ou5h9H!;)}>lVnKFS2}Q{6+Jp$kK_1{x$+=!=BFwJ3*gKFnVv#p* zxq#I#=%)EF*H-95AV2P>zE>LP>Z7NQ^i!9Www4NiRF9T!a80=^P;U2CKm5brGa9L~ zi-~#VE?KT%*5C%N-U%HCs793bdKC;`bP7aH$ zw~q3gMV<2UFl%3s@b`I%omA`C*GMgPs)hDQSJ#7r$oq-v1AF6~^9R7{3>tfoB1clK zIYCH-?`H;V$!vWXYTP7|Y@8F?V5{9;wiy_Hz;LaK;q1VOBaDxbtAbeR6y2onhd8L* zND!5tpaW~`z@v3^=pY?>4@80bL&CO=thH0rJRNCDyeQdPIMIyn=)hq*u%QloUk7%N zFElx`AjV>NYa>f{{rX2i?`$krjI42k!Fuw`SV7O(Rm_e7I&evB;V~my(}i=@D8#(O^q z;E3qL@|x_tB#oQTPu5~hT&sUC;6q#SSGCv|u3Kn#Z8dIfS@?~Kjh0;Br>(Hn*s%p~ zSetbSCh0CK1i4q65&5oS!%%`$#fIT(^TJuR*KPbsx ziku^Xd|5*_%C(K2>=#&AJ%IIeVrt*m`Mbdqf&VHm*tpty1w(PrJ& z7tRi5l2NL&n$HVk%UE$?gK*~0*jGF*f<5%UumDW3xMkYS$0%wuj$O$Uo3WeH;3wc23|Wtyv$b;V|AXngvNNPTUgBI!e-n!a32blu5_m;^W&g zZ$D8(tMQa8bx>I`7;dAAVh06ApS5KXHP-0qc}QPq%VHZ`o{4gZb)qEL!4&`Pp`CqZB%rPjAosq?&{I$L-l*X<`n4*`9qR83yqU zv8;vb7w@6D1MTL8{Fhi3B4xeDUE)|1DfK-b8OO4utE2gbIMzZ^-{cqKSl6KR=?v#u zNpDh3%2SmC$<_|&h-B+v4{RQ30n`#k^G@;X_rQcVfb+kO)550_iNH5_at9V^W}|3) z(_N~Zr~Nsy@S_eahDo3I=OrDPzm(UX-|5Iw&0XIWxFM-ZSDd{aOjgcmt>5Kx0((P} z`t$V(tT|i7&nB?7lJ5wfoydAhhlcYbiEO6SX*f^q#B!udefaTC>|-ge4Fg`~27x5)eyi||h1Fxy_8$DtE-c7pNe>3QsrN))uPa+8{U?L(?TQL5$l$+p zWr5yvhma_Ab;037YWRNA=c9)3hZ9+hG$4bg$*eK^n~#^-ZYj1qZ;_0Ge%*O`GHdAV zJNUl~z8u77CZk|kI^UIyf*M48UwJ{VkR6OJNP9L#g~`3Z&$tRPK|? zdPuRU{Jm5bT-!U926iAsEAL>ykOOw}QT}-yC09pU}LJE>PmIF$Ukexy!h4(_Pr!^Egac{9b(e9 z6}&|+)~LZJD+~t3GI^tv<&$blE5fRmsPt(qj9P8x3O=qEt0xU#!4-sV$-vzaiB8aV zB=If1*wmT{BOIMME{V78jlPdg;^TWWFDW32&*{w?cbNKt=-jnhz1^a7*R2(uyH@+A zCl1@t+hGC$M>JabE`c#qU=YCCli%shy85@7L^SBoY^jdo??4IAf_w6mKCB(P!}AeH zwU_gvKCER-N@r>}_J^n|h9QC6i#WL=k9KZ$1+gD?3Vt2eP>qOs*B(5yFY66rGx}n_ z`Y+>~`m!E1M<${~evxVRXHGouXXY&>C-T64EL4ii;HmvsBb-t2%zkWx_iYvCYSfWb zn`M)%{G6=R(k`kztUsG5m8SDG{UNiRDlrNi7;RL3rav1crKI!t0nAt0yoC23z(z_t z)A;@Y>^o`9Vm{#w)}iKZOcO}rNv$lN?|Or^Z?GvIdx)ZBt8-8?79SUSK!2pQAZswZ z1NVB91t+yeA?o9$nbhXAJ6hg0(PXz(Vi4|VX2>cbr058C?QI>QjLv>+X?E?e6h7@u z*1PG7IOgFgE5h0S4J>-HINQ&~L=+QhVjO?=CYvF(h~pm&WD)F0;rfAWolEue z!X=D0}Sb|gt{Bp*ML`A7wkTp7t4vihLU{FCImf$1HIuW?aFyjY3t_ znf#s6Y*+A{X4I1hXo8KTv8n}P5Yfr-@Wa24!&SREygTpw9!JGuJv4sUgFBC7 zU$Z@Y(>T`Bcj#2|W7X1z6+s3a$NRndYn`X^=i^wbZe~ZeZ`Eulg%8Qd|Az|N_f{!5 zRJ)BF0&7*lBemiWd3GjiEM-mQt1_`3y)l&+WwJPFV^jVrlXa4YHRYYgW0jVY`Izx& zMeU}1>3H_4UG5YEorrmo+E`0!W9C8H{S6_Vad-f_MW_hxPsIfKWLAaF_@XsGI)R;$ zjt1$g(>FnU&qU1hucH2YbyA}AWo>GZSk|NlU3f+on=Gwu%zw&a^=r=5&taC#JA^yxL?|&%e2&@Kmz* zMPX9&RCsg%<9jCouis?M$G;ltOm8Q%T)j>3OcVS7XV z=VbPSbg%*6Fa?$Vz8No>!s7jsC+H}B#-K_X z!yPCol_*# zT|crSIn$zsdhHAvf_oxh$ssr1oHHD-_-;CBsDy_mKC!z@4oV+Be*DCWyWo%}38< zEu7D`gU|1inJmQlONzng80b8UVt-O>5XHP^v6IsL82;nu*e3ox3;L$VDDI!f+SK%I z>rnKvnGeomfpw$1VPTeSLK;ugsk$xgOYL%FzB~`Rg&q75aAIe9Q}rz&SO|=(uu|Y+ zo+So8|6fqnnypx%VYD|gx1y(LTRUnPXAfR*l2(j$@%t5{dZD3 zT^n^%(qz&LgS`07eAX!Lxhy7oh*mUTv@01$oT5HG19ffSQh~5WM+m7vXc@>m&S5QC zAs;`71=Vd$a?l@R;Un*RiLprc(GCK}znR1Q|5xTB%Dgd$HE|w6u^Mw(OR1SBkDrSz zMZ*9-XfBHj+BZxztF5jPLm-}{iJy3gW^|=y%=F|xqD1`xSTs=W>Y6rBG-Es+yHfhY zhWzPV*2;Su(&GM53vt^e*+ZMqlgG_tgMIHdprXzllC51`EK&Com4DEG9@@(uykH&+ zuT!fhxLPgOi!FCBuTcTy)#%Cpn#bCibKcgqwioog9lLmBjp@NVS+N^>Sc^}w!Y01% z&p)xUQ7uM9qC1me7A>nq>o~p`Rpy} z13&JmU^6kVJ8z<}=90HN@2fykjeh(Cg(Y|gcSm^_Yud9)ieBCMQ3b32?4kUD!n}jm zx`C@5x5`k()#<=4l4Bp3W_gmo&0#E?-FfH&)+FwHC()H(YFV>ISN?;W7wF0_wQBWs zy?ahasH^qT5w7Y8b+zB>ab*Ff!e+j60Sil?T@!??`5IbEqWl&1BA5;Nf{F+cX zA?_e5CWPq+_gje1lYI^+_@b+6YS^f}wz~~)Wn&#pFJbT<)0%-YNJih|xi;1;eOC>^ z2QIGI`~Sm;%4?6K`AabJXeAg817%_q)QNZdh_z>{3-do> zkxXiu!V4EdP^+i#3kz9W=|s0ek43Bnlg4)BiHq43>APxt_hL-cPtE+7#VkPzdV>cn zVb8nN9Uvt7Elkv8MW3jz`a2c|J$WBV$Gr6r@^(_|Yef4LTY%%(@w$-@QCSoDWP2JY zy?ymhoss-Ug&;>T5}%1kKoeW5)r5f6xVa-|y8@mBae319t*2;Db)4*}lw0)yv?B z$v!D7(~A?8C&@~8A1$m2W_p)ptf6ytij7*v!u>A>)1-3grnr@A5mzCOR*PLA??ndR zvWzWsj-Xi5au~07`|w%IS*tqR8&lhqv$PSs&2$TAtwFf_gS4lUU)jlySq@DK!M(1X zpCUSE@L(ax*R^*&xGQHCw6r^CVJY_wRPB5hhxq&zql=G^E|rW& z{~fUrR@wV-LY)dBrNUZR1V6|jJEIzrkbVrZBs*`$aIY0CA|+I3li^^~+`(q3&Zcbz zn+}z1V*W21Dy$6)=kr%!F03OBt(}MWl-Mle7gw-mDeoYO#$-CUjKms7b0JsfVvTk* zW)UKKW9B3FUyY%{+NWVWViJRunl8_^!jodU+`$2hNFu|OZ^Fc>l8#)=A+_YgCpSYytNXRc!{!^q!3%Vho{ zp?jWNqMjyUL*F01KM$=#TY~}am4P&7kNDAb*p>A7i~Fu;!A^0|5{c{CJH91m5|Wx(b9a9igBCVK*UE{>ch@y}yTS&GeCZ z1ZSoknbzi+cNfue8JdafHpYcZ9iwB(6qiUbB;T~eT7EIrwg=h-UVt1N55t5wDTn_g z?|bef$6lIP4YtkYvV=*Ul9jF=GCa%s$^pMPsdlOjw`!n6lQD<39l?QJfE<2Fw)tH{ z@4yqCBV0)*wP2d+Hs^+99?{LzLFcT4t`=KP>DE}65a{b0)wopTp6%%30;rm2&$f>x9Zr&j;3%_Y{u_Y%L^Ugr;vV_ra zSqIId{WTiysx5R-+=3#c`li&u80=jVluZAef$D7?Zgv1A}A3w!rh52B6tiNak(?>ijFgHY?x@+*s)g?1xvf09YG!rOX|*UrT3n{Zo~(E0UC#qS}7{RqgyE zrrGZ3msI5z?h_geoo&t?<@YYeBs*OzcA`7(#hpD8_!s|SUbU9O0!&gK(DGkPo68UX zhXuNSVWO&%hPtVZ;(z^z1+#0s-Z!jSFH4o2=Wk=WSUU&E#hpo#@N!M(NC><=k?d&f z9ejanQJ~r?yE8TRrfHT0lvHI{&`^jXJcs@Hr{Ay!-74kZL>)~(@hVh|wKu)cH83ay zzW{iocN!priQB7zpQxVJ0gP>3NE`_*#yXI@e9Ic-+|*Wer0HZLO=9cgA&|G|pj2fJ zZRMlR2;dk1Q4;zQb+*)^mRD97XCao?(GnY&BWej*(}~* z!P&$1o^&S$<@8GWfrTJ{$DJaW;SB|a5Tc-*O58!1s3_`lODm-oDP2a&Hg7nFO{hLb zJI0#C*>^0k(M@fm$VXjsbYgR=bjDLV4iQRR` zyKI{bm-ih^m#*byHIuR7{=JkKmeUozp<@51K*?N&@X^wIg;vmgFD2AwO*flgTR9vC z;|mED!@L&5jxYe#NBxgfY4U}5l*{M1JRLa@H!#8AIgwicUN}(dZ$D7kCqrw27!t} zED-tnAig_b45)i z08tDuhNw*yPA>+7lX8l>3$qn(zEvIcJ}8t(n>!R@D3qwYs@j6e9tp+dK{bWowiAr> zcq!Z|6_SFwv7qefpz!>jh&JhDciPWpr)3n+r^fXB*XA0q*{k#D}vKe zTc4BI4JBEJW1+NMM|h{$Qbt3i)q$^x`k2gpC`(}8N2$j^d5NXPF4j8BeOl@OuC6`K ziP7#*PeaB|B80N3xSvO6j&=()k#~x~w$4M5MW=2Uuo!`wgc#HxW*Ui&s6}Db z5_v0hdb%))a*4`mM=88c`nuRm6oW0~V^RLnEKs3UrHkfA5{S#z-9ZL~sR)H#rusrr3V>KcfoO?>M@><4bU}_6x~6`y#UvISOG8=}i!F_Z zqM(*HO^|UkR^CZ@L<+B%kb<{bnp!R4n2ea_P=089BsHEI7@~8uPHzDgZPD=^sV3SU z7`C#Kw-Isuozhf==M=CSIigcUk94!SmCJZ%Cj|Ac?9LGwB+(wCZ&CK`6x7}q&=em` zNzEIJw}qx-rHP*!`@%HqI&@R2qIZ;xkU9>8G=_?#D*Eu^5GKc)PGNi~)A4T9K>hHx z4qP!1?Ly5wP>A-YFh)fB%SXEGFRSN3_=~#SW}aSwFvo$gx&q;>jxewSVK^Z;-VEc} z-!rdRZ_zvI4Qivqflc*<{asWA^a2MD0F_h$-Dx9yf+< zL3+wf5sDXXOWnBVHa5~p`PCrK|J!qQ8yoFZ-I4r(*ZqMFlWy+f(|^Eif%FG_)er1S zjb1mvfflJ<{8UF~mRjH7%L{QM#QQ#UintL%w>-of*6cpNQi!9@hu67zI}3BS!F_N{ zd)AkffhSJ|D5p44%oe=w8$<(JoER};#E6c?iIK;T9g8ncgu7DiRGb(CQA1u_E&|y) zO2!YS;3ybiqlV%Kb8l28-jSWGUBDDhw$1QJwsmoltC!M;NYJtb>ix%R@^PRBLKYb(rAQ%SCf@ zfIX^$J+%9gRELzIQFgi(5)Xe}=JG5S)Mz;QIsJd3ZkdX%aQO0-6uAPeKcPi8B(w|I zZU9Bb54|@PhE$asBeU!zi!#hOyfJh)1id+wyYFNHtRru}lQm$nNafgHLVofNhKQH7 z9s1jrIJ8O<%R!=CH62ydE-}Qkw8)yMm!fo#NCyctN(YE^fJnc7Q4$-{NIL96%X>{W z^*dwo=#%0@<_}bD=gHV$nGPSh`B*lEL92C6cx)PM{tdo-Q^86%hAf%p1SXyD`kF%iT-c~uOQ_Tv@eSgvilQs}aaO=R^xfl&gH&wBq~ zpBQk_@-OpcyWx49TFMJ|vuLl8z$^2$n?wF4&7l0OMU`^W8~dGaT+Z9(-`+yA`rht$TAt*Bb}Uqn~Z|AaT(%Yvm-FL)P(O;*AXkgbIdl1Fo2lcc>SWD#ud zJ>iS@GA~~bu%BI&RgD;y)sn3rj1<{Dp70;{!ZUg6FaB~bd<~!c!&??H?^efu6AkHa zqUNKQ{{1n3yM02{!H_-_Z$;lG~cZU=F|v*ro!cn}8{AD!hxDg5U#pLq}$ zt1dm@pB!XOi(a+N6<9{MNxacv798eJd65rK zY0n9}x#?qm@-WL_(|JHKx^CMeo>+{7rV)?$r`M^M;G9b-N1et{ zJoe(mc6qPtS-9T;;T`~x=?B>!dm_8B0QlVFO-fjYK_ed;40+}DY}&@jwjsFs`t&Z9 zK9JQHkc4?rm>3Q~fGBvKQoyy&rAFD!g_O3=745QhA1^k9u#v&jc9-ufVGAUCHQxOQ z+?!=Q_Xtbq*#9^R=yyD;>@jQG&7IMe!h_j{FtF9cHBp;eL)n_{;qY;s)Y@I;_9HB& z_H=Ak1*_2$&Pb}1ZG~m!~mRwRdyvGrEN%>E#mRm#G+}hG2@yggAe9KR) zLHLiI^}~aFI&*=DCukoh37HQH)uk^%i-0OVrhVU;zxauTux`BZQP$1p1B@Fiwg`u; zk^TVHDSz_(qim6M;U2GhjM=2fdwjz&9Lsgq_|ao5jNx$d7;EC8VGAT%chOj5?$n#e zBaY)vB>M z2CsjDHL7D0h+-zlc{w8u*?x9&K^gCL0zx#cjL$#8*0UMB#YxuRYu(SF1E-#&F?REq zKlrMXa7ni<<#$f9(9S3qZ&4GC1p2FKMX1=9gYp2R zcAg>&m(8H+v2W16IR|!d?;lTfdM1ZsX79bl`DvWD-Mhmtorc2Md5625Vg1dEpr>RQ zQ3*7aWm$P_H-GXgpK^xP4?KmeROOI3jw{hVItz+)u8`{VL=L}ZH;@07Z##qawE7)> z;S9@Zvq9`(N>Xjz#dQjdbAZ;sM+|-xS#5JF^DFKI1!%A8@&#wHr@f0cSl63B#R{S7 z6`%`MjP~Z4DvI>AwE=HuL!F>*i^+`|dW+JjeV(BcT1k<2l{~P+WI9A)z(X$!dMf zlmk!4kR&bn4ZiIhg!x1re)$~p_rLa1Z(XD|wY_Mab3?s#k(%3S?tPwx`Og?2Y9}_O zWX*h(L)sY%P}9^L{^of$MCvqy?>7$=2sft&^9&+dhJ}CM#}1+DafL<6{Z93v3xDZs{G-LcREui@3>he+A!r zk@8)>Yz3-noFxUsFXY?pT)!Z zq06k%yI=STmQ8kG^8$6={5p+$3AhA-t@do8-7Z{EcJl(*`Ny;kjsJyiC*xnBn+d(- zHTobzk2WO)aB_{Se>>$wSjImmeL#RP@>@ure9T3xd4gOCV-08%pX^;X;)@9 zOZ?+2m{gyjl(xuM4B)aNYLdgyCk^5umTua(yYx%!jSnXD#U~T;?nb66zv2ib$`0j{ znOs~9)n#9lY%lH<6W2cbnXE8jmO5e8eV6RX{Gu6H;;U5xdjgmoTRa0DTP>#&8V@KW zH7)#E8NBk(Qk6e-=2Z$lx*(`!)sW#PRZ8qVT^3cPTN4yuV?xSb^D1@}36NtCXVs@d z=4k|~K*>QR&jC;-ZD#Wzh&ZaML2p|cO40ML(SWr9Siwc;yS(y*tYlNe1VdW>(-{es zlz@@~6w?n_OlryRBsfpcVV03N?aw>uOyl*MU(^}9IcFbm7QrIN zTP#EI`IO951$*V!I1qg00t_R+&Y*(Hip4-9nCt{dUt*1Qs&aTd zFg#)t4P!qmXflK=vho`wj(uT{ejAX%4Y;+2E(`dq%0K6+U8iVwWWI#Bh?Iy(m7M_0 zX0fkTuwYAi*`Ms@(}eb4wWyTp%B4XYxm~m+2bHa9H|L`eDhqq_H6iQ&B;@$0S%t|? z6-dl`&P@5}8`RT%DqRjCuijUbCO2r_i=?cCycb=v8s)v{ZpvQ(xE6hdG`BJRtsGK1 z=6={;qf)pUL*ayPGWAHEEu)a425l z_qRZ+v_f0VA)|wvHP=q=b2XmfN%4Bh5)Ttf}r#`R2kt{2mXfuV7%_ix$$EW z#X&4yl`@4qqHmD|m_nXsB|pl+g@<>LXX=L&Dff1WJu(g4{|Mj2b4PndnBF)=AMA0! z_YwRFY-_+vv|+F;vEh&RL!q*$+;}%)k=2UuJq1M^tGVA9A}Ag<^*cg^H|m8iYEAXR z(bAnEeD75j7`_0ATGMo~Y-kT%saM={36}Sq`q6zF;zHpcIKyjRgN^j?4W4$5)eXTmN&-wS)S$nTGVh7h7+Cp)kKxJ&{oZVpU z{G=)wO(-J~gSDfC>VB5@y}<^vEWYgqt|JWD$FJRBb>AzY-C1b<4PfAy+dUMX98;(b zoli;QXg!x)$CO)kN#v62opJ~2x#Y;C+(9B~BS$#p&d_rc9J$@^@gX-^BlabqbrY|9 zEa6|>WFa*^#%Ei|kjl&FS8lRyF4bWgAJf`x;mv+!eR94&L#eCidi{_ahstECLs9nG zNTpuj9pD}1)VOKDk*(N!VO#<+F8-U!XrWA^9x|^RpbyTj2Gs2rX?(7O#AYZ=tq>&8 ziMc@0>dRtSggl{dwVdu)QA*b-|sKw2$7n*fNF>>Y5YCpXfgU% zpP)&aV>W2k8lW0f39E-AFwF@2Mf0eH^(EMN%rWinM?{J&tVVdjRr`cs7lDWMJdDU8C;vXZ6ZXRR%a8j#-QP`Oa zIiSRr?}QDI1slDZIO&0;*geGcUicCPgjPxqS@GW>h+H8eI61&}X(xsmM2>1>Km^w_ z{HIsN@KC{qhLJE*2t)DjT@_)|AB5l_5vC)AS4F600gp%rf~%+~nn3#O`*%>36d)z; ze~W=>_0R(vt4LOCMZ^-PnB)0dzpI$N`~9 zk!U5Jt;MsAc*clld-04D&ko|5AfBDXGf6!Aisw-AY%iFt7SBoIIaEA*if58|HW5!B zJag>9vqWO)NorFQK_Wyv!^E?)rpVP>)=j`u#WP(zGsLr}c=i@gy+Zv({0;FOD4u%H z=@osOAa#R>iHs5AIZ`}Ft-It}yUpZDamOIe$o%eWng zPXXPcAk=cw6qLRgP5B&RXTxO4WLm+6ltDJL*tkN!$GM2c~6joXv&!wx~#_6igF z*s;9$DH*6)wj1qifl`_R6s(KI#^(4&8tpDko<=*)@}r6nsYc&Tvl??Q06?qpCJ={t zhnr%?WBQlRo;Y&8Kn{UzI{1AAg6c{{P(KW)F$~dSV*s8$I-s2Zc;V@y1AGLa37%Ah z7!D?eo__9KMNYgUhZr5ljZl-Pd##@Q)Lpy>s&?mp++{;UyO6oktQ&eJ_F^`T*J+qc z)Jwh?BFMrEago&gxCftjk3~pN4)f3Mu|}31kn`7lg0Ef~N}EJLwTZvH_?5`6lK&p% zZ>Y?tjY(d7b~<!z+8DGCS8>!h-HpWWNzrlz+ywtjKDN#Rwdz zOeOy-)%jnkcK=GX_*W|UU#a^4NqE2eKYm^q`X-bku`5J!q!~ZS)|Dg31aw+&%+3}QWVvr2CnPjMea4>#8__fBb6Mh-^jlu74 zJHCH}a4&v`@jH&+IsC5R_bYy-_&vby8Gf(utJe_(1M$N<8U{D~KEQ7Ve#9srzXkZM z!tV$Ce#CDhewp~`QfNuxF%R+5?2;~g+C#id8_H9m(yUn$u@k?x56NRcjxT%|}nB9AFTA3b_O5nNg^`hJ24ef=nb zBJ}m6aTM`D#WPTd_hj1S&Bk6)n??qj&HWZ2+rb5Kvx&aNXtU;GH7$J1-pGmVN-IFN zo3=#AlW_c@NEX&SZCod@I+P-vLFt8h8rPfMWlHDh=_4R}5YAA5LkS$y88#^$=1C|JmQIN_*@k}mVw+#zYMJbm%56EL5&&Uh@i%zYrn;JEupjN z@F9l$feFyrJwTCmL%7~kqB&y=0K9zQ0hWCi@$q_G&%f;oK8kTrMSj%1cFjh1!v;io zG6QGsbV@=CHodlHOeQ47uX?-p`e(Vxwq6OOqrLkO0W64b!$LVM=M}reMuz}#8jes< zP``1ZxVr;nH@DbJ$nGArxLcb&$52_Dkzm=)X3DWPdy2)&+N`{nA3CB8P1Q!Eh!TZB zA}3jbwb{8Y{Oc#oFXJOou4IqMpGo;R)Vz((-U1rh$V9+x?w?S6pdSB%;sJ<59Bl3% zbRltAfen*zTS(vVI!{^q=+)SqU=9pgi@=n$AFgoYku{85;zmzLII1EI9D=v}l;=N% zb$;X7KXy#g-7ct#W0F2urK41Y=8yGsnj;+K2**0YWsY#0BfRDan_>PEt3Hk}+Yx@@ z2oE95A%uGlfCY1y($^f}SgP}S)ND0=OYvKP-)#J*;g^Nq82pCeHxR!F{95A|hhGwY zsrdEAj}}(lLzowzf@R&HT*|5`t`egQ1Dewp>)ofXK*vE4aXi^*JNnjY33RU_;Tjk{nuTDjW5pQ&LUn%R35Ph z9E`b-0uCLv(UpWjKk&uR@d1@xo%sIetd*M`>#HH#2le=Q_3{_E#x#%zzCe$Jb>h8V zu&~;bC_n2)F*GHp+KlgZ=L=upt*P^geB%q&!L5x2w3Qd|S1w5Bk6y4zO}&!<+4s9q zc6v~Z_l_{X&6jpk-HwZ^h_bZ{j!v&{=L=sl-!=znw3Va!F5BA0$8O#V2)-YPimI=wCP16pZyQJc#L7Uq|cKs|XSD~^OUChDo&ZmOK!DC$hR==69VX=gsctw}W~_2~r)c-nzPn*qBI z0o}_xqO{HYup=L9XRV|s-}BGxIIG+q#}C`Fm9Z_A>PW-mmib5>f`j8|SiBsjyY}pX z*xHk3mz9}5P;s(#vCpztslLZ=vH!v>TsA`L)HtXuIEiq4JJ@<3CB3c0nY&Z3kRGm zn+Xp1P{6-*z()c;*a6Q39R3nPXENaF0&d9#7|u3;E%N|P(4mWDlWpb}9lQeIHcR*^ zXURJ!QqSIuLjTcow<9-9hZX@^phMw1GY08Um^(Ak-NfJ`p!Ia<4M3s92&w_&bg(0w|zKSuEcL2brDJ##2B59paA0sTscW&(N$&}6s?t(M7lGusTR zdF27ztD58=oCPeC=iFRim^_kkV{%`hY_+YWq^G!GWH;~F#QRi}tWx?WexsU{C2jnM z_pL59m2$q}In^cq0YksRf4y|exyFHcU07ND#O?5GqgLkU3+bCX6Je8)pZhI{IXquP z7yO`PZk1iscYtWw%Kn9xno=XFW}o?3 zN@#na{fAF*m%?jytpsHAjqXy%n*R_$?7zeLBX{ZD)<>-sMRxpJIc0J1Bh9FZr&G3n z-V13uM#=mWA&QcVxUH7t+w^HAV9e{1NlG$iiWzV3JCHN@@mf-&n&!%iH0Cb=aPz1H zJiW<7Oj1;wD&HyG`CzeFr1NIx4qOa9XJE4-swnkzM5%S+5s8>vC3<#nVBq0?8BBr7oxXuDZkRVCr|ah1f+ ztCrW5-f40=9|NjrQ0;c}pjObaaQwrzAqks=EZq=V%B^)Vp>A`&wXPIleudWQX3Q`` z5w#EFkLyb9q|8;kxsMd#@kvVlGz-Y zM{{t($}06*wu&F|k?Pmmt^;M7moPotMB8D1tX;`p`A9*HzFtwK(D~Pi3cMvNc#^La zF8v0}%vbW3uCL&8eIXQfe}2*z!r65Nzwaxx4gVzyTbaGii3hOP`K$#xJgY%o{Av-Q z@1a(wFWBL#ug&QG0q;>ysxJ-o=kM2(0&~6qPsrdksyfG{6QJ4OWd=zo8P3`>e2p)VtuT5`9hq&0f+7YSOop-wRZEZ<RlE$~XpB1)4PTLU@z$YqV&u@+EV8bhHSpCM{0yl6LXSYlqs+)0gud^`(9usi2R$M8j}12+$_W zd4Qjk5pi`Hj$Pp~CtKNEm+B3*PNpPAt_XQBjvT42%lK+PDZb^=_O!6$E8Fy6yah10 zHN-_KyZLRPqkr2}VV_~g|5?Lp_)GO_WTF_HyY89od2@d$(0{nVHsy=O)Mjpz^Z(j= z_qeKx?tgsF>~j#20|(>?DC$u`5fuSZ@q!){6cv?Bi_8luUNc37qO=a?B@r!5Ys^g1 ztjBBdlnI&@=8en?nw6Oql^NcOddjRUe(yCi2M&Io@4vsl9(b+&UbEJk*>m5sXRo~v z_GBPpsl8hE?k#4w*IQgXbvnB7-IT)h45|2Val{kh<{MTAtVi~%*R!nMzHuz+n zSlo&aA9W1Pr(?<`Nv(Y^?1{}lHDRgn1a&>kd$snLV2bLAbmqfgwLOhAg%#w+fc8`G z7}5{r2uEuk)oQFx1s7x4-I^m)(~xU?+1T#&gqYEq#{}PbmNJTo-TKrbq=j`Mvb%Y$ zc%wCM)u%QXbwi6k`TFA@h1TX#SUZ218?Yb4BOkt+h+Js3K$u!M*qOQ{&&G1SYY!Dz zf9WW^9XyL?tPyh@JefBS7JD81aqhQ9#I)fb@{jG}uQt3zi&iMkH2*pDdV!j#{^Nh8 zoE!m;?h>(WdAsmpG$R_O961OtSTaLSWxvu{M~8=#D;iuUpA~s+c}L#KE?#NNf8cLE zBUZKJ-I{z-D61SlZj>iZwBx-8Wy+GCN-bETW<)2>?e0=26HRp1Joha2ksYziuhOcI zJZ@Lpw_^Ci6=}5?8qV>N*KT5AIKC8^hdD#1f%-o%1m^BW7+#M}!a6Zem zIk2u)v8KnajVwpNYT3&lq!)i3sfF*TOg4Q6nS_f`GIddGxWJ9HVpV;D6oZ;vu{zLw% zwf}@#Ec|`{IFg<=OX=^p3xjn3gOK^Zk16G&LeZ{0K2Y%_qz#gMm?Hn5B=7&PNhUQ& zvRk2et397@JJ;6p>hZt|(Y*tY=TmIrp$^;;yJKa8nm}iGzo7&r-$N2r!v|K1gB^HE z)G&zZ2I_JdgQh0x_%R5{nTZ1JR*FuMygz@ltC$_hqxgHv#QI1c8!`pggk|MApr&bZ zVR@~+cfBHMzXe-_xE^5F2;VrR*<{-aF~1{k9}(}TJ5q{2ez34$I6jSRPnb`a@jr&s zH;2Eewa;83-tEYz@bCiBHi{<%{Brp3TK|1Z`BLmYVXtWPAn{NXAIz^E6nmriq~`rs zp#1VDo}M^J>zS)>V2wKWk2y_}=p!SitJB1m zPCV3a>pM^t9wxu#)72@Wq7!%Wjh%!~XH0nK4~nSHSnyRY6LUKA2l?Rx;-k)32)>0y zLuXt`*Dphdv24J6(krF(5zGnJ<>2vl&(n|(FV*Adm*q4l%W=Or1KPrr(gMqLFxMNw zh2cIhc+yr{kWxyny*9d(grK9!k<$ywlY<{^?&QvK5B0T&vANUT0vmIoB{)imE<71u zuBD`6eu2y<`Y^hl~+so1rT|i9{zQ=bIFBOxKb?@=c9R{ z=|Pd%l}|9eF5d6TJG5GU3cfZer74A13WvXwQh1UUm??!vQ9tnUo+->Rd~(2*cU8M| z#*HxA<<21SXbis?{7OEyAaCI(vXToc@PIC<@I2M(R52r#x8w8j#p+l-+{DEfv3zjI zpRkoRbbNU_ijGUVY`L|fcN}kS$`fPacpERThp>oUEEa*cemx6!RQFq}0oC`4opD$r z&CM5|#qrgBGoQr6s>g_H67(8ABT*8a~E zqPQCmF@=l$-FSST<4@2H-TBoSCh`@Gg>m7Scknw$Xg|cjN~PAm4JNeeh(|XE4l79h z4NV@MFCyc4SicJuw8YH)nw&(26{eBuZ>%bY)E-Ogb8FGf>(=3TH%j)k*I_9=AHO6$ zWj6c?@l-r-8~rx6wf}=f%mbixpj_;=Uj&XA$k|ii+k*cNHdldj#e!M&XjawfR^Lp^8 zfJ1rMpc-hVE{P{0_Ftxn-930J&(0IKdhjm1O`eG8$=eL^gPFdi#E+6<{I_%q3gN|C z8*$~)yY#=g1=uWId?TH1a|$g^#>KNe`OKcl&?c3*-BBuP?cKD%A=?y!wh$a>MEgu%h=7S%26?c4UFRK#i zp=)EWaX;oz+*C0KEtOYMP0-p#&A0naQu+v_SRc)uOe=s`oB%V=&@fEBC@MDn?9(QT z{64(%zzi73Mfgt(WCR&5u;7#Oi1#tc3M`#0A43-`->S&(k(Y`Ok; zIrPizskMixHom$Zhm*&UIo*t$A=5&uw>-H$R;FUXjT6eTSEcfIb1I^>Jyf;!^-9** zrIOAWjrTdA~uKnT}3rBW{(*qbWVd8rzql02hM6CzI&r(}mormM@} zeU?_FGZ$FiXfB>j#GQ3uQ}KEt5BHmo7J3Jr0eveXzp1E7d0{rDvQU5I$FKh}svA-LOU`gLtB-MBS^t1sOVHOWR=cxaY^F6f_0 zjY+PZtL;n1iC6mbZoQt7UEl&$D(&q5Fws2{toWVFG(4wjOh5jGHwWozjj=TX_HcD6 z9WVTyJi=#%tP=ab8*|am$(u!1A&j#2qgj*&b!M&oT{2PZ0cE{FTl;O5*15;9J2(=u zVkht5iogl!_8UJ_v=Zv-x3M>pTxe+qG4{sgn9;-KyLqzJ&CtN-T$aQ7uVxe&fwR2^NNSWeFOP)W3U$&FYz_*W-y+8C|Bq*I2+eS3ErlE9;{807q#KWcPt{Jp?wH4FXHQ^_9X#fqM|#V3rE554a(0B)DPVhO%MW zE{*j8cQ0haS!Zy;;L_QH;Qlgmb`QHB+#ldZvj@PnhITB=0A~f)fn|bg1P(tl}Ug@W4y&cQ;!m4d^EpF5eTntw*%xaD^od*G9P$1O|1rJ3#n_ZSjs zVHyjr7r2pld-%BJMQ8__oZt$4*L#4&^Ta31xu*ft1@2sRr(%favGPuGaSgRyd-@Q_$B72@`3@^<14?2)HFVXPnjmxrXiQ6Y2vpu{xx?@6`v00d-<#^ zv1$bG$>}|=5quWkGeyLX#N~f>wU|7Tf8=^Yo_lXNW>lK*p2W3f9M(TeZvUCv7&C1q z`0JyW+`c12^C>iF$?bn+D2GA`OK$%qL(3@?MJqFkS45$(CAa^Up$!!B!z&ojybeCi zKjjeS=)>tIZ(T(*#olzD#!p@msKG=&e56Rahqp<&hTCXV)d5rj5KG@bAW)Ao3(rv1 zT}2r8PFTF+&fo?n5zHpCPAj00OWHRki+|n2=W?&{0*-HE`Oa}7XB1Xo12e@dqp-u> zDpORC;u(C^WijAhWMR%kQFJd~7-z!WIw}NjSjkU0SQh_A!+S1{s42PabNIL=6G8gJ zzU=tlMB->3+9r`i^ovPy1F2*zWro1$n-y%Wmdi zS%5c=#!M^3{Dwl!Y~_#Ay`{TbrXDvK{DuW?~W5M-p><%SnpyOHL@v?*xARPP~&s*LK=A(UH7AXycJT%TTO@h6*#)G1gI zg`K#5-{M+K94vPPE`YyXp&$9f8#VN*nf2={CXt?jMZwW4VqOLh<0F3-&t~Axb{pzn zRlo+tp#qA){htb0sMM%{d5S{?Os_NasDM#YjS3hd8B~B%GV;A*dRmO_)rtCD!IPz3 zAK(^~uT9n!RbR8Q!Z{XSq@MVt9-G)*OkI*V{crK)Sl+B%{t6AqGG{iso zw0xxV{9v*8K~(Hdo5bb^c{9_aV&8*!+;HKhP7^ zuU{@LYL0AOp3T`!&@E6c$Q!cGpn!+PgmFB$#r4m zzS6-r!)u;;LF(#Z`PJrPJSl30@36{gu-1O?Ptkik&m13ju|f5={gX!109pW6-9w8> zD?B7H+^|W3lc0m(#cRut1M!pNcYnebiB7CA_4nt*1@ zpGVDhN;cc8$c$_@{OXfxws(l3W;;O)HQVRJP_tDLQ`c_F*@VcH5Z^S0T_7pyi-vLF+*WL0dr5H3;*F z<>SxlYCTnMu-XGsgf$ZzPhTdBdop?F#_xYcjhPryEtY5UE^TMNZ}vmGivp2CxS*VhUDStT44^Qaq5wJ0^{)(-g^fj_B+% zS$u0@1wQ0365CNlsH@Z|V~Q|p3h9MOXp+ikAF9^AaeF3&_>LttudBU#exGxcdUcv?J9fktJ%NZ>m9yUa&{r@>NXK>g}E zzD+C*@*wkHc2u2|N;S8)D4ov7`G=A*ew%qP34?lzwljFKapLcP#L*eprJ0^4ewxAC zg&a7o`}+IXHb_wd(iw9>=e^y^4?Z*&xMHk z-R=J3^_jfQ#CPjO-0AL$A$YOsDn0K>E;I@)=WyjoT728Y43^tx$wC{JBsyJ2G3aUi zRs57CJc7blPTwVoufm??cEd@WP7yteH}hXY691*YAxldVAOBI@JBvTW1Ai3dvv@!L z`OOy|!Y=r#n_|dAe4DHE1`1d3G^P~FzW=gnln^^V0~t$v-qEN$x9ei`0P-}jbU`mm zE*wUl71uCSk_!iVr~0QDU6(~!o%i(@C9`=e>uXSyxhVSn+( zY(CpJHxbE8PsWdyh ztyEp5YNk^0Yo@+*vUW-rCUql7S6~T7pv*)SLkm*5Ns8Q^y-FoeUW#3k#Ns);gMavk zkhxz<^0_8T=kOG35e!jM>WssCh{khyhZdvzQeWrOoDZvrdeOIWB8Nn$v2N25 z3*+#URS-Q|FN%*7Z5Ke~s26=1D;^`!hnMRjE{_$JB${6@>KZFL z-_@0IF@An62W6a5FN%l}vAMXrocf(e&*i7Fw$) zXB_IN2Re&`kMU5KfLPbf!Oke0biN5J$CQKRGRBMbQ%Gy=nG}1q^(q1wFDntkhc1-t zHzj*g$`X_epBN*%`BFwdrj583CF>_;HYE#iDPbIf)i?jf<#@HV8AJt^RFZt5B;iuh zn_R|ps`ii!9wgbn6iEwt zV(%X>$vTfhGfas>PqTMBM{D`dl$a*?9Eep@jCv2L;iCy3BmWytiL!-!Sid$fTyou% z`m@1J|P`}|08dJ&Ixogx7Zk?N-SDP*imI^mJqVm!n$SZ>e# z#W6I^Q5MmyCc<;~3p_iis9tYH50$R!@71Mueu0dB16SPrTV=FsFh;aUxF@J+lj@?q z;f`jjep$tP8}WLzoc)D(<_Z2BzjRTweUk6si5JDGC$aZ)`g0ND;vJ%`7pW^QU!ktT zl=K&$%N*r2ap#DBfkRzuOT@!29>N!XE}nK_{Tm6(QhQrDP8q( zr{toP^_Hg;TLboK$u>%< z1iva?49Mq$!@rB6W?UlHJZfI6pKkh0PF2+;oAFzdvL7M)VcyBRp-y|DGDps`kX)&(W(;-MILnY(1 zX(t`H+mFXYh%epQ$3TM>%{sW~ocNS-W&HwBYk!zhEVP~`*=qY>I%|QYLaIh7)muu{ zSE=5Xs-8-02>O82acW>TujO4UNC7D?5W&N3f^mCB}6Go|Vy zrRuCy7NxpRs!Eh9K&iM(=>|&O^GbK?6IrraTqIDk7^!+(slHIEJ4)43swOH`xl;Y1 zR6bIbtW>Wm)sIT`J3?>-Rw~y@rTb3lE=!%C(#=(>3rclXs{YeS7J9T&ol>gzr0N2x zdL<^23O}3<@L!rk-MCj`cNv&YfkJx>8Q@LPrFi9^xuA`d+M&v{oebasH^plu12HNP zDg*6Q0N*e}@_1xIX8tmOXE+q_k%2ojBzh%UWZ)+iU@|~gZfO2GPYHa2_NUM-8LCi$ zpJm`33ZVZjeG?33PI@h_Cp2_X#Wxpoz+%R+(k8K-ahjkmRL>qV8()Ed8imELKuBj= z=fuOIIWR`f z8vQ9{?3sor_qa+#u3mzh-eu)-#hJ_Tsg*+OW9|qAmZxL}yw9Wj9`XK7@zVZJyaDy` zM#^|+arB6`fuh;}PqZfW(ZXc34Gp6$L^N0RSGeVEn9cL&bh+>yGO)GwDGlRg(dqsr zqvcrMN5!a$mL)AnJb);;Orge6&qL}~8>O@8Hr$#=S}eD%_?RoPEejH-5f)mXuGfTh zM3M!Gx#z@-%XzEVE?N^%Yk!N0B{!iM<9>HkMhB%lN|+S!*wfmW1D`NGfXwjSJ~@hC=4)UTIMVi-WMZlT_AL#N05LysVqVnoNycb45l#U2n;GZ*;;h~X4kC_^_-i+L+~jQ2np`tr2cv6A<7O`js)eT;mWwl38R%8R_zD~RjxLt^N+ zmc1I!YYb|uOR(<;7;tDW_ekU_cFk#{dw4`j(SmC}=88q)$N(PZ;F|@iOgC;O$aMslXx-!q<|O>M5lvRH~&? z^`ufwSE?0CHBYLhC{>zLEsLPbQGsQG)TJt2tkO{ipc*DsU6iVsQn{2WL8<~twIq=v zK=z%0_}J}|L=y>e@RK=-wH3s*1oyY(nu7aFa*b1CXbY_ry$8ihLb7U^-7`~my6rHc zYX`0aZ?{6~$1TrQys!qY8Otg}$2IU3vb7U~*5Co>0~I274ZlBhMO!Ro@d_Vy%P=dy zLHE{EFrg1=E52XDyLZ@dTy|UXf%+QbSe@(U1e|Nhkr=!nEN{mGN=4Fhc(1J|%2gZD zQ65{!qXkF(iZOc8ejCnFok*Px?m74=tMVLd!P_&bM;74QoA^Cgyg%>mx`%5c_Mr&1 z5mhbe_?$d0!m)1rUZ>GoJ=LFX@pGD{wnrcd0ZR7=+57P^zQ1a7ysGCmMmDN@J^FX; z$*W7mt><`e(-9H7mUl8`iScWBg#R?WSh5uPLgYTyUfaa;Yk7FHdoe-LEKy*(^?@nJ zNB%H)b^FpYYxzi%zx@^TsEC^Wwf?B%zqg7m&+~+40=1vCq{5V3U|9wBdZXk*%aRJQ z@Och*xe8JGJa-O`*lJ?$$S2lIs{T1{X^tS;8V`?yz+rGuk1&DtKk!4)f)=Sus(w0d z`E5&`>I&F`mN&MDelK8Z+KbSeRZA+ok6X5YrCXE&%Vuy%w+=aS#xJRG9Jj1M5KA^F zmV?{Rn1SoIWe)h{c6e!|>TjGdlR|wy%#BMeOmVdRp!Wy4ZD2DL(k0fBI67hXMM29X zu&|B;;3-t0C8#4f{{vTo7x<>a*E$5c;4Pw&;2n}r9E0iN53$@ZrT%_4wVn0LVv1}1 z6o5zlkHCfKoA(huhH#Sqfp6^#u*;7hS@S zOxJ(MWJX_0z&i$wj#-k9iSq&vzPyhKzx6z9uPI2HR{!FKn&8a*|c#vutLXq&sRpBA^y@^!mj#`Z` z+EJONj1~(v;-%gWfv}>R=w@K>KCui|9B6E2)B^H-qac#eM{>~&3HyVQrCPf;WEgji zr03eHj>w$f2dMcSlwZs*_?U&|HwaR(H-|^*7qIL{3i9Ga;k<1ihA6P@2}uX8>nskP#)xk)`vHUNiXxJoz`!l zGo+avu-z7lT-9RsEJA4#4r6k8QUH=ZDRk+a7%m7CTd>h4&S~= z0ACF{yd+}FQ4zKY&WSJBgmV+NOJB5!hc_WcYnym_6RQ7;zo^)R71sy;B5X5nVO>V^ z5&6&JWjue8ycus>gxSR7oB3$|qo1hU%(I8C63E>@x_BouJle%Q84bg_% zYVDi+AS+D4?3hwhYhQs7?&M;L&r$s9;UOx#%1^8;=Dqsj$7&H{9NZs&r;jT1rXVKk z@rTQpQ+;Y=we@?d^V*18R@x#fF&&lzs`}ZZqPCca_KQRm{F(`^!9Ii`;eLsAJ7{=* ze;hp*k9^Ak*8}l6KALsm%$OG}?%TrKxn5H0b$6-zqPL_jIqZ!m!Sk=GT|0EDI=>2h z#_rDmn(a@@<7s)Ul*hKz9UI7*l$?{=^YZwqJYK*NpLV+_0~@8$Gx9h?9%sp8UwM>$ zJVMDYHl-8z%A=B3OPh=Gcv2qUlgAQy+$xXjQx6$iW*Lb0m7MAZ4_3$9JAJ&w3?&7LHeubgT#q{VL`jvTm11a9>E8B3&(aI z7G2YnE^Dg)oDaf}7palrpg39e;d}~T4idArBW{-W}#pakjTMZX=GBfcCj<{{knpK5pP`l$Ib z>S}`Ouc}4a4)nkGs>OvJ@Z_%fUHIMkn2H~+Q6`4Nofsu= z7OOBy;~J!WgR(9zcdut5W7^snJywObAe=E_& z*m*5DrtyHrtr}NqoUiddjZTg2H3n+r8f)zOL>k>SQyit_;|Otn7NP}5Ix59-jYBos zG`<$8^iGYpJE-tJjq5b#XdJCEUSpufs`e`01|XfEC2K)-gi>tMn5FS{xRQUM@hOdI z8pAbSYNzbhX-w8=)>z(F=@)72-PSD6&u+C*iZ?aR(HN!ivP0>&YMh`kOykAYO8YE*SJcfyNyTaaHhsN8vEX5 zm*)ym8CaolqsHwT4`{5=cuC_mjdwH#hN^U$YmCy^L*oFA=^8UNx*pNYa*fYv+^TV} z#MA<5-PZ z8n0=)JRN?Dkox~BE!d{7RChWW^SkKrAEO2C96qP3>ONh985%RRe1yhijR_i~ zHMZ9nrZGsPkH#B1y>l+jlxs}Wn5}W6&RCGfOf9d{3Ar=8Ps_`+`~!_AHSX59N!z*O zxx%&JPi^2<)cC8uaImSu@BoE9G)~YsU*iUi$29(^v3a117o%~2#`_ey*eoqrq|s(m z5gZ!VX?eU3m+0_0ov~{gS&)j?Ok-z_BXqn=x^z}VVW4y*xjT1CJqVXAx+X-p>mAeIgsstx>376}V&DQw1F3B?*M`?MS#vqN! zI%9w8bWZ3J@7D3oX{>@?j{kqOV5?4GtB$Zz<9vqcV_nrnK#cJkB(5!*#OcnG13z&6zS)3rg=l!TBeql+v-AjZHyOdFRwA zGGA4dI(br-W76!|bEn9Jkz%%4=Dj#uwB2h==R?d?=Xf{xgtE^+AseCD3;PUTacZwI z#dJf&zHI~#%+m%dG!|)Gud!GoWxCzKJ2MDz3&R|^!(H{U!B!nL)|!m&NZ0B;)XcV@ zFj&4gw9g1$6Jr)72MkL*B<{aT51wQc!~I8Zyb|vOZ5K258DXS#d}OfOb?N2rH_Y|~ zh}?e};PXM1WD?R55peG)|2&hUL_Gg8hl-1(M*B6<-lC+`uvzL-XiC-7B$LX4DCnc2 zWUtY(Nz5=ai#&-mP8w_4go>C_!yYRWZ|0f6+=bTej|=o4HXmi8*N2?nPIV=sz2>^@XFLug%X&= z+xv~KO-jJtCe10z`wIsROVH{1I5FVs;suA2@qeqp+v3ChMwkx@fef>Z)2d!9*(4B2 z2aI4*{I1~}Q0|fP1>(ixcZ{ae%p{f_FxrKd|3B&>k}QKo%s#^sbEZCf%#%m`(P*W+ zf2vGdnwjN6pDv@Kx4rO=VQyLE5u+S@HCa@mkY}lK+Pq^poQUUc49}*Zv^@VZVds{3 z+S$asgGR8t6^TT`?!W(Yq86dsk%GH6$&AiQ`!;zp1%b|N3Gzsx1pEb13}rJo$uqX+ z`SU!YP^#593)Kt#dD=0V40Tp>KnP0j{;N9$eyMr5stE79qGrgb7z<`swnxl-51vwU zM7-6#?y_^IN7dG#{XXTBwpGAng82 z2d@VJnVQ7#_l(x!*LRHo9~870TFjy}2vD%@WgZbLJa|ehLDviMo&_rwlio9$y3CmN zs2xWGY3I~yJ7+=H)jURvf@vO zmarc-dPb1y5+n&%akv5c3uN}TA*=jXu-ueiwO7nLY_w}jrr{T~X)G8gi0pb1n(|Bb zihYNTsJ5#x__iYpp&fi!sHqLJ)-u@*T$?>UK`dtCzUmiAIzGYl9?~2l~u2nPCjDzm}If;d~UEv%SD4V z0dc?dx5eV4MhA{_>^y2j1tvh+2IokJ8{iF4!bNfAs4>X2N_0791P83w>bD#w7Twmw z){8O6j1JH~am;9KUnR9D;pHaG2@A4XCH{TPXhG?pK4z>8DE>mFU-=gH?e{WPEM^`z zI+6N?<2b$Tl2Y58CN>mgyClvXH~NjpBROt41Ag^omh(+mIlg+-4IOiZwr?0l4zhe$ z5o|~<{pRSbf51O|f1-VMIms{hCt7CGIjN z;?YRGg^87elpMpgE-d&*M%#c@(jHClJY#!6t3>yYj7|aNT3ikf#ZKNxLd^TfXlg3Q zuc;gD+S{t?vtP6ZpT7ht87jCgEKcJDff>>kH6LqY8AMfrpEO1Ul(^+xO>7dVL`*tq zbO^Yi#l@o-I|8~PUOZ`Zn-KmD&S-%n;tUIGG8&ZyiYFNozB^obuae0)*!K&*9KgKe zZLB}83?o2`biDeoh&p9752cZniAkc3H)itqZmc8~qjU&rT#P?uv~F`=MaVF%d5;MSd@mQtNI?(*RvT~q5^#GZ_7dtDBX`?6y7f>gmYkk<-oM=`U z-;*^pb!CleELBD(O>wFLLc{ReLnb?>EKI;;-^B-?v>E>2ro_o-ji_*%0>iFgMvK6q zH^|#B6KkI6Y&zuAp?IGtIctPbIZmH7+6U5{zXFC>1+mCAU^WY{bH;#3O6dZEk>B9( zC&=5!_5k{3T*>|Lv*xoZ5yC8nM)SbV5K_-9 z&oQyJxhB^62XW<`(Mq0nJ#<^?v|GUJ70o_21_d0^_UW@sYzpXzc=%(ZwZAM^HI)m8 z{?+28kBzB;S>P#c8{VP&7L-*j0?!-mBQ|PzW~zz34N_tBk{mBqCllk(8yz}VYtxz$ zCf0N$oOfhc&l#AJJmn()un{CLVxzC>i`XPE*&w9NXA+w7E8iAZ&Ks>dQ;yfU?Y4j^ z(RMqO9W6z@@a=|7IJ%0O^E&18?ik;IsnId6su*manD&X$R^}k&n$AH4n0OH7pbMcX zzxZvj^Ano?5R^Uqhz&j5pFMmJu0EhNlB3${!{VP$jOOj7Jtg#O04qUVkY35Ks;Uc% zexDkxnp5d+Af3qHaA4PQ#rMlDr7l(~9{JRWmi-|f;>=#x#T%a*v2oPRav+GqtP=SI znC&2&UlBzrrb9U$s_4MVaB!4~z|V}Ka!FDH)8{DOA7C&I&i%~jC>5P==nm8!Oy3(~ z*Jnno>?*Snj?Bej(G79^Go!m7<+sEw+%KXp7*SGI?Uwy4rd=?iWvY=k4MtDwB4fb} zx+(s3!MI2E*Hs9QvOw`Xm@?t>xiLXTxP#zO%Ae&&gEjq8Ed1O^l!`Qj|D+B+2F&Ci z#YdkTDXtvwRQy<*vXY5^=}#x_zMX3X2GLta2sUybHe#AIvoe|6WqK3@j`vfLCgn()F;j>n<50&pu>gMi0NM#Z4yb~gg~B+ zM#*plyw2hqpnMHgPe5aQChQlrXq*96qVp8qEVIRos=fKTl z6gwmMC8NEZY^z9r6^B}ow_iSGvYZZ8I7C&R7HOA^Fc)RU@iTH4fdk*fOg?7jlhsJ( zTwcpjip+B+_9!S4CRFvF;ZQtBwPx9w^%t*fx)flgr!J@QK@5AZY&9su9nT{i8tIMI zuU-6b$*{^UTmqxV5jk={m~!Fur4ii*o3d;(s6r-yj-P||5;9aL7h}FO`na$+%h*NC z;J>K+d4@ynn9SbfF_gCq%9{o2lN^6miT6@0XH9IJjDu?bKQh+9CcxK=`Jx;6#>p;| zPW5&WaU+lZVl&t|aAqGn#zB5u`f1VnE2B$y2fW%xfiCG>H4MWO`UsW=qZ^|@-mFe1 z7Jp@QkgNa9{~+<1ILrm%rsjZn_ba1QboRF<_6H~rQfiBaVU*)?sE156``T#hQtfDF z&Ko8+0kj=AKWbrnw~RHg2@S&~J?=sG2@fxq0+?>WH_%P7}85}|rND0#T0QryH z59TLOkY6RD^r*pMg6$pj+ZZ}z;_zu5H=GwCyoZ&dIQo)j~>mQXF$P%Y9uLe4hkOvIP+SAcB4Bex{XdPRoU zLl#Lgv?J*~!_K-m;>T}{R;`@A_#z`HTiTBdzH2G|rwIj@z%lkd_=117$dSBz_-}WXO2Ejkxta=1@wr9K9{H zwS`&ZyD+OMl6j%YWlQ2*Y8b&2coKRKs92}t84hjJi228NWd0^B;b@^H^MtZcUfXy< z-idkFcx78M&9XMd&5Ix4>=5X-PP{%W-n(KnlbMu>O*6A;@yA#r z({Y(WOyN4?!N_<}UB-)0P+1^UwpWe0if4KhsJ#~!xsh1!b;QO(3@e_DDHgQij;bKf zu*v4lZ1Glc?+-?(t7sZ$*FYz=p=a2H=?`l_-FF+YqK9yy1JzBNSkQRNLYrYOHwDN- zpt4z;{ywb#uQnEgZrCO#hy{*rip&Kv=Uk)%O8DDoA)C)bfI&rf=9Gx=s>U6WZ8m2; zL5u!YC8-aKe$_^^D0knLgY!8xII*k3LR+DUvaD!AU*W;=3xnU_cA^{kOCZ!@!+;5y^OY-{ms22>$WL{oSZ z51DxUs?nUr)C*UQsIevMF>}6%F;h#K!nnoOBRgVc4dgO&=n7kqF6gqn7~=lPBdo>` zc8YPYqsEVDe$5!#Y~x#;dM+Ehle4p+8mwT>?i7z-!|g8VkULheo3m&3;Bs|P;RoQ) z*M-G_YsN4g&fz-ON_sgrC+?4Qaoc-5JuAsu3HeRKbvNAK{iz>I3Hmo3L8VMaM7nnv}qC*fh3 zcNo`P54$*W?1WvOhh08o>9AW*KY^nET$iHo{NoUoCyncc7dn|)!cp`P57{-yiXkh) zlF9v7*44~r97DJD$n-_XYL4T>(;jwrAd7@uOq2S!VOZdKALm)vwyGEQg|G@Ix!`f) zagdcjR^<`-Nyy4@k{S=YV#q3B=k!SL7-S*GI39TZ&#(M{e&zr3D`)@nEB~Kg`TzXN z|L0fkzJmYHul#?0<^S_5|Np_SytMGP5#TkX1AFA5fe&XT&!6<@kU3dX^QLAoJg)GR z&741VN)BtMWiuCKPs*7xgT<=wpqaC056GQ1ZR-5ekNz1>F z;J+B8B0B45>Hp}=tehGDML%(9XILcuzYLO+CJvoA)H#-YW$wQqJ2ywfG&Xl@l9ZI1 z3>o{z++VzBHFpobCxr~tQwAhUW9DP&pEGl+Q*`w+cMPC>rl%y`*FPM2pE+gXT#@c? zZtWlEq^vz{?ms_ka_%%`>+QA`KYN>_{FKQgln!;KECR_QnPSGvJWrjYvqAKnb zF%>-QU(S|hJ}Lh#nWm5muh*+piHKjuw=JyRa^~8pon~Jb- zbCBY@0w#rBFwD;_b8YbVIGOlAq4^LWoS}+^I!-O z3KI!_W(QSJxj>RZ;_vom@+=DIP=Cg>4(5X{dYF)DW9$rw_)6ft*y8lYj&dgO7;Sfw z9JnnQ&&aVyQbGu#U9cKpXKWAV05_bS!!pCSvgD(dD z$AOIu@U#QJ_fi4n|#IK>wKf&JLTy&MgCKt-2*Q=$O*p&d4Fq2yaPT2yo;E5 zqwv@c0m9`VQq;MI!Bvc0#P-48>kfFrBcLE8>gfaK=^sXZW9`P^eK6P%k`LHy@b$i6 zhV&5|bRXJ(6%=6D{h)2&Gl4HpK_=kgSPbll3k`Wp5q=4(`Oc8o1kQlo@RTC#1ag3{ zcMvqBqo5C*wKCu&NZ1FI1KtU&26aX{HM3oCoFZ>7l$bDi9!ds9I?%L0b-+4jL^vyY zIx3O_<3Ep}oslS^<5AQic)}H+1n~8akmw(fxg9A9XD(!HqYH@=vmCS+JYfmw2zbJf zMHms_9l&j%3}lXQSUzJjz!Q!Itp}e8B*(zM;OiX(;d2Yw!RL@cG#}w zLh&WQONw`~Dloq5m7?BD(~#bpWsqmVHIuLcln0*h6U|ovUwsinlxhpOWh3?>(GN<1 zDX*ZE$Y?rnE{MG92sdrR$O2Eec^le)Jp#oD_`jwz0bKqs7*YEH-`lP_OF8fX__C!V z(M;g_H&NAJATH4BEj4s)z!MlZXENX^qfXhIaz!w3f(<;*ObZ8~V){KvlQOF6$ zgIu=}ASMgsjW){$-g6O;xsba|;Pfw4tz-kA_zn*MV4n{>bOk5FsHp@F{S}!&iPM3X zf5Y?)c@6OE-&IXi0Uy7u_kq{sc3>2;5d_s&7kT9K48G7j4}bl zH?mj`_)6g0aF(U^u5+42rpbBsk0vH|0X(727cSM{3Fm|EfG7O7mX`zltZ<~b>_U5h zN%b?ay~qTiIRHK%;B7!N9C<@1p*n|NoEUs!D>x89PBzM}!PQnL3tH9U!dx9rl(BVVi!wQ~o zCg=!w!nvUH;In~;;LLXizG;=f@6zD&??Rvk%*qicF^r0U--G1U3F!75C43Qd8#aVH zKsLlBBo9gl_U@H6GV%>>JO`NoPZ$QO2Jf6_V)uaLiWztj zM5U<${;cKXLislQk+Wf6@0W}#C;XF7KZ1D%a>BGn(H!8@U0~LNDA8izcbcyOcFR-p zbl~%#8dPsF@TrC9y=a;u;M^zRQ3>DGY~VH!Rdp5c^po(gC7)IlaAH0>I2;`_fys+? zfq}6FX#X@AWrF!&m5N*meDPWIUbwFo0|z{Z-U~0(bl@LrF%dz|)|uEd>rKo7H_;+s zjX~V>4QnWm|39N$OPdlpnULzWuSH7tAMS}sq`H{=Q*@L-Pd_Kq>`iRSx`K3 zN{AQrSt@u!a!932csiz%gDU;Rz--tM(ytffgU1I0Sa1AN1I?sP;P4BOBh%@?R-dE& zu~Kq;j^XhZ0%6FVr`IWYqdpHxfShm>C=EQm9>A(WR73dk06X#}`T7*N}rJd>T{(9$zV7DOGg+N22LqLcT#M(UuP2VG!M1RsyGgi<*Gk(@m7z zM~8lg6GKio60{Ax#49Knc-s#s7|02}9C#BXGYxE9t(w~bbk*We0V8%5^EOD{S_2nd zH!%miIP-z~K@^!BM6ZKF;JHX{qVYE{nSl57OC|qQeiOBXGzlAl?tmxs1=)~hCgG2$ zmH%M=CuS5#POHFvzhlJ%BTpAga=knP+K!VEKJzDfICxLrP4ek%^*1^pR4q%=5r1 zP#Ac^#$GBNPZvy2_spd(7@PzpBLZPeBlyUGCtLxV4c^mNlYBNOffhkdNbZ>An(675 znF-l@ply&7-UO9_w>5zWFGybffQ@|dgVofoHZc7_RN{J`v+E9((Hh{h;c$F` zya-5+qBKuPhfx;-n-A5l*}yZP%Q$hpXQ&}P zMu&HSe-jcStOkXFuK|vRS1R=_PmfgcR6X7meu+qjFf<13e;xs63}=b4=%vI1CxIx} z*}x%jaMVYl>A*GJFjBx50~6tuIS#z1BPMxjKGYqaXnz_K5A}fSEci-bc2A5Z*c1K& zq7IAoH>xW^_ga4{$!5sH9cf+$0tzN+NI`UPk`YzU*^hPoTPrwb~%roNbr z7n&d^d>dp&h6t^xc(25TfDKGMh^os8T&(#b;6cro1HaXL%n;801T8{bHWU*M=m>a1 zx63KvdeBD533q`?z?T5a($E3Hlgp^f?N>_Z_9rFe_n-~`!W<5qHHxzt;Io0r_o|vm z2WE`H=s-f5!0s8US37~9gD%0o3b^h8I5youlL6hXpo9-S2zTx~nE#2{3yOhJIdJ`W zv@1mbmSn;Y3<(kb2Sj_io(`(yxOx**1{=bcCSw?b_w@B7AJDh6F#M1v;W^Mj@KwOw zQ_=p}2$W34Tn?f(X45$93L-uR_zZ}qOi#a1@)w;u167Z>giAoT!B+zBnTZkcH);iV zVV3G!o<5@FKY9vegUu-y80&1jypBMK~roq~vWn=OuLHT0`R7;M2gD1LHTU!Z?BX zn$Lb2g>~UTr7Q=|+@$zy-~r870vm6^S^x=ox}}o4stc3_IpMooF;eJcz{anrbYg&i zgJ{&yXGlha=v?$ElI@yz(W^UMUqy#OWG8R}s0=)Prlb%=5y)Y92Z&0%8`$VI)CTr~ z9KboCa@f=7OnUFY$_ad5U@nO4^MG$^elM{9PL-w;cwr~n{}LjAVRy8GFk+W7iUdy9 zd=_vah!Vxu$ynTOWrHu2v1Aa*3CC+b6L@J4IyL?Ye*}?@?R7K}i0(TQUPn)!jex8c zVE;F;a6kkn@ZX?h@Rh)je`65=-T|BkqJ)+LzXs88ssgTh6N?MjYzH0&kxdma>@8(O zn4x)mmW@3H%61_FzRkv71Lc9IufbdZF|-+dVy4O4icbeV46pRNE z28_`>;eDE?_qz%-Uj!`CJYl8g32PJ|BN=j#zJq>1*d9cgpzqqe0HSJK5Bv`Z%~Tp2 zVt&>n{F2Rm%*AH*goxd1G%d|cHg7k%vUld~%-^|UXVK2$oh3WVc9!qFu(N7s$S%jO z$X%(s(syO-%G@<$SN5)=UF&yU*j2TwdKbfPIJGjK*la7>wtidjw(Z+Ww$0d{y}f4l z?cHoo$R5X@$UQN8681Rvr0z-Ild&gr&x}3Ud-C?=?^&^@XwUjR#d{FB#9+R73dKV3 w7=e}J>oI_`?d97qY_Hm$x+8PPj2$&Qym#7mhU|3gjHK7$ouzLMGLJC*e^JhuEC2ui delta 64476 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 diff --git a/src/Blades.cpp b/src/Blades.cpp index 0386bdf..a8b934d 100644 --- a/src/Blades.cpp +++ b/src/Blades.cpp @@ -47,7 +47,10 @@ Blades::Blades(Device* device, VkCommandPool commandPool, float planeDim) : Mode BufferUtils::CreateBufferFromData(device, commandPool, blades.data(), NUM_BLADES * sizeof(Blade), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, bladesBuffer, bladesBufferMemory); - BufferUtils::CreateBuffer(device, NUM_BLADES * sizeof(Blade), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, culledBladesBuffer, culledBladesBufferMemory); + BufferUtils::CreateBuffer(device, NUM_BLADES * sizeof(Blade), + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, + culledBladesBuffer, culledBladesBufferMemory); BufferUtils::CreateBufferFromData(device, commandPool, &indirectDraw, sizeof(BladeDrawIndirect), VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, numBladesBuffer, numBladesBufferMemory); } diff --git a/src/Renderer.cpp b/src/Renderer.cpp index a472dc6..59c1841 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -1008,8 +1008,32 @@ void Renderer::RecordComputeCommandBuffer() { // Bind descriptor set for time uniforms vkCmdBindDescriptorSets(computeCommandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, computePipelineLayout, 1, 1, &timeDescriptorSet, 0, nullptr); - // For each group of blades bind its descriptor set and dispatch + // For each group of blades bind its descriptor set, clear indirect count, and dispatch for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { + // Clear vertexCount (first 4 bytes) of the indirect args buffer to 0 + VkBuffer numBuf = scene->GetBlades()[j]->GetNumBladesBuffer(); + vkCmdFillBuffer(computeCommandBuffer, numBuf, 0, sizeof(uint32_t), 0); + + // Ensure transfer write is visible to compute shader + VkBufferMemoryBarrier clearBarrier = {}; + clearBarrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; + clearBarrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + clearBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT; + uint32_t fam = device->GetQueueIndex(QueueFlags::Compute); + clearBarrier.srcQueueFamilyIndex = fam; + clearBarrier.dstQueueFamilyIndex = fam; + clearBarrier.buffer = numBuf; + clearBarrier.offset = 0; + clearBarrier.size = sizeof(uint32_t); + vkCmdPipelineBarrier( + computeCommandBuffer, + VK_PIPELINE_STAGE_TRANSFER_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + 0, + 0, nullptr, + 1, &clearBarrier, + 0, nullptr); + vkCmdBindDescriptorSets(computeCommandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, computePipelineLayout, 2, 1, &computeDescriptorSets[j], 0, nullptr); uint32_t groups = (NUM_BLADES + WORKGROUP_SIZE - 1) / WORKGROUP_SIZE; vkCmdDispatch(computeCommandBuffer, groups, 1, 1); @@ -1093,7 +1117,7 @@ void Renderer::RecordCommandBuffers() { b1.srcQueueFamilyIndex = srcFamily; b1.dstQueueFamilyIndex = dstFamily; } - b1.buffer = scene->GetBlades()[j]->GetBladesBuffer(); + b1.buffer = scene->GetBlades()[j]->GetCulledBladesBuffer(); b1.offset = 0; b1.size = VK_WHOLE_SIZE; } @@ -1135,13 +1159,14 @@ void Renderer::RecordCommandBuffers() { vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 0, 1, &cameraDescriptorSet, 0, nullptr); for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { - VkBuffer vertexBuffers[] = { scene->GetBlades()[j]->GetBladesBuffer() }; + VkBuffer vertexBuffers[] = { scene->GetBlades()[j]->GetCulledBladesBuffer() }; VkDeviceSize offsets[] = { 0 }; vkCmdBindVertexBuffers(commandBuffers[i], 0, 1, vertexBuffers, offsets); // Bind grass descriptor set (set 1: model + sampler) vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 1, 1, &grassDescriptorSets[j], 0, nullptr); - vkCmdDraw(commandBuffers[i], NUM_BLADES, 1, 0, 0); + // Indirect draw: count provided by compute shader (vertexCount) + vkCmdDrawIndirect(commandBuffers[i], scene->GetBlades()[j]->GetNumBladesBuffer(), 0, 1, sizeof(BladeDrawIndirect)); } // End render pass diff --git a/src/Scene.cpp b/src/Scene.cpp index 86894f2..544355e 100644 --- a/src/Scene.cpp +++ b/src/Scene.cpp @@ -43,3 +43,27 @@ Scene::~Scene() { vkDestroyBuffer(device->GetVkDevice(), timeBuffer, nullptr); vkFreeMemory(device->GetVkDevice(), timeBufferMemory, nullptr); } + +void Scene::SetOrientationCull(bool enabled) { + time.enableOrientationCull = enabled ? 1 : 0; +} + +void Scene::SetFrustumCull(bool enabled) { + time.enableFrustumCull = enabled ? 1 : 0; +} + +void Scene::SetDistanceCull(bool enabled) { + time.enableDistanceCull = enabled ? 1 : 0; +} + +void Scene::ToggleOrientationCull() { + time.enableOrientationCull = time.enableOrientationCull ? 0 : 1; +} + +void Scene::ToggleFrustumCull() { + time.enableFrustumCull = time.enableFrustumCull ? 0 : 1; +} + +void Scene::ToggleDistanceCull() { + time.enableDistanceCull = time.enableDistanceCull ? 0 : 1; +} diff --git a/src/Scene.h b/src/Scene.h index 7699d78..6bfb3eb 100644 --- a/src/Scene.h +++ b/src/Scene.h @@ -11,6 +11,14 @@ using namespace std::chrono; struct Time { float deltaTime = 0.0f; float totalTime = 0.0f; + int enableOrientationCull = 1; + int enableFrustumCull = 1; + int enableDistanceCull = 0; + float orientationThreshold = 0.9f; + float frustumTolerance = 0.1f; + float maxDistance = 50.0f; + int bucketCount = 8; + int bladeCount = NUM_BLADES; }; class Scene { @@ -42,4 +50,15 @@ high_resolution_clock::time_point startTime = high_resolution_clock::now(); VkBuffer GetTimeBuffer() const; void UpdateTime(); + + // Culling toggles + void SetOrientationCull(bool enabled); + void SetFrustumCull(bool enabled); + void SetDistanceCull(bool enabled); + void ToggleOrientationCull(); + void ToggleFrustumCull(); + void ToggleDistanceCull(); + bool IsOrientationCull() const { return time.enableOrientationCull != 0; } + bool IsFrustumCull() const { return time.enableFrustumCull != 0; } + bool IsDistanceCull() const { return time.enableDistanceCull != 0; } }; diff --git a/src/main.cpp b/src/main.cpp index a370a5c..2a32667 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,5 @@ #include +#include #include "Instance.h" #include "Window.h" #include "Renderer.h" @@ -10,6 +11,7 @@ Device* device; SwapChain* swapChain; Renderer* renderer; Camera* camera; +Scene* scene; namespace { void resizeCallback(GLFWwindow* window, int width, int height) { @@ -63,6 +65,27 @@ namespace { previousY = yPosition; } } + + void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) { + if (action != GLFW_PRESS) return; + if (!scene) return; + switch (key) { + case GLFW_KEY_O: + scene->ToggleOrientationCull(); + std::cout << "Orientation cull: " << (scene->IsOrientationCull() ? "ON" : "OFF") << std::endl; + break; + case GLFW_KEY_F: + scene->ToggleFrustumCull(); + std::cout << "Frustum cull: " << (scene->IsFrustumCull() ? "ON" : "OFF") << std::endl; + break; + case GLFW_KEY_D: + scene->ToggleDistanceCull(); + std::cout << "Distance cull: " << (scene->IsDistanceCull() ? "ON" : "OFF") << std::endl; + break; + default: + break; + } + } } int main() { @@ -150,7 +173,7 @@ int main() { vkDestroyCommandPool(device->GetVkDevice(), transferCommandPool, nullptr); - Scene* scene = new Scene(device); + scene = new Scene(device); scene->AddModel(plane); scene->AddBlades(blades); @@ -159,6 +182,7 @@ int main() { glfwSetWindowSizeCallback(GetGLFWWindow(), resizeCallback); glfwSetMouseButtonCallback(GetGLFWWindow(), mouseDownCallback); glfwSetCursorPosCallback(GetGLFWWindow(), mouseMoveCallback); + glfwSetKeyCallback(GetGLFWWindow(), keyCallback); while (!ShouldQuit()) { glfwPollEvents(); diff --git a/src/shaders/compute.comp b/src/shaders/compute.comp index 48f676c..1cfaaff 100644 --- a/src/shaders/compute.comp +++ b/src/shaders/compute.comp @@ -12,6 +12,16 @@ layout(set = 0, binding = 0) uniform CameraBufferObject { layout(set = 1, binding = 0) uniform Time { float deltaTime; float totalTime; + // Culling toggles + int enableOrientationCull; + int enableFrustumCull; + int enableDistanceCull; + // Parameters + float orientationThreshold; + float frustumTolerance; + float maxDistance; + int bucketCount; + int bladeCount; }; struct Blade { @@ -52,16 +62,12 @@ bool inBounds(float value, float bounds) { } void main() { - // Reset the number of blades to 0 - if (gl_GlobalInvocationID.x == 0) { - // For culling stage (later), reset if needed - // numBlades.vertexCount = 0; - } - barrier(); // Wait till all threads reach this point + // Note: vertexCount is reset on the command buffer via vkCmdFillBuffer. + // No cross-workgroup barrier exists here, so do NOT reset in-shader. uint i = gl_GlobalInvocationID.x; // Guard against over-dispatch - if (i >= numBlades.vertexCount) return; + if (i >= uint(bladeCount)) return; Blade b = blades[i]; @@ -123,8 +129,68 @@ void main() { blades[i] = b; - // TODO: Cull blades that are too far away or not in the camera frustum and write them - // to the culled blades buffer - // Note: to do this, you will need to use an atomic operation to read and update numBlades.vertexCount - // You want to write the visible blades to the buffer without write conflicts between threads + // -------------------- Culling tests -------------------- + bool cull = false; + + // Compute camera position from inverse view + mat4 viewInv = inverse(camera.view); + vec3 camPos = vec3(viewInv * vec4(0.0, 0.0, 0.0, 1.0)); + + // Orientation culling (edge-on), projecting camera dir onto grass plane + if (enableOrientationCull != 0) { + vec3 dirCamera = (V0 - camPos) - up * dot(V0 - camPos, up); // camera→blade on grass plane + vec3 dirBlade = normalize(cross(up, forward)); // blade width direction + float d = abs(dot(normalize(dirCamera), dirBlade)); + if (d > orientationThreshold) { + cull = true; + } + } + + // View-frustum culling using v0, m, and v1 (per reference logic) + if (!cull && enableFrustumCull != 0) { + vec3 m = (0.25 * V0) + (0.5 * V1) + (0.25 * newV2); + + bool vis0; bool visM; bool vis1; + { + vec4 clip0 = camera.proj * camera.view * vec4(V0, 1.0); + vec4 clipM = camera.proj * camera.view * vec4(m, 1.0); + vec4 clip1 = camera.proj * camera.view * vec4(V1, 1.0); + float k0 = 1.0 + frustumTolerance; + // XY and Z inside checks (Vulkan depth [0,w]) with tolerance + vis0 = (clip0.x >= -k0 * clip0.w) && (clip0.x <= k0 * clip0.w) && (clip0.y >= -k0 * clip0.w) && (clip0.y <= k0 * clip0.w) && (clip0.z >= 0.0 - frustumTolerance * clip0.w) && (clip0.z <= k0 * clip0.w); + visM = (clipM.x >= -k0 * clipM.w) && (clipM.x <= k0 * clipM.w) && (clipM.y >= -k0 * clipM.w) && (clipM.y <= k0 * clipM.w) && (clipM.z >= 0.0 - frustumTolerance * clipM.w) && (clipM.z <= k0 * clipM.w); + vis1 = (clip1.x >= -k0 * clip1.w) && (clip1.x <= k0 * clip1.w) && (clip1.y >= -k0 * clip1.w) && (clip1.y <= k0 * clip1.w) && (clip1.z >= 0.0 - frustumTolerance * clip1.w) && (clip1.z <= k0 * clip1.w); + } + if (!(vis0 || visM || vis1)) { + cull = true; + } + } + + // Distance culling with buckets and stochastic keep per bucket + if (!cull && enableDistanceCull != 0) { + float d = distance(camPos, V0); + if (d >= maxDistance) { + cull = true; + } else { + int buckets = max(1, bucketCount); + float step = maxDistance / float(buckets); + int idxBucket = int(floor(d / step)); + idxBucket = clamp(idxBucket, 0, buckets - 1); + float keepProb = 1.0; + if (buckets > 1) { + keepProb = 1.0 - (float(idxBucket) / float(buckets - 1)); + } + // Deterministic pseudo-random per-blade + uint seed = i * 1664525u + 1013904223u; + float r = fract(sin(float(seed)) * 43758.5453); + if (r > keepProb) { + cull = true; + } + } + } + + if (!cull) { + uint dst = atomicAdd(numBlades.vertexCount, 1); + culled[dst] = b; + } } From d206b45d2cdb9bb9a529be3fe57ab5a34924ff71 Mon Sep 17 00:00:00 2001 From: Crystal Jin Date: Fri, 24 Oct 2025 23:43:33 -0400 Subject: [PATCH 4/7] add fps + ms display --- bin/Release/vulkan_grass_rendering.exe | Bin 284160 -> 288768 bytes src/main.cpp | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/bin/Release/vulkan_grass_rendering.exe b/bin/Release/vulkan_grass_rendering.exe index 478fd28c4e226bc5ccfc3bc70990381a0a8b6674..082d0214f9a5d6865d526b4818c9c4c6a71fedbe 100644 GIT binary patch delta 71045 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∨g6t?G>t{M+l=>>C3H^uCVy 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 diff --git a/src/main.cpp b/src/main.cpp index 2a32667..a26c771 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "Instance.h" #include "Window.h" #include "Renderer.h" @@ -188,6 +189,24 @@ int main() { glfwPollEvents(); scene->UpdateTime(); renderer->Frame(); + + // FPS in window title + static double acc = 0.0; + static int frames = 0; + static double last = glfwGetTime(); + double now = glfwGetTime(); + double dt = now - last; + last = now; + acc += dt; + frames++; + if (acc >= 1.0) { + double fps = frames / acc; + double ms = 1000.0 / (fps > 0.0 ? fps : 1.0); + std::string title = std::string("Vulkan Grass Rendering - ") + std::to_string((int)fps) + " FPS (" + std::to_string(ms).substr(0, 5) + " ms)"; + glfwSetWindowTitle(GetGLFWWindow(), title.c_str()); + acc = 0.0; + frames = 0; + } } vkDeviceWaitIdle(device->GetVkDevice()); From 3785bc2d5e671f184703746fc0f4a5fa40bdf562 Mon Sep 17 00:00:00 2001 From: Crystal Jin <50037765+kstjxy@users.noreply.github.com> Date: Sun, 26 Oct 2025 20:40:32 -0400 Subject: [PATCH 5/7] Update README.md --- README.md | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 135 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 20ee451..114a40e 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,140 @@ Vulkan Grass Rendering **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 5** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Author: Crystal Jin + * [LinkedIn](https://www.linkedin.com/in/xiaoyue-jin), [personal website](https://xiaoyuejin.com) -### (TODO: Your README) +* Tested on: Windows 11, i7-14700K @ 3.40GHz, 64GB RAM, NVIDIA GeForce RTX 4080 SUPER -*DO NOT* leave the README to the last minute! It is a crucial part of the -project, and we will not be able to grade you without a good README. + +## Project Overview + +Real-time grass rendering using quadratic Bezier blade guides and GPU tessellation. A compute pass simulates physical forces and performs blade culling; a graphics pipeline tessellates and shades visible blades. Rendering uses indirect draw fed from compute-written counts. + +![pro5_display-ezgif com-video-to-gif-converter (2)](https://github.com/user-attachments/assets/920849aa-88ab-4b9d-8321-bc1a6970ee77) + + +| | | +|---|---| +| ![f29ac77998f78670f849e71e5c3c5457](https://github.com/user-attachments/assets/38565925-81d5-434e-a48d-76b6e282dd12) | ![b691e70a80f72cbffdd8cf0c0de9bb75](https://github.com/user-attachments/assets/80a5e5ef-0507-4283-a937-7ff0ebf45387) | + + + +## Grass Rendering using Bézier Curves + +image + +Each blade is a **quadratic Bézier ribbon**: a center spine (`v0 → v1 → v2`) with width extruded perpendicular to the spine. + +- **One patch per blade** + - **VS** passes attributes + - **TCS** sets tessellation levels + - **TES** evaluates Bézier and extrudes width, then projects to clip space +- **Local frame per blade** + - `forward` from orientation around `up` + - `side = up × forward` + - width **tapers** toward the tip +- **Curve via de Casteljau** + - `P(u) = mix(mix(v0, v1, u), mix(v1, v2, u), u)` + - `position = P + (v − 0.5) * width(u) * side` +- **Dynamics from compute**: forces update `v2` each frame (gravity, recovery, wind), so tessellation renders the *bent* shape. +- **UVs** use `(v, u)` consistently for simple texturing. + + +## Force Simulation + +### Binding Resources +- **Camera UBO** set **0** (view/proj) and **Time UBO** set **1** ( `deltaTime`, `totalTime`, culling toggles/params ) feed the compute pass. +- **SSBOs** set **2** provide: input blades, output *culled* blades, and indirect draw args. + +**References:** +`src/shaders/compute.comp:7`, `src/shaders/compute.comp:12`, `src/shaders/compute.comp:43` + +### Gravity +Applies constant **downward acceleration** plus a **forward bias** so blades bend slightly in their facing direction. +**References:** `src/shaders/compute.comp:89`, `src/shaders/compute.comp:93` + +### Recovery +Spring-like term pulls the deformed tip back toward the upright target +`iV2 = v0 + up * height`, scaled by per-blade **stiffness**. +**References:** `src/shaders/compute.comp:96`, `src/shaders/compute.comp:98` + +### Wind +Position- and time-varying wind direction; influence scales with **squared alignment** to blade facing for stronger response when aligned. +**References:** `src/shaders/compute.comp:100`, `src/shaders/compute.comp:110` + + +## Culling Tests + +### Orientation Culling + +![pro5_o-ezgif com-video-to-gif-converter](https://github.com/user-attachments/assets/afea92bb-f98a-4aff-a829-eaac69c5a3a1) + + +- **Goal:** Remove blades viewed **edge-on** that would render thinner than a pixel and cause aliasing. +- **Method:** Project `camera → blade` direction onto the grass plane and compare to the blade’s **width direction**; cull if `abs(dot)` exceeds a threshold. +- **Controls:** + - `Time.enableOrientationCull` + - `Time.orientationThreshold` (default ~ `0.9`) + - Toggle with **`O`** + +### View-Frustum Culling + +![pro5_f-ezgif com-video-to-gif-converter](https://github.com/user-attachments/assets/0c48e2bf-1245-4528-940e-f1893ff79537) + +- **Goal:** Skip blades entirely **outside** the camera frustum to avoid wasted work. +- **Method:** Test **three points** per blade in clip space — base `v0`, midpoint `m = 0.25*v0 + 0.5*v1 + 0.25*v2`, and guide `v1`. Cull only if **all** are outside, with a **tolerance** for conservative keeping. +- **Controls:** + - `Time.enableFrustumCull` + - `Time.frustumTolerance` (e.g., `0.05–0.2` to soften edges) + - Toggle with **`F`** + +### Distance Culling + +![pro5_d-ezgif com-video-to-gif-converter](https://github.com/user-attachments/assets/7d455a59-4379-4123-ab8c-4406574fe868) + + +- **Goal:** Thin **distant** blades that contribute little visually and may cause shimmering. +- **Method:** Partition `[0, maxDistance]` into `bucketCount` bins; **keep probability decreases with distance** using a deterministic per-blade hash (stable over time). +- **Controls:** + - `Time.enableDistanceCull` + - `Time.maxDistance` + - `Time.bucketCount` (more buckets → smoother falloff) + - Toggle with **`D`** + + +## Performance Analysis + +### Setup & Methodology +To isolate algorithmic effects from camera variance, all trials used a **consistent view direction**: +- Same angle for **naive** and **orientation** tests. +- **Zoom-in** for **view-frustum** culling to maximize outside-FOV rejection. +- **Zoom-out** for **distance** culling, targeting **~⅔ blades rendered**. + +This keeps each culling mode’s advantage **stable across grass densities**. + +### Scaling With Blade Count + +fps_vs_grass_naive + + +- Naive rendering scales roughly **inversely with blade count**; **tessellation and rasterization** dominate as counts grow. +- **Compute** simulation cost is linear in blades but comparatively **small**; the bottleneck shifts to tessellation/fragment with higher counts. +- Expect near-linear **FPS drop per 4×** blade increase until other limits (fill-rate, geometry throughput) kick in. + +### Culling Impact by Test + +fps_vs_grass_all_methods_clean + + +#### Orientation Culling +- Removes blades viewed **edge-on**; benefit depends on view direction relative to blade facing. +- Consistent **1.3–1.8×** speedups; strongest at grazing angles where many blades are edge-on. + +#### View-Frustum Culling +- Discards **out-of-view** blades; benefit grows with scene size and **tighter FOV**. +- Often **1.8–2.3×** at higher counts when the frustum clips large areas. + +#### Distance Culling +- Thins **distant** blades uniformly; reduces tessellation/fragment work while preserving nearby detail. +- **1.8–2.5×** improvements at mid/high counts; controlled by `maxDistance` and `bucketCount`. From 4d88fe678cabd3dd6492dec719a6a024858daf7b Mon Sep 17 00:00:00 2001 From: Crystal Jin Date: Wed, 29 Oct 2025 20:29:24 -0400 Subject: [PATCH 6/7] add lod --- bin/Release/vulkan_grass_rendering.exe | Bin 288768 -> 289280 bytes src/Renderer.cpp | 8 +-- src/Scene.cpp | 8 +++ src/Scene.h | 11 ++++ src/main.cpp | 4 ++ src/shaders/compute.comp | 8 +++ src/shaders/grass.tesc | 70 +++++++++++++++++++++---- tmp_grass_tesc_dump.txt | 31 +++++++++++ 8 files changed, 128 insertions(+), 12 deletions(-) create mode 100644 tmp_grass_tesc_dump.txt diff --git a/bin/Release/vulkan_grass_rendering.exe b/bin/Release/vulkan_grass_rendering.exe index 082d0214f9a5d6865d526b4818c9c4c6a71fedbe..3b31e2425f7dc69f3fe4049cb04e777c4f123800 100644 GIT binary patch delta 45127 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 WYRRhVRV!B2tg5Sh@h1NzzW)coH6rl< delta 44885 zcmZ_134D#m_dkATl1nVtO~@rkh)4(#LWD$wL=v7zLhP|qYH6vcM5!eqg4@R}ZM3I* zX;EE#s-I|Msfwjyr)X(QQA-~UtyXJmx&QZ>=Z5%vfB(EZ&zw2u%$b=pGiS~$_fc@t zui%*9MjsLKAobr#7SG=eONgbGtkcT!m9$un2!%bry|}e_(RI)h97S@9C2nQJ$usGDdt>99(UY*jTc*T96Q{ig#Df7Vnk>`hCMWF``2(0QRLumuWhkM`ewM6~&Qt8g;H@xZkV_gTV|JfAysOxhm;2laBmaJikt( zK*ey>xIRW$R@~Yxa&24hfU4<7jk>QFZ>ketZ@sjb_y7-n&uhifzDB%O{DFN?-49r2 zh1bHNw{Leyi&2k?>-hE-R6Nvoq*zy63V2th`5WHWj`l>)yjk*~@%O_2b!kblhu^V> z@4cB~_nR9UYLvfTToKe)yj~LD#J`#-F3t))DNYuLg=LF{#q-1ZiW9|0!W!ajgf$T- zN~*UYDe_C+4X;sM>@WVXT?_GC@v(Ld<+wG)743c$i;K&ndgEQUeG1+~+V2wO#f>^N z!8@+QAhEZ2d51vTURA{ET*P&G#hW{{6N`$C4k38gik{yH)S|MyAWcsR4Q7q6@MwHn zZt?rktwdqT;pi4JY`2oJF+(rc^b?8H?bh^xq1n)e(SLVwK&Njox_<2x zg14>n2(h#Hsm=_$I)4JVOKc0g$HumBVm96rvp_LUU#&rqbVe%Zj^{5;e07i+zyRy)RT z!``BQ@fYLgh~$zEPde&|loD;mr5d73N#s1MuV`Hy?Me}?OJ=#=^%h~p0WU}5-Sg$n zBCKTo%L%nb!{RUB86yHpg5G_-m%%G+*VuDy$x;RGsDnw4{^v`+&(nN5*Xa1M{ zpQ*GU4b>P`x-Csi5#m1-o-TTc5tNfIx-@uNSPmUJr0HosTG9U8np=a>FRofg(9U$x zR1BvJ>1d1L6p$hMBX~MPv_SB3h8QM>(e(^58bM|zDm09q$`q*xHfD?7KWk14MYC_`ymAJI=_ldZ2vM=-RnI1Yui$r4km4d%8wO{?QXJ^F8!_*@Jwozze4 z6=EH=8z7not+QD4)LH9gZa{`BvkapLHZz(E7nliAkjher<;RBj2KI; z1|#|V^yy&Hzb34RR#awRwAzdMofiIbauzikB3h%pGKPre;yub4B0i|M+G0tK-k;%0 z{Z!MxOVjHZKd+|N*$_R7-pxkKJfxR+=!vW8c(!;7^n{_Jkyu69L&an2!R! z2t{yvxX2gjrO%BJ-}#6n>hq+SCVQCe^X-!&0I1)dM8gzQ;snuGB+`lrqFHbvI+3em z07g)neoJ%C`!vIuw*!NTt>HeSG>g8OfC3lOwFzPa(!4QIbP?U@+lgW)bYhqMjB*MOS*^X_Pvieo#Sa>nXw}L>G#kin@29kyBwF z(x_;vcvi&G9Y)4c&@+rIO??K#F~G?)d>vza*#n+&l;<=c+sJg%-Dx7agNNF%DmBWG zKx_JaPUqfHCEXa~x1}^H2ZnGd<>eqRC%ut_QSGF%9Q3+Q^dLthBj_<5`tC$4rwg}O zLMxxe2uq=Z&x#Wwn%=`JSYGPJxwdJY#j3`PFhpEAlCE4opEfjhiEei21Z_j%d;$S$TLzjBVA;bSK)FVdGAgN=H44d*Sdl+>zf3 zO%yckebJCY=c3=nQ_@@!oE#6ks<|AwV_0pOtBm0*(NhrD;WlyndKdW9KonOpbTJtQ zR5BduLTl!tXkDlr@(>titkygc(hG@UwIBPtIw#gr6?wJd@wnz35$ZDpu6VGff6w;b z_+l>Q&J)e@=Wy)?L}j>iG3%3EndG(^ zkFAW?Qb`UP3tF1>Zd6Hdn~dR=@!#jrhWVJf!s+IGk&PfDUj=J9Xh{$9#Xu|>DRCPH z{lpI%eP^SY%dUTfit@x6IZEP!{}K)T7<8*^PU%X%1>gb?gI3=+4R%` z(N3O-qc<18|M?(}$`^>{a$y`@<8Wjg`7IRR$QNSi`gJ79BKO1bf7JM+8Qa`UjeGjM5V}w#x{CJHWHIt@Pu&-bLG_J}tif#5DnQ%$4{FsX zz}VA~K3XiA)Zg^~psnagKP?vFazaP)St2@$U`kj5FC&UZE)faMpH+qGY!2vfG$@-A zN3beHFD}IDVA{S!#KIumS|U>9v;C>-QZYK9EsrqoZfVY5KB>{yll1$jkgxGiKPp)& zA{=%4Ly$A|TzM*%lPnXonsjrii1*Jitw=o>9XFg+5T^8_9!{9!CN$fLc|DTec8VEc zL7YK}50Y!HK|2)VmMpj=v%C>+pyD59QOpYho*`{`0WL)w^3z2UgcZr~tyzR+jSAG1PRqnA9W}bhJs456=V6)L8(t z6j-zr1bT0|2*)@*xEy_~I#nzevHgzp2B+?$IbBP^Xv!{H$x_OTHX>kwRQpW&1Z-N^E8VXceMC^`=rG(}HhJN!o z0jD*`Q_)6Kk-jX@RkYER8-O6gxi*+%dSMw$a2AEDSaK}DD3hLupu9-K8-oM0YoRI+ zR2I%1I5@-Q;-t~X&FKu4_c5BKPE=-QEHsj)o3_sfs4AxL?u3V?koC?=pNUr0bXPFD zCon{Af0|h=TJ*N3b6dC!6u^j|r{?#8xjes{r~}PSAE2!FBQ}4NEwT#R`(UHri$$c& zX-Q31!X;lvomYy1!b;0lis|y>y5wF7*U4Fzn!O@|L!JzQIOoWtnXV5CP`(N*S@Vu+ z`n>Wa{qHorZ-CL7#=Rm!Y}J+5W9hBeHjH?B8K{=0!?->^KwUN3oPo-mscw~IM-_tC z8T#=RtbN+h*jGh&d21ZK_p0b%%kIdv(NC~Gyy?QLA}svYtOss(a=z=y70f(md^=ky z;kO*+>(JY+WXbo>JLqD(SuLL8i72dPY?5w%5vUd4U-#0{y{2I|*>TPz@RKAJ+ zg`#}UMcJ$J_Y4{~HJ)OQ0caL84XL<3KyWdiF%uUt1B&?^6s3weAAniRS%9h*Q*$+Q zacX0H1Q+uTia7~URm|>YF|*8KCU@Xs{$0l`=C`OW7n5_^tMd006Kzph%mRRBF$<9j z#bg>6bG?~ZSv3@Mf2yaL#{ihcJOJo_i^-{tcUp5XZ=je<5v{7t9J847+H*16nZ>l) ztK_s-ftm`vkh{tR8Ajz!FXVm7WUX2`>02L3;a$*GOgt+<16 zG1ntnwU{f+VwS?D95N;&L(VC!N=|!=SOOOld1HQz#;}?D|C%1htLbqUmTeEG$G>2Q z1IklxnA4*-%gJ!g!~B!#3t_3DY^KXogX_X9!g6=SC;&YVCN4FR=>tKZRi2t>k8PU%Gq_5g3ZZwqk=Pe8ZA>`Dn?z=F%#)~;34`+p!7qvl< z2!!U`zR|>NMlh8zm}K$+BP|l{^I*%14gpeCE-yL;5dT0v{g8YHP_UW&JU~*$xPS0t1|F}?A)&5U0#%dw*{^N?t|BGZspfFhXCW zZU}mLQAa?ggjf#*v0Xi2CHo@8S-5k13ZU|$K)mh1IJa}Fs*&Hr9QodeBX56ZFgxB! zNY6(HLC{Dg!D$Rc@SF@LK-U1_AGbbZP{tdGqQrL)z!OX4!HTwh=#ou&+$Hm_f${wR z=aONA`>1g;AO6b!_+&+!kfm~|j;T^?#9O&%%GcsffNG#kxICv3z)$0t^3z^nX63D9 z4mUlu11M_rehr>@jzgu%2%Y83EGSQ1#5J?$D<>|6naUt@w}F6o zXhIJwOg&@+gV=c`v1p8nr5=NTNhX2&8e+3d!U})|CZWJgvDAzOd+|1lQ#tMs$1Q=_ zYl>*PeK`uH+O09;NKda88S-j2ZCNcs?4KQXyH}*@f8k^otLldIE0DHT4LKeAba#wB)bKqK++v18 zu}^o`C_Sotx?fb9VO0n((&+cZGPyH=HxW9^g+r*t`=V2=^DVj5SY|Kxrit&1X7y9B zv1Ck}s>;1|yz=784MFd`kDc)|^v(Ms$kwehdRI#52p*Ol=%4pd@DwL)4qibu#UB`)m$}?|? zHdw(;f;Lzw>E2oq6y)g4g3$+zAD>cX`)e$hjS*A)sN*`3Ew>J!7uSgn;fn{bhKjlG zDxV%bVRe6n@~MKFHGqtDqN99u05$nQywc+Jr4Xy{!`}UEY~gPOr^VRP&m4R=RsVqL z52f!v5H01k4kXu$sKy66z|zBwEsO=b=Bm9_nIs4 zEb@gPr#ASH8e#PEha$1YPuQv8{p05JOmUP1Rh6s`PT_h3K6?kJisW(#%vNc5G? zC@T6$#K@n0>C2Bq8*I&A{YbQ^YX_IH=3j1sed-M532OE+`ozM2DfVM%b4YC(`!N>i zfwbUb(W}nNMGxF5`VBs3sADXl?>-jIY-=$Wn5&ix#$@vTL=1>bt%ADy1k~e94%W(( z!?_j+qu78X@um)Tq#DwqPsCjLX9md)BC6AxOkPXdm8Bizi(zxY*k+IW%%F-5BCh^_Gdzj%%|t523F`76(O!P-MN|JHn)Q1NM%oCw3r0S9ItL@8xn{N0 z3V%7TIeXoysFj92#A;0DH3ED-wGpTLY7sx68QGrwhz^f!IjOn)-|g)R>`dqWgT1#4 z=~UxW(XnYa7O3B4#!v2`BcrD7-4E;Ak4AioP07@Ba(ybIx-?9;SW@(xs-7omaY7B7 zem>gHyIwdov@iOB)vo`e=p~AdJ`EjB98J+1(a3vx(}<0tOT)R?eo+d7N;_5IyGNgH z6oK_dgPg=$Umy#Rlk^8P_EX_#)C$dsHdF1AtYnz*O^s}yiQ#hJEqdxRkrLTkQzm4> z)y;R1!m$mzT`Sy3ZWz0* z<_7)jN(Nt(p;aZrdtl&Ucq~#$c+L2Il#<|MGQ4IiU(FM6_$=@L`lW z5qv)!`Ra9&w(#_hu9m`^ALx7N8AdwYC=s~AL5((vEV(b0rfd>jn&`o~!*HgO;e^R>t-nXYll1)OqDg#{R4!5Rd9wy;imqj%%BrBeO%!_&mB#h6cV zZs(Q40O|J%Zg6`rcLTp6G;)iG&z~@1Lih5dsKbX2C6p(1gxntGNwH{B zOL ztu_q#kYU-72ktc2s6>W0&g5>gkI#X6hdZZ)1}AOdBubGDj1RlB{=AaxzC8o5MS-wS zxZO|l{gW}Vf7<;LgVXqym9mIaU~UTcL?w+HJ&HtE=|A+*xl#=y-jk0$z}HAuQfnD4 zO`OVWfR9n%gZ8b8_BHORB~bbptgvwxApyHKIj`o5(2ytjTqWT;t7Q&UF$b!cgV`)y zt7OY&witE%a{HQM)4&4l&4KwI0q-8IK6_d**ebWQj zB1d6Tnx#eTvhUr0fftJykI7iok8*^CVS6Qf*G+qNa^Ow7?>@y~_dQ_uONZ)x?7qp+ ze4_845X6etf>ozgimqF!Xyfd!oZ%hgXldu|xMI+7`&Gn?%5tC4T-lfqBdH;6!5{o!o)@4_C;&Lo{e64K54Le-65F#07;z`$7FU zG2hs7JFZaYGBKns?u0>{&=&0E1&-UXxEif06G6VCtEud~v~e0vRIE4XaG40{aUEF1 zdh#ihv-;j%b1i#&O-D9I-H!esWjJ>fD4knJyu_vKm7C$rpHz56r08Gs?TaHu3u?bp z1WJ1~>bn!CE9WV1r)be)3yiYnEcK*4xZ+V-UgM*?K)$sa?c6EqHH<<&i^_7VvE+(6 zn)A6yiagy)*LR}Zds!)B7o5nmHX6H2_(vc98)|S_Uu()aKpVSNyQxkC^h=B`PvX@E z$VomxJ=2ud?-HT@IVy$F3b$~vEV-@Rj=$;rE)ml74R2v7m^0Us3$-3J+Q7ggRAM!E z*amNEwp&d0YIIpyF`4E=Yj=zO^6MsacejY~y#m`?h5a^l+k->54m4wr=qW2M(zZP! zN4!LBz7}1pFG5uh8J%d_*P=npD0SkM5gKa*W+-zWlWewStg+$G#}1hj2VfkHL05Ty zDQ){&43(z^)!&P&50c{dV$I;DXZDISwqm_y`p8pdQ3Z&I)WU{ z^ynAz;Bz?&dzg6!8_|CtPfd5Sa(Kj7N8R7{qW0w?(rczg(AaVj+_W*vf-}?n0o(cI z%p3jVqB6~%dd}^rW2IGKYVejD63Uk_k^j`4Tid%Y(5Z49`rW2F`$XIN!OX+UlOfow zE>K+7+KZ|GJ`vVBfoT|Ik*XiqIi_Rl{j}TBoZ{h=LXHyH%E)# znb!z+a+fM`M>F*0yu!)Qcex!~9GM{s68 z?hgHP1ZVl}?o-R7BFxtZ4z}jp#!ZW%(x{L|97Vg%`j`H5RCMn$Z9cMAD>OLrcioO1 zx50)6jZoTK%`yG7g4Z&PPG+{{=-brt7;<~zHf0>c+P$6PR6SoS%%5b*3v@dg|4W6( za0+~hwj2{{acLI^0EuQ9hiBqusy#i>@9QFZ+Lk1vEPyQJVe} zyDPD7$8WU!1m=zU;KvOx7;AW|#wVAM8O}HlXL#M#A~0&t-K6ppB2h-(p&BPedvTBA zPl}ls{XCWk6EW2XRP}Bs{18;LDdLvp&B}xJ*LGE>6O=&f(;+q_N@rYZ(}n% zP^@tvUUi_09n20CYYhLniiuPPGFaWXsbMrV<(XcPW_%LHs;g!AR7GbQuXxaZ3{(D^ z$sJ(4pwQ{TYyrE|kncofVDNEs$1gb;lYKZI<>(BDqtoYaTJ@a>Y&8Y59rC!F>(KNX zTd|_F7?Gw}V{~(-*fH2sjI?2N`8!;AI88N9i6((T@D6x%L>Y6ssLHKuZ&ohKs7=YI zL`2a1p{i`2jh;Kki}`GIVb~0#IG^-WVzlfrpRS$4wS*Arby_qD@;b&%a|2_ykE?5E zO`q?>%^q6b-D>UUcC`78i@vx0W9&^IvJYbR zeUI4h!wWwYeS8Z>k;RCjd1pm~*nnUNcUrIVnKo=>geTAakZk7JfQ38@Ax35dj`q+c zQKa{-)1kAXakaOR%-BfR&x$4T+V?c`CoEU@)2g3DN_8L3%$QFVKjDV&Fsgn|wD4KJ zggsSfdx|+HvfA|e1$h*e&BugXO}UR=m^eECnHFC@A8LDq4ElvWJ13fDA7|4C>snL8 zUWvZX-QNc@$0N21km2&7gFeE2;7Jm!#qZ5+%!wQ$7*&O3(-mrcUWCfUS19YeXqFWL zy8R1S?K;}HG;fVd6|9o%vwv{{N(aodZS@`S=qwe})7(cYwpEpP^Rm)iCL70-ZpUA= z^SlU7*#_+YNZn{MDyd%rhSXdui`!Lr)EmY&=aJOt<8H_5%M^A>oj0))hv*a<%_h zGfhA2c0@5MO~>5~OrmLCz;wDyITyqkY|Ul7LTh287jnQZ4ouupUWi;8SbFI^EK;t$$%MYL$Xbf>997;?8` z?K$O$zzLLQZ#>|3e0YxTU%~ZxN#vea7ol(bX?rDD)`M(jhxb{F0gd9738cjYx)>UbT943~8^0xjR=cp2f<>#zWv zpgIyf&k5M^FG!dQ&|+_u8yaN~|I^-TZfLMQ{BCX<*1*#7!ywySz{(o$rruX^#k!D+ zuA-0pOzW?Tp{>S)sIIy2>2&n16#W)F7hKJfriu>79=;p8DaI+^tcUrGZkl6mQ zs=hX8Jxe*s4zAPs?F70|AsP+zQ^Fk|fsd)r#y)UYU~Hk+TmQp2XWmI?-WeQ%w>10f z0w9euECbx3Pr2RL`gLYra^{_f3dS?hokD%DiGg(md%60c0^lD!34BA1KEDR9{fP2Q z6~2V=M|!<_U3{Fs6KKABfZF2}!S*Lx16)6V9{5aXoJsXHqqa>Z6_bvl4l=1x9_nBf zbtQVJ&zaOL4^=a%V-VF`pL2eEbWE*(6QgTz%fO1&&Zn1u6Me*4y6~GAlYd4{I~cI$ z88dILqrqTG2W^C@H0HvLZ9!!%MicO8&eWwmp#)8Ix~&=GzBF-W58G%gH%Zl)w7M#(%y@yvh;FMG2GZiHq|L@qGu1IB zJ*`O1*(XJh-e(L{$%4KGjc;#bt#Qz}v&-$?T0k}Lh>rPH@lUjU;NH5Cs|cp405m;l zR8@vQija`|Ei+`83^7$1R-9!9kAw)5p>|b<-#a6VC=Wx;jTYK|N7Sk}7^ya*plm^J zd-;!Dch~3<0)(ZL5bu6>oiksX5^lfNp!y zJKW_%8mqoweI7V)&0(&Z;JRAC9n9r8&KtKb*D-G17O)L%fa`8&UK98ES4zC2@uf$6 z?gnU8mm|PV-`y2m^JhR17Qpxk;t}3w!L^WJNQ1&K_U~JPzf$jw{LT-1PeoR$_hR*) zrQT1e_XzcV5v6d46{z>K>b*w2Tby8gnSy^%Z*PUEZ{pSaPxbywy&tG|j^Z@sr{15a_gCs|X1q(md(@j7*&TN08-72bGP|ZQ_0{{B!XH=f zxr+K-zKV=dkzW=3e+%@oO1x6NUsdm_1u`|UPT|+9_ebh&7W6*~-l*PN)%#2JHY>32 zcxjz~#c5Fo^P9PC)U+_6;UN0!zUZ8fqer{1&1(pPR;fqrtuoKSI(c){*Jd-Zzbgj_ zFbr0z9V~9J^fOt8slXA_WsjE8LmWM$bIz)S~pv6Hcw8o_Wft#p79AYlQRh#Nru<=LtMHc$VP_#B&5Hcg9>Vhu9?obj!cXvQ#q%AWvv~I5 zS%HU-V+#{fGijeyCgT{kb~PD>pNDs-Cd0*E8eR?R{q4S6dre=q@N`|UdmV6JzzN!^ zcZ8*af0T5KfxZB2?*ixvpbY~F0FoK#2%t9u5dbDL5CUKY0}TP}V89o^PYhHCa36qq z>o?+Q(bwZ5CuPt(HDrB}L7&%<;Y^x~ z;|6Rnm^TA-n++(pqw`KqYV+mk${BeVdUZzrgE!8-nBt7Qh1tOwc?WN!0>w54XQ%|F z;L&uH)fstGqb@aNP@+n8tW1#?Fd0XCm!QtiIBj+h;9a)28O|`_wG8_LM$5Tu&uK(8 zWm?R&Ronrs8{R`;PuYbHV=L}^^2V`s>}oT_JyA36!7o@vj#@H2|LT1=#>tub$l5bb zQr|W?E5j!}@wYwU22Z%%6JGX&Rtzi7G13#x^Mq?X;n$wjx99VCR;~;ugZGRi2GP=+Se|({(~8k2U$fBWF7F38=2&q<<|54X|GK- zsiO*Gdjrhn)`I@@r%i^~5aAOgK2smLnVQv+QTP}^|2i_dRzD~x51ZmN=|WA)SAgpjzQ35B~IcF6aWmwjP(Q}hFwP=8yL z{9ZEo*OfoigU#d&^t-7=$L9~gdeoLl`1S5Ae7xfMdNQJM4_48Sxm~$C#YW%K;^t_1 zA<@U_zn+X1Ur>908H#UR4EC4(5Ulryqn1wJ`OE3}eu3tY z-4QG`gMAL!&ksM}Ft-QsI~*(~FLtHY^<~$FSTjQEq}RA(9^`vxSg=ET&wWAp_2tT1 zu%N2c2{$xq(m+o3#}7>0j-@5MpRy1z`sEC*^vwpcoABQRQC_DZ?ax<~G`B-+qU!-N z&?kY5p73=~@@pt32IQ{fLG#KgrGKm{aYF%mdTJ%DXedMSdn+pcGS#)JWrNG`Wu`9GXt_7c& z=+}V0LfsolNB((}x)Ev6-8s!>5PvYSWxzrojK$HH^`wc#Y`x%f6MGui119!7u%#x} z0JhA;-T)Q`fhF7l_P-|90_--04NCO^dX0(p1sX$)nFD}*wU}-+lK%NCOllOU`%P*r zs4tkLL%sMP78?82esLDD!YHXKx@JtPS*gplp(jwkW&kU32%+ zo}!|0(&p-%hs*KdOMLO`N3;lE1s{tps_Cv(Cap-(J_YR&ZaQ$97Yd=6+z#ibrB4RQ zzFuNj>F2>RL`v&2`aVQ<9*6FaiYT}tv7s_Tmg)3js7&a(1xYgWyJ^nkW11`GO~jy|O$gGQ zGxkMa2mUl>hIa8-(Kw$zZ^&?5mDGpe&YA69ovMe)CUUt>EyHALjrA(6W4caxVfe>;1j=|Y$csG*zGfjY?+GFJRb@h#+V`HoJnwU9X-M}S%pg$sZ=6>A_m22lgE z9~=Fe9y)bxDSOJgIxT7m_xC#OYbhh`x1GYGFZmZqQRV+S z$va#&lkYC2mf`X}{OJEcxC|DZsUlp)$hVvn(n^-d>P|YA!@AMWP08(mRo;K?h7rd9`=|6}TOXUZWo(WkgME z)92OF%B|xP$=+5v9Ov;PCO2lSDy8`QO^RzP0~@}na2oeH%u%(`1%iiTqPp`2J=0c( zHLIE=@=>Ic?bp|7Q(M_ayg?U`4}#lmWiQc`y0?=}QQ*<-WNd3F%D%%pY4@SR1l+yH z#MY!R;om3*9Oyfxv(SZbV-bGKEZW&l2I9*QKedw~^G}M)jg( z%X|>j%?Y<-BS08v-kjt4jQ2|UN(G<7zO9nyt#Ui!U*oF5wv#!a^o5+^m*yAv*d2L- z8I-znr)^mUCby#jP+L|5w3nWCJ8E#uQh*(X`0r-~(UvG#58oC#93`6}_&rL71h9$6 z^flYl;Ovf!aXZcuwQ4W3?Z_BcB*x>)1CWb}RB7oe=KS_muonxNTA}i7b!dLa$G6E8uk@bQ;Q3FBc9H5kS!V`fl_EA&mYjH|hld2nXkh{(Sqy4Nd|)KT{7_tHZ->dGu?$&64#Hbh`Hn9nT>qu_RY z3|4fD@I6_fDrxM$o<(`J`A$Z9BGnRD!UuJHSTgqklc7fMZAY%Jk^qfwO#^eK+NVAuDL2&Z@OqI7 zyU3^UX}aILNXMubRfitVUm^?E^lfI5nggrFm*=H$hr~)2x8F{?xYTAT8Hr18k7Ll7 zXA}mv&bV>Gam__f#LJj)pfR?$_@P`oE9`EE4G8_8Ep-tuJSx%r_OyT8j@!#80a3CKOkq5;86)}1l_3iqNk-*$SA4L+wSCfXxbb*F?nBNaIMfP8A6< z5m)Qmbi=oL7gKgO*`Wc9a#7i=o*td@c_e<}vsS0o-LUw0fwp#&jcO{HP=3^6`l*`? zj8$>f28!Rl^+vrEz0B?C@xsIMCvCA}9Rll&#dqPJL>~5^IH^N-*)o*3rPRGlyZ(db z%q&N5dTj>Jgm*Lf%aRw|j_FRC*IkZB_CI%*alV`GyX{{rk}I*E$NGExAc{zoALH|H zrxIm0J|+~EBwxo@H4Y@nai~<=9&!=B;8W5=h9oaW<5)k!D2z)jor&ROdlfKd=B2=A zmU=p3O~iP$=(NrPRZlH-TAu?@Q61;E6Cx-eSq9o5i0>8gs`cAxl$4BVFM@_7%L1Rz zuqUu+;iW-zE?K_OxJb=S>Q|U*V#+)heLO`!?{+*@RJt-n77O41n04toSkUI0_5mmjQPGd=qru30g9MUhXXi48p2249^uTBbQ)V&T!Q@ z`AhtH=7>{Kr-R-D8i+<0P!|OZ;^IfA>eK8Zvp@Ds6 zv!*judOjL`WnyLe=*skO%%PQiWe@RyPW6@P_@-I&EHrZ-4a}0AeDg3!P|`%x`k$Ua zZ)C|n+4nIqsv9`RAOt-T`xE;yym4-131**aC0Cp0MAH&%5ehpWSh(j$$MF=B1j!hC z!-8NHP&aHKIQEXC#D20(@@6oo%_DcNN}%FSs~=e1j*E(9l9xb6X)c#URJnirsUU{9gB+wNVBH0B*RVG zA|=Z9Inekv8jRR_xFW<%F55;WD;4F)+?b@F1t$MLKxH_mV)2%_8SzgQM`oF-n=~aR zo4MuL@e`-B>oxaoR>n^i9gz77X6H_HZicEyfXdwQl9FPri- zCaz&%zFCn>$eLFvYo#gceq*JR`KGMfh+&0ml72QxGfdJYMH*#_Jf}#uSt^?zChi2| zJnEWOnM+$m^Rn(}OnnE)Cc>Yd86d-Ke$uiHJpnx`3?D;YH9)?LZiYj@U<6|a;z%uz ziU!IKVmfUeD4)Q$)*26zjUpSuORaa#?PkBe`oCDa!i#P^9a6Bb&9}a$jpatfhrLkG zi}b`G857I8#UUwF$vb$xz+k#FHhf(>!x>qv7H-bDa6ONI7mX404ES;8+F&#t9VA=$ zC_OlK)};G`WIzkVP`z&Urio}}<<@`A3?{hC_MkYL$@sTEsGbPLBSQGw&;W!iC%J3i){MXr2=^nleOFW=)z-3z60BQ*+%Q75L zEkOM&LjctPG|(~>P&+`wEZKm90JXG?0n~u0Vg$bMV*SR7nbVTsLAJHD1N0+sBP~Ld zTYG`=Jxd!v8-Vi?5>N!b%;7DpfNB5=6tz9L;bMdb=ObzX`W=d_fv<~~ThAeFAii2$ zZru(j*b)G!98l|g5g}NW0@;*XtK;1XzrZTD7K509Z<&`{oe+Xc>VVP!^~JY|%dH=R znv7pMm0RBgl!W`r-~*I`Um%oQ3jy`SrNeUTR6xCi252InGXDb2>K{nibv9 ze}wFdi)iCVz#*7Q{}}<7@(-#$5`OX&(nex&c7yhe#65whsl_N+g3qA;Fbalj3f&!r zt^21aW3=oFnsYQ_ztNe|vZ>sXU3!1CoG3yxe1O~S_-Gst%6+_q35GGk&1Hpvxp{3I zEgmaV>Rp4~;#qW2Xc?}tWsFN`^%tETD;w6G%rUFaU&{XD9^tK< z>GLP#c`<=r9Vb5*Pg2Hs?3zuWqVZT(ji*1xWA?sEAy3Lf`6|avp<_^O*s%GSgTCy? zKTNxqR|AH#3~E_Sa|2YirwQ_ z9b91sr4GJ>nPE@e38UK_AWfYh2Z~>4*94g$H)Ih$-4c>AQmMtfxX0e+ejv=V3;igo zX$#^h_|80H$Bch@LihX}stg3>a+Z&yi4$cGu5g^5D2L;RdmSgiof}KzCdm{8>nF*f z;xfs}G811E&zdafwjZJDkKY=opAlPMy2Yb4A8#l|E%A4kTXPWQKWwE3CzTMS!(xSBi4zgOf0+bGodVR>iLw64j9Ae8_sMW=d9XV(e+$R?zsOy z=!w#oo{}@9Ds0CYxhgWA#HLN$Yb0Ni%Fj3cHB}*OUGu%H9#ig z7%<`vZF&ICwiLOR+i^qz=we@wq{&ldT)x3w$TkpxyG$E*OxyXhm(!ZbQO6MGby{N; z%dw(cd7-*3nkoA;#-RZYt#qBgOy*Ae4dbl;ukoD+;=n`eI)mQ3f2I~lH+chhJ|j!dc#N0+zhzd*l8v44>g z+8#aIC!K!Ekxd59!_pfFr#_yhc*5~y z;AuaX+CD1-8lCafa#3gjii%qhF_(aG#k_c(#yl%O6#r1o8FK81A0Jaj$Uoefd$2!s zzCTQk%hn8-D)%4pQ$B0ARQyjOda*h`JmLMOV##e9IzH9{C1DZXUL{) z7vNS2He6S!QY74|UyOsTKL{*RJp^`d8TWs^Y# ztmMN=$$#UETuRCRGQdi%g|aCnH)4R5+=>BKaufp(mD~X_DEX*T@}N|@kSnK&yVNfa zT3*qU=I6=gUEwXS#Pc?ub$C9-vl-7BJUj8I19A*ZYsu+{O4Rs=i1?vLPdb~2^Nh%z z)NH1V^f||>PYAe5gJ;S<;ts8yDc=u2Q!Zu~}Pvp)t23bO7(HG0d~dES_EX2>fzC)8ne64!T4O%eMa0Ny&Hs(lm>~j9+5rds^4Ll4rIZ{(y_PL6ku1X>Q#8(k=3y~-Ds;lx> zO!j2+YgLZR9I3v!HUw0lX>J*b^>$ZoIp!%*TRIg;J4&OBaanH`0%@IP=^urMSr6_ zg$d99PR$GC6#S}mMFCFtf1_gsQbW*ifn1Bjyd4XqBRIukNq8l=dRbn(1<(Ya|5@ju z&!y<;e4yDSk^WjBn>XU`^_jW<0~I6;?T&pxcjQ!aGo(7mx~*GxFl@^G$nN`-04>g2`)7 zLWiZhM8Uf3;vsNleB09mT{ic<$YaM=m~f8)`=WJJXPFG9ExHV-4UDH9UXP-)I&8s3 z@>vEwU!-2kaJCj(n!60!`_WnLFfM9XFhvIH*@^1+s;&e~HM=YLAnYDK(PduHik-!~ z%kW*NCD0BR8tMYoco9dT7bxOI*{)+j0Cn`ULM(fiU$&**%5hsvx>;q@ta` zPJ%jX{!eH028MS(oKWB2;ptK4mvK&h!~O6|9Nl;kjO|6F11jbyGN17?*8q+k7Rk1CYjbTuwuV z6Ts)RYK-~O#N;YW7sl*2F$)!@4P#18%u*I1zcOZ|iTO@p*b_0*P0SgEd5#ParOV%XLpk&5VAl5gzE+Z2_O}3mTQT5rJ_CM|P9DzT*DV_74Y=~RVhG^mJNPEjXe;;KEH*Vl*H>USJAM2Z* z=Jn4<`sCBjD&YA=OqD*=oWz-)`jK>wzsz;$h&I)aJ~Y=YZr^&{%uzaPF}sXD)YmR{ zMrER|n=~gYJ3|K2XOW0r-WI*UMsJL3jlO@R-nQ83Gx7tOL)0_;K01-L9J;-C-$;p^ z$Bff^z_LxS|FUd7?8p3@%3qy}Q%7VOKLT2kelH1?#lItde8^2GlHFxgQ>|*9 zRXt%<8;okSRV}fqN3CkK?GVr%W`LRo!Y;zq6`88P&g8jU^u!TUF4i z?lP*kt?E3h`i)gxV^oz^)yb-+hOCYgK*+~pt2^~iQ?e_qD#NHAw5pG+>T;{dK0jw%C&+0~4-4UbfXmx+Es&uP**QmZb&lGx^RrR*2 ztwwc7RAa{HimKGR7D$*=EM0TV_>o4qQ-rdl3<`zW_>xZmMx&7%m7|-AVHqIeW!26M5WgL!|MslY?>q@2OMXeG4oW>| zBik4QZH#T+))*s)=|*CN2)F4s=7ydqky)kVm<{g0_yCXSqy6X0YmaI&p=LUAT0{K* zwnixRK4z}rJ2x7K$*H5qpZImO3)`YyX`;Q0%hf`ym-~t#{^*APir2m^UM~~xSsSl4 z+S?NCk^hQz@V!W}IK~9FCF!Hx@plN6#XsJr=rx!WOUKWAPv7;N(>Eic=+u(*ps*~2 z1M(wQcAIkFAbje){od2n&p8)%KOoClOj*JF+w!t$$pHD8GgxW|e&66kF7Vf3{m;K{8X zU<2%F4R8XcEU%UTy9mHvs13}tAy&4As5c>4qnfgp5FK)>huZ*iTLZjSuSdV&6vhpa zbz>&6r9<>fFF04b2I?PQaC*n?myX%4UiYqO6~5lDb1R(TR&#j2{@)5`d}x~a`Xhg} zEJWF_r1r+zk1vk&v*_t>F*SmP5nLU?<_L~Uwc(aW@OT8r4Y2;xB3K;3ErNIPH2yi_ zku?yHguZIWtB%?Sy$>CR{tx;d`WiX|dC6=NGyob3^@if1k&vA^S=WB_VHUCC=WNw~ zf6+-!N~NXg=`2~FJs5G}J9_Vn&gjrSsj#ef%$Rn2OVU@!jDnno7y0U90ogQns+r(7 zZo19ft`8B+ZdQ?->3bxSAIP>n8=a#tBGDf_H~K>+x=amUdXr8wyH-E8)alt7{^)O4 zk@DC>#WK^sd4PUxsncupUK7UH82>}cwt!{taue(qRm*@NzUF`!If$^q^nLH2Ue(Sr zXM{6)upYgPjmi7;&C8q`=fOcbbvdsr?jNLYTkfPMzAZ6lSI9Glyo)V%^C11ga_1R8 z8ktYUrx9X)eAhIc|B`dQFMwyM_vjw|$V*OYXb-Js=Y~0)Kw@@Y=gYu$0Dn$XmcV84 z&x={jS1|YyRU@?|J!4gmS=C2YHOHtPv8p?*>X234YgD&c)#X<8{y=6qqnpt6 z*{$d)t84OKCoDGN7T4xC@Q@r#^b#3g-gX z483CoTNhr^x36?kon@(2Wh>dV)^QnaHlS%DhXmAl4=>YaRykvmC|>UDU9L%`-X~y> z#ZD^o&fcvrd(|0Bksg25$(>BB&CDaH;D%r7ygx0q@1*Ly&2V%$X`s(w6E=OBcz;g< zeOu>!zfH9hwzT)&rMly4Zcv1^4YPOo>b#G_%DlSNE1tQhwg-xDoV_bh=beGbBm~7B zaBuLh9z3(WSHMr|&o<jIas>EGS%?~u>d!0zaNcv1grwUd5P9U&jxovxHC|A%+;`^U>?Yx$+| z8v$M%KEOVM&$c1IjGUXW>GP!fS)0uZkV-?B``ZB{%U;wMu5m8vOF}ch$qduN={1$E zV?S`4%g2uFTaDf6&8^eR*RY+gPJgn->3zjcMvCt+hUg=Hdcsd4e_`a}^E1Q8M#ww; z-w%_T-_;^7qqh@)JnsQS6hwRv*y(+Kr@rJLPFknQXIf^?%D*i>3`4(rc(Q)7NUo8ze#r! zirHh;%zm@mw;ao31SY?yYE6HX#epwiTatz*>D)>uDP8>S*Q{lUyUM&}e@8C$NVTm; z)q1U?iB*qOI?1kqHMHB0u7o)}*kt?jrR+t(3qi)PAU6vUbNlEwU+2w%l}`6&k4G-w zz|?sg-_nh*^Pau89=z5$5TD(X3zV7zeE-~Aw_C@X!fSNeI;VfAGwFzlnF-U9G|q^- zHnsDpaBGG##E+wQd~|~BH@b0sUXtL)tTNW@t=Tt-oLu@AEx%GS$NOKtg!K+5v-vD1 zW%Hkaa@%hw03Eo8c$a$1wu>|=H7f_z$PLB*+N@HM0jC-l6N)vwh01o7c0-=hrD4XeGZM zyMb!<>pyK^(vzU;H#ogIB#^f3=VM2Ff0Ey#X-{zm6F=;v&7?!82l^Uaw{KOOoE zvnCE7omree`*uHZrubQj?kG9SW32Im`Vs#T8tQki#-QtK@P;z(id-bz=ExuK7iZQzKO*}l}HCuhij?sJI8 z2hStIW4!64lCUVuBh>39uHg5yQjI*^Bmc-dzxPL}q&mOL_=DiF&T^VIeS(iZmv_@~ z)jX7qdi;uCX=l)d@@Loh^2dI9U!z@tlBFlJ37};_Kk0`9nrR-kg&Oy?aWDNZ|8(Q? zlhOWc++U2VjK3rQPu4PEuMxHyx6-&vjaz8k3C5je+{{F|hY>1_Ya`4t`~$|FVchGDd&J~@t8sT3pUlqso;UdX zsjFW82Ggc%_1-twws);=dBf>3{OU92?-=su&!df1V-^!=nT_R_%_|pq+D7|#4Xyh1 zSL;hRIm1#Gp7jn$utmR;vli-SH?j2my52%);JAfen~ik&W+x@}X*sNEp4^{uuzzC{ zNwmt3ZZ{W?pQ;yZb~4jML(AT1T9%wlH#u#)B$k9~JhD)KMe3pQNY2XU9To3MZNX-p z6Rm7sfyk+C`fQP#+hm@As&P(RdPT@&)!*1~70;8hc@a6g(QoB)(I?N|KBKXIfhmje zcyxP-r1Rzi{rVR6JS@=fS~y{$)0@U~_?u4m(Dt*Hnjuk|`R8@h7W3yBc~QaHwo0eg z8narn7SSJRlLHd}V4GYda&4P@l*vkC^HXibdCR@Z?kpB*(5TH94~ ze#28DkYDyyYoF&<}3s;Z>|(+3o~7?kH#cW|8MA77cfo>-SOh>B;16@6ml6(w#DrKG!L=;y#c_8vH!BnDgNQJ6gy%rB1KNrHTG zIDM^t;4SCbjkV5;ak=Ywa1t^Q!ID}lSNsa)>hhaYWA#?zqFeOm?>K33o2_^D7Dt!t zbLUk}-|zT3hl=*IiIJe;cP-`|uo&cYZgbW5EtW*CUVqriO&?k;_{3uQrxE#(#lQy^ z!x5~Ag!f0%J^iU$(s!%E{Z*fT<~-oiMPE1{R!u$Pa3<&as;T?j_qn?LlK1lrDF!v9 zo-eP?ydUEA@_T3*E)Uu$L?zr zYuM#;)U9T0$Ekyyj=>te<70QWt49CwvAdtER;L_xry@;0?Cy(n$6@!76fV4i3niz; zsbp7*if?M)(5^l<>@D&H-5E~7>h*flT`_P54lIvKNS^jCOO)tx_aw|B|4 zQ#t!2eJIWd$mv+HLl6Jdolc1BKXvzaajL*04emO`$)CAn9mFfXa6b3$U$b=3V4(7DkaBId$I_b}I0l9b5h5`JhL8+fPu{|eaon0rWnN-*gMN-zcIR>;>eNVA?_BuPTloeQmWAxd~4!d|E+snGI>n= znLPFu2l8|*s*~*1>48mDO^v>$$vt*Bz3n-anN&jhOEC42zhk+CtPm$GPJ=j#@$dY= zF8x-M$!*6I?y+S0(i85BNb5-p2TqXp8Xb4i=q8_Zr-e%VFRLZaPil$hM2vdh7qic+ zp2Y4?9-E*B&$vbnEUr=m3pc8PSsTWxKJQB{y~B5@oSCL@vEZi_@k5Vm1-eZT1;RGO0$DG|%d;yNu>Vs$p>& za0b`2{8`yyiJIUPdgjF3;`n6icJv*7;VE~&yMqT@>W@$XNk~;h%gMbwD!wpD#h;8R zlKX5H`V^j-zN|#W6F|*}N?PMZ$;s(H)uT8`^(ahKJ+iu}9w+?;_3QLIr`!|z@I+8A zKuso|hqX8?ZED8)>%l*`Cxmz^DD|OBO>^5kMa#)a+)-gSj^4A%eUNAHXZ)2Ty@>X6l5b;$G;#Rg*vW>KF8MW4IW zk5EM<#dBrKa3on-KmFBd_Z@?CPP)`hP(7o6iY&SD+2gr>m`f&%e(*;s@vBIFq6~^0WVO_a8%lXgJ$H`>1;QX+j*Q zOhqnvt}J!e8b+V`kGpRuma{3KpCiEwqU7X3Zq>~-Px*_KdE8`>*%S{qcUGxt@;fS- zkHs>4luY~z=NdT;ze(apmP8*dpA$z0hC-hTd8fsyoJ2=m0h#s{MX^VDxi`dbIrKy% z!C%Yg#FP7>Fh&Ks@dXNW`pZaP`L&<9Z+vQ2clvmDC#0GpiAOxFEP=>CQ6HW;(422c z%v>PW$ZPORXSGR6Df(zRI!^LHuS&{#NhP@|R1A*^xp|wU7G*FgUJf&ZcUCE!J}8Na zXW=pPJZ;?mk@{q#>~-2Ib#IOq(o!XtRO1(~Xndz8jK$FGBj zafi|3*Zw?S#81Y;7#l%<^NTx8PH6ZXYL4V3Y-ByS#XamswjT_HiW}{7Fc2jtC(8pT zUd7#KhwcpNhctD&lXmE&D@SU-v#P(qQ4f!$qTAb+w6fmFB|}q*bzETHRV&ImpCdw4M>NHmTh{SRNMiZ-Jo2fzfUbL^mLLuEI~F8 z@FPjecd)C=FaN+ z+Fr_cq>C!J$WecUwvhh76lofi3T3n+xu=`2#|A5#knZ8~^h~~vFT1X%jPa3<#j~Kv z_~|QLo?$Y%ba~Q}DNzNFxa0v|mFSwFy!A2_m)z*BBr@o?e9?9TLzg5XH$(A7MlQJt zJHsT*qs)ZSj^jy_`jJO_a$m2C&l;-YUFj;OC^A%W6?;FO$MD5@dQe73TmR8=a!Ra9 z$Qq;)T>X@N9@_Xya+wl?{}APCiYf92J?6=qA?fzlU{66L97SM%mPjYA`=E4J1Kx@D#*~MdmiCLth#;VE(891P` zLnl*|Xuo9k^TfJ3nL<#{DrI7vn%L}D8Fado;zZSXS{E|cSp^><9cUNV?2$siXpiJ% zv0o$+-PPmioAi*Qu7x@<`H-L)M%I^l=nm9h30`LAv(Vmy`6BnBT?*rAw+<@dzV^(} z^phUj9ddYV+a^t;=>q38X_G{)YNx8QdNLj-s&)NAr)T|{;9*(+9EezAvt z=&0wVVk&l|VCQ8RHD}x^0RFt1=|28yjZ5A4noAYoUjoLib*W}CiosSpQSbw(5}Q#l zZJkTi!e@Y0>s@LtV|*Bl!xB7*f0X4II>$T|GjVnpdx;2w8kzww*m1iH8woQLTo1_r z5(Y=VW%(R%bA*pJE5*FL1X@m9!D&!6d=PA^4YA7#>#wQSrB3p?v`pn##freykX)bvya;_Ae+y#lh*q|+t%xD$6m~Mf@pLIpG9Fh!Gg2y6! z6SxyAt%USjt+kMtbYj{SLW|%9mq9Dw1*@Sg@C{&}1NH&|ki|-K>qnckV(PvN-9SbK zS#VTE@PcB}N`|6MTTI-Lk}Z;p2qc)uCPp53Dga)J zdl9Y#m;alR!TZ0YWY7%wF!(iOat*d))m+*;0J2)kM4t}Z=u$l(;}1^%3i_U^2De}g zmSBBG8+~Fd=6pj3#~cd@Ga1T95WF0k4qpJ4LUQ49;hS8l7YUVv>rdDVh_QPNnnidq zd9zOPkHhfMX0w>o&Ud6QCNLNa-2gAx;XB&D2qB2zZ>ERC3r>ZkG(m7P#GfswF!+BM zfk)t*z~3ke@>bw*pHVwv6tO(zqA>pJt)gBMg?IF31lAk3gdn^3g1 z8EuJ*g?b!XPI$or?13%tf-9iC@X=POSf`IdALB15hNl>z(FQ1%sS169$mEnJeaQqXZ&Df_^N{0(ikOP!K-a5*3TISAb08FE|l84xa0aOUz0H#c|wNe01$ziO(zW}@!GW`I&E|*W|J23tSVP3q@Q3vH> z;FOE#I1&MDHB$v2nnZ~)Sq0zC!!&|#081vbvPF17=VDt*Ke#Z$*MnX2BLx5#Kz`y@ zfM17jBuCNqy4dl@pmYKWUVtq=4nEor7yEqW)eIo`3(7%gi{J%&U&}ZF9{?vo(v$jZJ z25;?WYh#P8-D+D4b`COx6GrgCTWJ5&2qm|0p<8WD1i=}F+$#7Nfq8dE+7fJp?!gFd z0+-JqJiIlAt#K?y@z=tP&m!|AA)&eE1LC|L!8Y$`fs}iz$Bw z$|sQEtC+zzNMx|pBo^FpKer+lsNm<&MB7)w zw3^R?PyLa#IwA`$gXT)2;JvfBJK#&e)BkHbTD0jbX7$%l1z`k-KE(SXcx&!j^HrcLaH9-(kICkiUM#fCb8TR(WbDN$TOFaC}9M@g#6g3 zO<=EQ?8O4$Un6`4SRdg9hdjrfK==%B5hQnnwW4W%v8%+PeW{{a1 zf(1g>rfDX!Tr!Ic)>Sbvbmy30MP3>7y-fvB;lX zMb(q2;QP?W@D1R!S8Zv6U`2#4U(H|!Nhuq^(lwSZ2S1GPP2iwP+P`~eN(0ks$_u^# zHFE*M!>`kW3DW=$T5A(30DG^qca6NKFNWk|@~(bYgqN3h(_xP_u z5}uXnklKwPCEg3BZD6oC!JHp_5-K2qyzsxinkf|g4d7x(!Y=_2MEHZ?&2QL5gM!dK zgct0!$@&ZCMfiO1F~f)4Y7WfbAW8H&(7V}2@PQ=}UU1YF>(4F@Hg?$Xg11EYLa^aY zIv5ugJPApfiCgJQkSvsp1B)Ojz2HTmZH&c4m;`Qs4#FPJ z=IrgoYA}K%S_yXDXREP0c>lht^KbWD?;bFBIqN9(Zq8ccecj58mH8_RR#va9UwLR{ XaMi3;C9CGHDqppvYRwGK)vo^sk3GXk diff --git a/src/Renderer.cpp b/src/Renderer.cpp index 59c1841..2f96cec 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -178,7 +178,7 @@ void Renderer::CreateTimeDescriptorSetLayout() { uboLayoutBinding.binding = 0; uboLayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; uboLayoutBinding.descriptorCount = 1; - uboLayoutBinding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; + uboLayoutBinding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT; uboLayoutBinding.pImmutableSamplers = nullptr; std::vector bindings = { uboLayoutBinding }; @@ -606,7 +606,7 @@ void Renderer::CreateGraphicsPipeline() { colorBlending.blendConstants[2] = 0.0f; colorBlending.blendConstants[3] = 0.0f; - std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, modelDescriptorSetLayout }; + std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, modelDescriptorSetLayout, timeDescriptorSetLayout }; // Pipeline layout: used to specify uniform values VkPipelineLayoutCreateInfo pipelineLayoutInfo = {}; @@ -780,7 +780,7 @@ void Renderer::CreateGrassPipeline() { colorBlending.blendConstants[2] = 0.0f; colorBlending.blendConstants[3] = 0.0f; - std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, modelDescriptorSetLayout }; + std::vector descriptorSetLayouts = { cameraDescriptorSetLayout, modelDescriptorSetLayout, timeDescriptorSetLayout }; // Pipeline layout: used to specify uniform values VkPipelineLayoutCreateInfo pipelineLayoutInfo = {}; @@ -1157,6 +1157,8 @@ void Renderer::RecordCommandBuffers() { // Bind the grass pipeline vkCmdBindPipeline(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipeline); vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 0, 1, &cameraDescriptorSet, 0, nullptr); + // Bind Time UBO for LOD (set = 2) + vkCmdBindDescriptorSets(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, grassPipelineLayout, 2, 1, &timeDescriptorSet, 0, nullptr); for (uint32_t j = 0; j < scene->GetBlades().size(); ++j) { VkBuffer vertexBuffers[] = { scene->GetBlades()[j]->GetCulledBladesBuffer() }; diff --git a/src/Scene.cpp b/src/Scene.cpp index 544355e..9ba8fd9 100644 --- a/src/Scene.cpp +++ b/src/Scene.cpp @@ -56,6 +56,10 @@ void Scene::SetDistanceCull(bool enabled) { time.enableDistanceCull = enabled ? 1 : 0; } +void Scene::SetLOD(bool enabled) { + time.enableLOD = enabled ? 1 : 0; +} + void Scene::ToggleOrientationCull() { time.enableOrientationCull = time.enableOrientationCull ? 0 : 1; } @@ -67,3 +71,7 @@ void Scene::ToggleFrustumCull() { void Scene::ToggleDistanceCull() { time.enableDistanceCull = time.enableDistanceCull ? 0 : 1; } + +void Scene::ToggleLOD() { + time.enableLOD = time.enableLOD ? 0 : 1; +} diff --git a/src/Scene.h b/src/Scene.h index 6bfb3eb..7bb8e09 100644 --- a/src/Scene.h +++ b/src/Scene.h @@ -14,11 +14,19 @@ struct Time { int enableOrientationCull = 1; int enableFrustumCull = 1; int enableDistanceCull = 0; + int enableLOD = 1; float orientationThreshold = 0.9f; float frustumTolerance = 0.1f; float maxDistance = 50.0f; int bucketCount = 8; int bladeCount = NUM_BLADES; + // LOD parameters + float lodNear = 5.0f; + float lodFar = 50.0f; + float minTessU = 2.0f; + float maxTessU = 8.0f; + float minTessV = 2.0f; + float maxTessV = 4.0f; }; class Scene { @@ -55,10 +63,13 @@ high_resolution_clock::time_point startTime = high_resolution_clock::now(); void SetOrientationCull(bool enabled); void SetFrustumCull(bool enabled); void SetDistanceCull(bool enabled); + void SetLOD(bool enabled); void ToggleOrientationCull(); void ToggleFrustumCull(); void ToggleDistanceCull(); + void ToggleLOD(); bool IsOrientationCull() const { return time.enableOrientationCull != 0; } bool IsFrustumCull() const { return time.enableFrustumCull != 0; } bool IsDistanceCull() const { return time.enableDistanceCull != 0; } + bool IsLOD() const { return time.enableLOD != 0; } }; diff --git a/src/main.cpp b/src/main.cpp index a26c771..0900877 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -83,6 +83,10 @@ namespace { scene->ToggleDistanceCull(); std::cout << "Distance cull: " << (scene->IsDistanceCull() ? "ON" : "OFF") << std::endl; break; + case GLFW_KEY_L: + scene->ToggleLOD(); + std::cout << "LOD (tessellation): " << (scene->IsLOD() ? "ON" : "OFF") << std::endl; + break; default: break; } diff --git a/src/shaders/compute.comp b/src/shaders/compute.comp index 1cfaaff..9c94739 100644 --- a/src/shaders/compute.comp +++ b/src/shaders/compute.comp @@ -16,12 +16,20 @@ layout(set = 1, binding = 0) uniform Time { int enableOrientationCull; int enableFrustumCull; int enableDistanceCull; + int enableLOD; // Parameters float orientationThreshold; float frustumTolerance; float maxDistance; int bucketCount; int bladeCount; + // LOD params + float lodNear; + float lodFar; + float minTessU; + float maxTessU; + float minTessV; + float maxTessV; }; struct Blade { diff --git a/src/shaders/grass.tesc b/src/shaders/grass.tesc index 28eae35..33d4ea1 100644 --- a/src/shaders/grass.tesc +++ b/src/shaders/grass.tesc @@ -1,8 +1,34 @@ +// #version 450 #extension GL_ARB_separate_shader_objects : enable layout(vertices = 1) out; +layout(set = 0, binding = 0) uniform CameraBufferObject { + mat4 view; + mat4 proj; +} camera; + +layout(set = 2, binding = 0) uniform Time { + float deltaTime; + float totalTime; + int enableOrientationCull; + int enableFrustumCull; + int enableDistanceCull; + int enableLOD; + float orientationThreshold; + float frustumTolerance; + float maxDistance; + int bucketCount; + int bladeCount; + float lodNear; + float lodFar; + float minTessU; + float maxTessU; + float minTessV; + float maxTessV; +} timeUBO; + // VS → TCS varyings layout(location = 0) in vec4 inV0[]; layout(location = 1) in vec4 inV1[]; @@ -14,18 +40,44 @@ layout(location = 2) out vec4 outV2[]; layout(location = 3) out vec4 outUp[]; void main() { - // Don't move the origin location of the patch + // Don't move the origin location of the patch outV0[gl_InvocationID] = inV0[0]; outV1[gl_InvocationID] = inV1[0]; outV2[gl_InvocationID] = inV2[0]; outUp[gl_InvocationID] = inUp[0]; - // Fixed tess levels for first visualization (can LOD later) - // Quads domain: inner = {rows, cols}. Use moderate detail. - gl_TessLevelInner[0] = 4.0; // along v - gl_TessLevelInner[1] = 8.0; // along u - gl_TessLevelOuter[0] = 8.0; - gl_TessLevelOuter[1] = 4.0; - gl_TessLevelOuter[2] = 8.0; - gl_TessLevelOuter[3] = 4.0; + // Base tess levels (fallback) + float baseU = 8.0; // along u (height) + float baseV = 4.0; // along v (width) + + float uLevel = baseU; + float vLevel = baseV; + + if (timeUBO.enableLOD != 0) { + // Distance from camera in view space (camera at origin) + vec3 V0 = inV0[0].xyz; + vec3 posView = (camera.view * vec4(V0, 1.0)).xyz; + float d = length(posView); + + float nearD = max(0.0, timeUBO.lodNear); + float farD = max(nearD + 0.001, timeUBO.lodFar); + float t = clamp((d - nearD) / (farD - nearD), 0.0, 1.0); + + float minU = max(1.0, timeUBO.minTessU); + float maxU = max(minU, timeUBO.maxTessU); + float minV = max(1.0, timeUBO.minTessV); + float maxV = max(minV, timeUBO.maxTessV); + + uLevel = mix(maxU, minU, t); + vLevel = mix(maxV, minV, t); + } + + // Quads domain: inner = {rows(v), cols(u)}. Mirror to outers. + gl_TessLevelInner[0] = vLevel; // along v + gl_TessLevelInner[1] = uLevel; // along u + gl_TessLevelOuter[0] = uLevel; + gl_TessLevelOuter[1] = vLevel; + gl_TessLevelOuter[2] = uLevel; + gl_TessLevelOuter[3] = vLevel; } + diff --git a/tmp_grass_tesc_dump.txt b/tmp_grass_tesc_dump.txt new file mode 100644 index 0000000..b4cb343 --- /dev/null +++ b/tmp_grass_tesc_dump.txt @@ -0,0 +1,31 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(vertices = 1) out; + +// VS → TCS varyings +layout(location = 0) in vec4 inV0[]; +layout(location = 1) in vec4 inV1[]; +layout(location = 2) in vec4 inV2[]; +layout(location = 3) in vec4 inUp[]; +layout(location = 0) out vec4 outV0[]; +layout(location = 1) out vec4 outV1[]; +layout(location = 2) out vec4 outV2[]; +layout(location = 3) out vec4 outUp[]; + +void main() { + // Don't move the origin location of the patch + outV0[gl_InvocationID] = inV0[0]; + outV1[gl_InvocationID] = inV1[0]; + outV2[gl_InvocationID] = inV2[0]; + outUp[gl_InvocationID] = inUp[0]; + + // Fixed tess levels for first visualization (can LOD later) + // Quads domain: inner = {rows, cols}. Use moderate detail. + gl_TessLevelInner[0] = 4.0; // along v + gl_TessLevelInner[1] = 8.0; // along u + gl_TessLevelOuter[0] = 8.0; + gl_TessLevelOuter[1] = 4.0; + gl_TessLevelOuter[2] = 8.0; + gl_TessLevelOuter[3] = 4.0; +} From b6f0e59adab2950be0de974e2953b1e16e7333d0 Mon Sep 17 00:00:00 2001 From: Crystal Jin <50037765+kstjxy@users.noreply.github.com> Date: Wed, 29 Oct 2025 21:20:18 -0400 Subject: [PATCH 7/7] Update README.md --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index 114a40e..f6dbb85 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,24 @@ Position- and time-varying wind direction; influence scales with **squared align - `Time.maxDistance` - `Time.bucketCount` (more buckets → smoother falloff) - Toggle with **`D`** + +### Extra Credit — Distance-Based Tessellation LOD + +**Goal:** Reduce tessellation work for distant blades while preserving nearby detail. + +**Method:** In **TCS**, compute the distance from the camera to each blade base and linearly interpolate tessellation levels between **max** and **min**; set `gl_TessLevel*` accordingly. + +**Controls:** +- `Time.enableLOD` +- `Time.lodNear` — start of falloff *(default ~ 5.0)* +- `Time.lodFar` — end of falloff *(default ~ 50.0)* +- `Time.minTessU` / `Time.maxTessU` — height tessellation range +- `Time.minTessV` / `Time.maxTessV` — width tessellation range + +**Toggle:** Press **`L`** + + + ## Performance Analysis @@ -140,3 +158,21 @@ This keeps each culling mode’s advantage **stable across grass densities**. #### Distance Culling - Thins **distant** blades uniformly; reduces tessellation/fragment work while preserving nearby detail. - **1.8–2.5×** improvements at mid/high counts; controlled by `maxDistance` and `bucketCount`. + +### LOD (Distance-Based Tessellation) + +fps_vs_grass_naive_vs_lod + +**Speedup vs. Naive:** +| Grass Count | Speedup | +|:---:|:---:| +| 2¹² | **1.21×** | +| 2¹⁴ | **1.16×** | +| 2¹⁶ | **1.28×** | +| 2¹⁸ | **1.24×** | +| 2²⁰ | **1.24×** | + +- LOD consistently improves performance over the naive baseline by **~20–25%**, especially noticeable at lower and mid-densities. +- Gains diminish at higher densities (2¹⁸–2²⁰) since tessellation cost becomes dominated by sheer blade count, but still shows modest benefit. +- The best-case improvement appears at **2¹² blades** (+21%) and **2¹⁴ blades** (+15%), where tessellation reduction saves significant vertex work without visible quality loss. +