vault backup: 2025-03-04 20:39:24
This commit is contained in:
parent
bd4bfe2ae3
commit
ded5a24e04
@ -374,5 +374,23 @@ float3 ToneMappedColorAP1 = FilmToneMap( ColorAP1 );
|
||||
- UE渲染学习(2)- 自定义PostProcess - Kuwahara滤镜:https://zhuanlan.zhihu.com/p/25790491262
|
||||
|
||||
PS:
|
||||
1. ToneMapping之后的Pass因为超采样的关系使得ViewportResoution与BufferResoution不同,所以需要使用`SHADER_PARAMETER(FScreenTransform, SvPositionToInputTextureUV)`以及`FScreenTransform::ChangeTextureBasisFromTo`计算变换比例。具体可以参考FFXAAPS。
|
||||
2.
|
||||
1. `Tonemap`之后的Pass因为超采样的关系使得ViewportResoution与BufferResoution不同,所以需要使用`SHADER_PARAMETER(FScreenTransform, SvPositionToInputTextureUV)`以及`FScreenTransform::ChangeTextureBasisFromTo`计算变换比例。具体可以参考FFXAAPS。
|
||||
1. ToneMapPass 传入FScreenPassTextureSlice,传出FScreenPassTexture。如果关闭Tonemap则直接运行`SceneColor = FScreenPassTexture(SceneColorSlice);`。
|
||||
2. `MotionBlur`~`Tonemap`
|
||||
3. `MotionBlur`之前(后处理材质BL_BeforeTonemapping之前),传入FScreenPassTexture SceneColor进行绘制。
|
||||
##
|
||||
```c++
|
||||
FPostProcessMaterialInputs PassInputs;
|
||||
PassSequence.AcceptOverrideIfLastPass(EPass::Tonemap, PassInputs.OverrideOutput);
|
||||
PassInputs.SetInput(EPostProcessMaterialInput::SceneColor, FScreenPassTexture::CopyFromSlice(GraphBuilder, SceneColorSlice));
|
||||
```
|
||||
|
||||
创建`FScreenPassTextureSlice`:
|
||||
```c++
|
||||
FScreenPassTextureSlice SceneColorSlice = FScreenPassTextureSlice::CreateFromScreenPassTexture(GraphBuilder, SceneColor);//FScreenPassTexture SceneColor
|
||||
```
|
||||
|
||||
将渲染结果转换成`FScreenPassTextureSlice`:
|
||||
```c++
|
||||
SceneColorSlice = FScreenPassTextureSlice::CreateFromScreenPassTexture(GraphBuilder, AddToonPostProcessBeforeTonemappingPass(GraphBuilder, View, PassInputs));
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user