为什么 D3D12Fullscreen 示例中有 2 个视口?场景视口有什么用?

Why is there 2 viewport in D3D12Fullscreen sample? What is sceneviewport for?

在微软的 DX12 sample, there are 2 viewports 中(有 2 个剪刀和 2 个堆描述符)。

似乎只使用了 postviewport(每次调整大小时,都会调用 LoadSizeDependentResources(),这会更新 postviewport)。

那么,在那种情况下,sceneviewport 的用途是什么?

示例使用两次渲染。它首先渲染到中间渲染目标(使用 m_sceneViewport 和 m_sceneScissorRect),然后将中间渲染目标缩放到屏幕。检查 OMSetRenderTargets 调用。 The "scale" takes place when the selected fullscreen mode dimensions are different from those of the intermediate render target.