Graphics 有人能帮我理解vulkan中的视口、剪刀、渲染区域、帧缓冲区大小、附件大小吗?

Graphics 有人能帮我理解vulkan中的视口、剪刀、渲染区域、帧缓冲区大小、附件大小吗?,graphics,vulkan,Graphics,Vulkan,就像问题的标题一样,我对这些东西有点困惑,尤其是视口和渲染区域。好的,VS阶段使用视口,而FS阶段使用渲染区域,如果视口比渲染区域小,会发生什么 谢谢。视口指定如何将标准化设备坐标转换为帧缓冲区的像素坐标 “剪刀”是可以渲染的区域,在这方面与“视口”类似,但更改“剪刀”矩形不会影响坐标 RenderArea是将由renderpass更改的帧缓冲区区域。这使实现知道不会更改整个帧缓冲区,并使其有机会通过例如在基于分片的体系结构中不包括一些分片来进行优化。应用程序负责在该区域之外不进行渲染,例如确保

就像问题的标题一样,我对这些东西有点困惑,尤其是视口和渲染区域。好的,VS阶段使用视口,而FS阶段使用渲染区域,如果视口比渲染区域小,会发生什么


谢谢。

视口指定如何将标准化设备坐标转换为帧缓冲区的像素坐标

“剪刀”是可以渲染的区域,在这方面与“视口”类似,但更改“剪刀”矩形不会影响坐标

RenderArea是将由renderpass更改的帧缓冲区区域。这使实现知道不会更改整个帧缓冲区,并使其有机会通过例如在基于分片的体系结构中不包括一些分片来进行优化。应用程序负责在该区域之外不进行渲染,例如确保剪刀矩形始终完全包含在渲染区域内

帧缓冲区大小和附件大小是相关的,因为附件必须至少与帧缓冲区一样大

如果视口比渲染区域小,会发生什么情况


没有什么特别的,渲染命令将在视口中渲染。如果渲染区域小于视口,则会导致帧缓冲区中的值未定义。

视口指定如何将规范化设备坐标转换为帧缓冲区的像素坐标

“剪刀”是可以渲染的区域,在这方面与“视口”类似,但更改“剪刀”矩形不会影响坐标

RenderArea是将由renderpass更改的帧缓冲区区域。这使实现知道不会更改整个帧缓冲区,并使其有机会通过例如在基于分片的体系结构中不包括一些分片来进行优化。应用程序负责在该区域之外不进行渲染,例如确保剪刀矩形始终完全包含在渲染区域内

帧缓冲区大小和附件大小是相关的,因为附件必须至少与帧缓冲区一样大

如果视口比渲染区域小,会发生什么情况


没有什么特别的,渲染命令将在视口中渲染。如果渲染区域小于视口,则会导致帧缓冲区中出现未定义的值。

若要添加这些值,可以对不同的渲染区域使用多个绘制调用,并具有拆分屏幕或画中画等功能。这对调试非常有用。要添加到这一点,您可以对不同的渲染区域使用多个绘制调用,并具有诸如拆分屏幕或画中画之类的功能。这对调试非常有用。