什么是Metal中的“color attachment”?

10
我假设颜色附件不仅存在于Metal(我知道OpenGL肯定也有),但我是新手图形编程,我想知道颜色附件的概念究竟是什么。我所做的所有绘画都涉及在颜色附件中的第一个 数组 上设置属性,然后进行渲染通道。颜色附件真的只是缓冲区吗?在渲染通道中使用多个附件的唯一目的是将同一图像绘制到多个缓冲区/纹理中吗? 编辑:管线状态也有颜色附件的数组,就像我刚刚回忆起的那样。如果它们本质上是缓冲区,那么这与设置管线状态有什么关系?
1个回答

5

鉴于您对OpenGL有一定的了解,我将用这些术语来解释:

颜色附件是一个纹理,作为渲染目标附加到帧缓冲中,用于离屏渲染。

颜色附件在多种技术中使用,包括反射、折射和延迟着色。

在图形管道方面,具有附件的缓冲区往往是纹理数据的源或终点渲染目标。

当您更改绑定的缓冲区时,会改变管道的状态,因为计算机图形硬件是基于状态的。您可以为整个管道排队状态更改(使用着色器x、绑定缓冲器y、设置统一变量z),执行这些更改,然后观察呈现在屏幕上的结果。


哦,那很有道理。所以说,如果我有一个像《我的世界》中的精灵表一样的大纹理,我要在每个绘制调用中不断地从中裁剪纹理,那么我会将该纹理作为状态本身的一个附件,以便快速重复访问? - Sam Claus
1
@SamClaus 不,那只是一种纹理。通常情况下,帧缓冲区的附件是用于进行屏幕外渲染的。当您想要采样该附件时,只需像绑定任何其他纹理一样绑定即可。 - Ian Young

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接