小编Jav*_*ang的帖子

更改窗口大小时是否必须重新创建 Vulkan 管道?

如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重新创建管道吗?

vulkan

7
推荐指数
1
解决办法
2066
查看次数

vulkan VkPipelineLayoutCreateInfo 的多个 setLayoutCounts 的目的是什么?

我想知道为什么可以在 VkPipelineLayoutCreateInfo 中指定多个描述符集布局,因为一个已经包含所有绑定。

vulkan

2
推荐指数
1
解决办法
484
查看次数

标签 统计

vulkan ×2