From b793c1750d20e2680ff944df66a8d9cb20e7cede Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 14 Dec 2018 21:23:18 -0500 Subject: [PATCH] Fix broken shadows --- src/shadowpass.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/shadowpass.cpp b/src/shadowpass.cpp index 94c42b9..c0e53a6 100644 --- a/src/shadowpass.cpp +++ b/src/shadowpass.cpp @@ -29,6 +29,19 @@ ShadowPass::~ShadowPass() { } void ShadowPass::render(VkCommandBuffer commandBuffer, World& world) { + VkViewport viewport = {}; + viewport.width = renderer_.getConfig().shadowResolution; + viewport.height = renderer_.getConfig().shadowResolution; + viewport.maxDepth = 1.0f; + + vkCmdSetViewport(commandBuffer, 0, 1, &viewport); + + VkRect2D scissor = {}; + scissor.extent.width = renderer_.getConfig().shadowResolution; + scissor.extent.height = renderer_.getConfig().shadowResolution; + + vkCmdSetScissor(commandBuffer, 0, 1, &scissor); + VkClearValue clearColor = {}; clearColor.depthStencil.depth = 1.0f; @@ -183,22 +196,11 @@ void ShadowPass::createPipeline() { VkPipelineInputAssemblyStateCreateInfo inputAssembly = {}; inputAssembly.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; inputAssembly.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; - - VkViewport viewport = {}; - viewport.width = renderer_.getConfig().shadowResolution; - viewport.height = renderer_.getConfig().shadowResolution; - viewport.maxDepth = 1.0f; - - VkRect2D scissor = {}; - scissor.extent.width = renderer_.getConfig().shadowResolution; - scissor.extent.height = renderer_.getConfig().shadowResolution; VkPipelineViewportStateCreateInfo viewportState = {}; viewportState.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; viewportState.viewportCount = 1; - viewportState.pViewports = &viewport; viewportState.scissorCount = 1; - viewportState.pScissors = &scissor; VkPipelineRasterizationStateCreateInfo rasterizer = {}; rasterizer.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;