如https://vulkan-tutorial.com/code/23_texture_image.cpp所示:createGraphicsPipeline()更改窗口大小时调用重新创建Pipeline,尺寸在下面的代码中设置。
VkViewport viewport = {};
viewport.x = 0.0f;
viewport.y = 0.0f;
viewport.width = (float) swapChainExtent.width;
viewport.height = (float) swapChainExtent.height;
viewport.minDepth = 0.0f;
viewport.maxDepth = 1.0f;
VkRect2D scissor = {};
scissor.offset = {0, 0};
scissor.extent = swapChainExtent;
VkPipelineViewportStateCreateInfo viewportState = {};
viewportState.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
viewportState.viewportCount = 1;
viewportState.pViewports = &viewport;
viewportState.scissorCount = 1;
viewportState.pScissors = &scissor;
Run Code Online (Sandbox Code Playgroud)
如果场景包含大量材质,更改窗口大小将重新创建所有材质,这非常耗时。我可以直接修改它们VkRect2D而不VkViewport重新创建管道吗?
我想知道为什么可以在 VkPipelineLayoutCreateInfo 中指定多个描述符集布局,因为一个已经包含所有绑定。
vulkan ×2