diff --git a/homework/homework1/homework1.cpp b/homework/homework1/homework1.cpp index 30d11d1..498f666 100644 --- a/homework/homework1/homework1.cpp +++ b/homework/homework1/homework1.cpp @@ -838,20 +838,17 @@ void VulkanExample::getEnabledFeatures() VK_CHECK_RESULT(vkCreateDescriptorPool(device, &descriptorPoolInfo, nullptr, &descriptorPool)); // Descriptor set layouts - - VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCI = vks::initializers::descriptorSetLayoutCreateInfo(setLayoutBinding); + VkDescriptorSetLayoutBinding setLayoutBinding{}; + VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCI = vks::initializers::descriptorSetLayoutCreateInfo(&setLayoutBinding, 1); // Descriptor set layout for passing matrices - setLayoutBinding = vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorSetLayoutCI, nullptr, &descriptorSetLayouts.matrices)); // Descriptor set layout for passing material textures - VkDescriptorSetLayoutBinding setLayoutBinding = vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 0); - descriptorSetLayoutCI = vks::initializers::descriptorSetLayoutCreateInfo(&setLayoutBinding, 1); + setLayoutBinding = vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, 0); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorSetLayoutCI, nullptr, &descriptorSetLayouts.textures)); - // Descriptor set layout for passing skin joint matrices setLayoutBinding = vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0); VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorSetLayoutCI, nullptr, &descriptorSetLayouts.jointMatrices)); @@ -977,7 +974,7 @@ void VulkanExample::getEnabledFeatures() { shaderData.values.projection = camera.matrices.perspective; shaderData.values.model = camera.matrices.view; - shaderData.values.viewPos = camera.viewPos; + memcpy(shaderData.buffer.mapped, &shaderData.values, sizeof(shaderData.values)); } @@ -1000,7 +997,7 @@ void VulkanExample::getEnabledFeatures() } if (!paused) { - glTFModel.updateAnimation(frameTimer,shaderData.skinSSBO); + glTFModel.updateAnimation(frameTimer,shaderData.buffer); } } diff --git a/homework/homework1/homework1.h b/homework/homework1/homework1.h index 2a97b4d..a4b30be 100644 --- a/homework/homework1/homework1.h +++ b/homework/homework1/homework1.h @@ -208,7 +208,6 @@ public: glm::vec4 lightPos = glm::vec4(5.0f, 5.0f, 5.0f, 1.0f); glm::vec4 viewPos; } values; - vks::Buffer skinSSBO; } shaderData; struct Pipelines {