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