gpt4 book ai didi

glsl - 着色器帧缓冲区回读

转载 作者:行者123 更新时间:2023-12-04 14:06:18 27 4
gpt4 key购买 nike

我想知道较新的着色器模型是否支持从目标帧缓冲区读回像素值。我假设这已经在绘图管道的后期(非可编程)阶段完成,这让我希望这个功能可能已经添加到可编程管道中。

我知道可以绘制到纹理绑定(bind)帧缓冲区,然后将此纹理发送到着色器,我只是希望有一种更优雅的方式来实现相同的功能。

最佳答案

正如 Andrew 所指出的,从逻辑上讲,帧缓冲区访问是与片段着色器分开的阶段,因此在片段着色器中读取帧缓冲区是不可能的。这样做的原因(回答 Andrew 的问题)是性能和图形管道的排序要求的结合。渲染管道的定义方式,帧缓冲区混合操作必须以与进入管道开头的三角形/基元相同的顺序发生。另一方面,片段着色器可以以任何顺序发生。因此,通过将它们设置为单独的阶段,GPU 可以在它们的输入可用时尽可能快地运行片段着色器,而无需在它们之间进行同步。只要它保持足够的缓冲区空间来保存片段着色器的输出,以便它们可以累积并允许帧缓冲区混合和写入按顺序发生,一切都很好,因为任何给定片段着色器的结果都是直到混合阶段之后才可见。

如果片段着色器有办法读取帧缓冲区,则需要某种同步来确保这些读取按顺序进行,从而大大减慢速度。

关于glsl - 着色器帧缓冲区回读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com