指向多个渲染目标

| 使用多个渲染目标有什么意义吗?难道不能只绘制一个渲染目标并将其存储在纹理中,然后再清除目标并再次使用它吗?     
已邀请:
        了解MRT的关键是,您并未将完全相同的数据绘制到所有渲染目标。 像素着色器只能输出4个浮点值,通常,您将使用这4个值在该给定点生成颜色。但是,您可能需要输出深度数据或普通数据,因此您可以使用这4个浮点值来表示您可能需要的其他信息。 使用MRT的好处是,您只需要绘制一次场景并输出到各种渲染目标,因此在一个渲染过程中,您可以输出到一个渲染目标,该目标将接收漫反射颜色数据,另一个渲染目标将接收正常数据,第三个渲染目标将接收深度数据。请参阅下文,以更好地理解我的意思: 确实是RGBA值变为其他情况的情况,例如RGB,因为绘制了多边形法线的X,Y,Z。 使用MRT有一些问题,例如所有渲染目标必须具有相同的位深度,并且您确实开始使用它来推动GPU纹理填充率,但是总体优势却超过了陷阱。     
        当您要渲染一个几何图形并将不同的输出收集到单独的渲染目标中时,将使用多个渲染目标。 今天,该技术主要用于实现延迟着色。在延迟着色中,多个渲染目标存储照明信息,例如表面法线,镜面反射的颜色和镜面反射的指数,以及深度和漫反射的颜色信息。组合的渲染目标的集合称为G缓冲区。 参见《 6800海下的同盟》(Hargreaves和Harris,2004年)以了解“延迟阴影”和“ G缓冲区”的入门知识。     

要回复问题请先登录注册