低分辨率后处理通过将复杂计算转移到低分辨率阶段实现优化。
流程分为:主渲染后降采样,在低分辨率下进行模糊等计算,再升采样并合成到主画面。
关键优化在于:复杂计算仅针对低分辨率像素(如960x540),升采样阶段仅需简单采样和加法操作(1920x1080)。
最终只有升采样步骤会写入全分辨率显存,其计算量和带宽消耗远低于全分辨率后处理。
这种方案大幅降低了GPU负载,尤其适用于Bloom等效果密集型后处理。
1. 典型的低分辨率后处理流程
以Bloom为例,流程大致如下:
主渲染:先以全分辨率(1920x1080)渲染出主画面。
Downsample:把主画面缩小到低分辨率(如960x540),得到一张小图(52万像素)。
后处理:在这张小图上做片元着色器计算(如模糊、发光等)。
Upsample & 合成:将处理后的低分辨率结果再放大(Upsample)到全分辨率(1920x1080),并与主画面合成(Blend)。
2. 关于“重新写入显存”的细节
低分辨率处理阶段:只在低分辨率的RenderTarget上进行读写,带宽和计算量都很低。
Upsample阶段:通常会用一个全屏Pass,把低分辨率的结果采样(如双线性插值)并合成到全分辨率的主画面上。这个阶段会对全分辨率的每个像素执行一次片元着色器(但通常只是采样和加法,计算量很小)。
最终写入显存:只有Upsample合成这一步会对全分辨率的RenderTarget进行写入,但这一步的片元着色器通常很轻量。
3. 优化的本质
重计算的像素数:只有在Upsample合成时,才会对全分辨率的每个像素做一次采样和合成操作,但这一步的计算和带宽消耗远小于在全分辨率下做复杂后处理。
带宽和计算量的节省:最重的后处理(如模糊、Bloom)都在低分辨率下完成,极大减少了高开销操作的像素数。
4. 总结
低分辨率后处理的核心优化点在于:复杂的片元着色器操作只在低分辨率下进行,Upsample合成到全分辨率时只做简单采样和加法,极大节省了带宽和计算量。最终写入显存的全分辨率数据,只有Upsample合成这一步产生,且开销远小于全分辨率下做复杂后处理。
版权声明:本文为CSDN博主「你一身傲骨怎能输」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33060405/article/details/149211707





