有人可以帮我理解vulkan中的视口,剪刀,renderarea,framebuffer尺寸,附件尺寸吗?

时间:2017-02-28 06:43:04

标签: graphics vulkan

就像问题标题一样,我对thos的东西有点困惑,特别是视口和渲染区域。 AFAIK,视口用于VS阶段,而渲染区域用于FS阶段,如果视口小于渲染区域,会发生什么?

感谢。

1 个答案:

答案 0 :(得分:5)

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

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

RenderArea是帧缓冲区域,将由renderpass更改。这使得实现知道不会改变整个帧缓冲器并且通过例如不包括基于区块的架构中的一些区块来给予其优化的机会。应用程序的责任是不在该区域之外进行渲染,例如确保剪刀区域始终完全包含在renderArea中。

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

  

如果视口小于渲染区域,会发生什么?

没什么特别的,渲染命令将在视口中呈现。反过来(渲染区域小于视口)将导致帧缓冲区中的未定义值。