繁体   English   中英

Vulkan:屏幕不同部分的不同样本计数

[英]Vulkan: Different sample count in different part of the screen

这里只是一个简单的问题......你将如何在 Vulkan 中实现这样的目标?

________________________________________________
|                                              |
|   VK_SAMPLE_COUNT_1_BIT                      |
|                                              |
|    ____________________________________      |
|    |                                  |      |
|    |    VK_SAMPLE_COUNT_4_BIT         |      |
|    |                                  |      |
|    |                                  |      |
|    |                                  |      |
|    |                                  |      |
|    |__________________________________|      |
|______________________________________________|

我现在想到的两种方法是:

  • 两个不同的渲染通道和两组不同的帧缓冲区,一组使用交换链图像视图作为颜色附件,另一组使用我自己创建的图像视图,然后在第二次调用 vkCmdBeginRenderPass() 时设置视口的大小渲染通行证。

  • 一个渲染通道和两个子通道,第一个带有 1 个样本,第二个带有 4 个样本,但是即使对于第一个子通道,我也必须使用解析附件,因为如果我为第二个子通道设置它,那么我有与所有人一起使用它,对吗? (我从来没有使用过一个以上的子通道,所以我知道的不多)。 视口的大小将通过调用 vkCmdSetViewport() 来指定。

你会怎么做? 你会使用不同的方法吗?

谢谢。

只需使用两个渲染通道和两组帧缓冲区。

在这里使用子通道可能没有任何优势。 它们仅对基于图块的渲染器真正有益,其中子通道数据交换可以在 GPU 内部本地处理,但如果样本数不同,则不太可能发生这种情况。 我希望大多数平台最终会将它们分成单独的“通行证”,通过 memory 往返。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM