Update homework1.cpp
							parent
							
								
									4e175e863b
								
							
						
					
					
						commit
						d6542ac2f1
					
				| 
						 | 
				
			
			@ -746,6 +746,24 @@ void VulkanExample::setupFrameBuffer()
 | 
			
		|||
 | 
			
		||||
	VkSamplerCreateInfo samplerCI = vks::initializers::samplerCreateInfo();
 | 
			
		||||
	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()
 | 
			
		||||
| 
						 | 
				
			
			@ -791,6 +809,24 @@ void VulkanExample::getEnabledFeatures()
 | 
			
		|||
			drawUI(drawCmdBuffers[i]);
 | 
			
		||||
			vkCmdEndRenderPass(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);
 | 
			
		||||
			// update joint in nodes
 | 
			
		||||
			/*
 | 
			
		||||
			
 | 
			
		||||
			for (auto node : glTFModel.nodes)
 | 
			
		||||
			{
 | 
			
		||||
				
 | 
			
		||||
				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 {
 | 
			
		||||
| 
						 | 
				
			
			@ -879,6 +929,7 @@ void VulkanExample::getEnabledFeatures()
 | 
			
		|||
			vertexBufferSize,
 | 
			
		||||
			&glTFModel.vertices.buffer,
 | 
			
		||||
			&glTFModel.vertices.memory));
 | 
			
		||||
 | 
			
		||||
		VK_CHECK_RESULT(vulkanDevice->createBuffer(
 | 
			
		||||
			VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
 | 
			
		||||
			VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue