在GDC2014上,UE4就提出了它移动端后期处理管线设计(参考Next_Generation_Mobile_Rendering 文章)
流程大致是
降低分辨率(Smart Reduction)(在各个Pass里处理,没有直接降低RT分辨率)->
景深(Depth of Field) (可有可无) ->
模糊(Bloom)->
光轴(LightShaft)->
混合(Vignette +Bloom + Light Shafts)->
色调映射(Tonemapping)->
抗锯齿(Anti-Aliasing)
移动端后期处理
代码在FPostProcessing::ProcessES2中
先定义了2个上下文
FRenderingCompositePassContext CompositeContext(RHICmdList, View);
FPostprocessContext Context(RHICmdList, CompositeContext.Graph, View);
CompositeContext其实其中有个后期处理Pass列表,把需要做的后期处理全部缓存在其中,然后一起运行(Processs)
FRenderingCompositePass 最基础Pass的基类
virtual const FRenderingCompositeOutputRef* GetInput(EPassInputId InPassInputId) const = 0;
virtual void SetInput(EPassInputId InPassInputId, const FRenderingCompositeOut