Update homework1.cpp
parent
4e175e863b
commit
d6542ac2f1
|
@ -746,6 +746,24 @@ void VulkanExample::setupFrameBuffer()
|
||||||
|
|
||||||
VkSamplerCreateInfo samplerCI = vks::initializers::samplerCreateInfo();
|
VkSamplerCreateInfo samplerCI = vks::initializers::samplerCreateInfo();
|
||||||
samplerCI.magFilter = VK_FILTER_NEAREST;
|
samplerCI.magFilter = VK_FILTER_NEAREST;
|
||||||
|
samplerCI.minFilter = VK_FILTER_NEAREST;
|
||||||
|
samplerCI.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
|
||||||
|
samplerCI.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
||||||
|
samplerCI.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
||||||
|
samplerCI.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
||||||
|
|
||||||
|
samplerCI.minLod = 0.0f;
|
||||||
|
samplerCI.maxLod = 1.0f;
|
||||||
|
samplerCI.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
|
||||||
|
|
||||||
|
if (tonemappingDescriptorSet != VK_NULL_HANDLE)
|
||||||
|
{
|
||||||
|
auto imageInfo = vks::initializers::descriptorImageInfo(colorSampler, pbrFrameBuffer.color.imageView, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
|
||||||
|
VkWriteDescriptorSet writeDescriptorSet = vks::initializers::writeDescriptorSet(tonemappingDescriptorSet, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 0, &imageInfo);
|
||||||
|
vkUpdateDescriptorSets(device, 1, &writeDescriptorSet, 0, nullptr);
|
||||||
|
|
||||||
|
}
|
||||||
|
pbrFrameBuffer.bCreate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VulkanExample::getEnabledFeatures()
|
void VulkanExample::getEnabledFeatures()
|
||||||
|
@ -791,6 +809,24 @@ void VulkanExample::getEnabledFeatures()
|
||||||
drawUI(drawCmdBuffers[i]);
|
drawUI(drawCmdBuffers[i]);
|
||||||
vkCmdEndRenderPass(drawCmdBuffers[i]);
|
vkCmdEndRenderPass(drawCmdBuffers[i]);
|
||||||
VK_CHECK_RESULT(vkEndCommandBuffer(drawCmdBuffers[i]));
|
VK_CHECK_RESULT(vkEndCommandBuffer(drawCmdBuffers[i]));
|
||||||
|
|
||||||
|
//tonemapping render pass
|
||||||
|
VkRenderPassBeginInfo renderPassBeginInfo = vks::initializers::renderPassBeginInfo();
|
||||||
|
renderPassBeginInfo.renderPass = renderPass;
|
||||||
|
renderPassBeginInfo.framebuffer = VulkanExampleBase::frameBuffers[i];
|
||||||
|
renderPassBeginInfo.renderArea.extent.width = width;
|
||||||
|
renderPassBeginInfo.renderArea.extent.height = height;
|
||||||
|
renderPassBeginInfo.clearValueCount = 2;
|
||||||
|
renderPassBeginInfo.pClearValues = clearValues;
|
||||||
|
|
||||||
|
vkCmdBeginRenderPass(drawCmdBuffers[i], &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
|
||||||
|
vkCmdSetViewport(drawCmdBuffers[i], 0, 1, &viewport);
|
||||||
|
vkCmdSetScissor(drawCmdBuffers[i], 0, 1, &scissor);
|
||||||
|
vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayouts.tonemappingLayout, 0, 1, &tonemappingDescriptorSet, 0, NULL);
|
||||||
|
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.toneMapping);
|
||||||
|
vkCmdDraw(drawCmdBuffers[i], 3, 1, 0, 0);
|
||||||
|
drawUI(drawCmdBuffers[i]);
|
||||||
|
vkCmdEndRenderPass(drawCmdBuffers[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -831,10 +867,24 @@ void VulkanExample::getEnabledFeatures()
|
||||||
|
|
||||||
glTFModel.loadAnimations(glTFInput);
|
glTFModel.loadAnimations(glTFInput);
|
||||||
// update joint in nodes
|
// update joint in nodes
|
||||||
|
/*
|
||||||
|
|
||||||
for (auto node : glTFModel.nodes)
|
for (auto node : glTFModel.nodes)
|
||||||
{
|
{
|
||||||
|
|
||||||
glTFModel.updateJoints(node);
|
glTFModel.updateJoints(node);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
for (size_t i = 0; i < glTFModel.nodes.size(); i++)
|
||||||
|
{
|
||||||
|
if (glTFModel.nodes[i]->skin > -1)
|
||||||
|
{
|
||||||
|
glTFModel.updateJoints(glTFModel.nodes[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -879,6 +929,7 @@ void VulkanExample::getEnabledFeatures()
|
||||||
vertexBufferSize,
|
vertexBufferSize,
|
||||||
&glTFModel.vertices.buffer,
|
&glTFModel.vertices.buffer,
|
||||||
&glTFModel.vertices.memory));
|
&glTFModel.vertices.memory));
|
||||||
|
|
||||||
VK_CHECK_RESULT(vulkanDevice->createBuffer(
|
VK_CHECK_RESULT(vulkanDevice->createBuffer(
|
||||||
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
|
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
|
||||||
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
|
||||||
|
|
Loading…
Reference in New Issue