Skip to content
Permalink
Browse files

- consolidated postprocessing code a bit.

The code that determines the order of effects should not be duplicated between renderers.
  • Loading branch information...
coelckers committed Jun 20, 2019
1 parent 4722720 commit 3d3f364874117a10afa4d737ca5b502a20fbf12a
@@ -68,18 +68,10 @@ void FGLRenderer::PostProcessScene(int fixedcm, const std::function<void()> &aft

GLPPRenderState renderstate(mBuffers);

hw_postprocess.exposure.Render(&renderstate, sceneWidth, sceneHeight);
hw_postprocess.customShaders.Run(&renderstate, "beforebloom");
hw_postprocess.bloom.RenderBloom(&renderstate, sceneWidth, sceneHeight, fixedcm);

hw_postprocess.Pass1(&renderstate, fixedcm, sceneWidth, sceneHeight);
mBuffers->BindCurrentFB();
afterBloomDrawEndScene2D();

hw_postprocess.tonemap.Render(&renderstate);
hw_postprocess.colormap.Render(&renderstate, fixedcm);
hw_postprocess.lens.Render(&renderstate);
hw_postprocess.fxaa.Render(&renderstate);
hw_postprocess.customShaders.Run(&renderstate, "scene");
hw_postprocess.Pass2(&renderstate, fixedcm, sceneWidth, sceneHeight);
}

//-----------------------------------------------------------------------------
@@ -1081,3 +1081,20 @@ void PPCustomShaderInstance::AddUniformField(size_t &offset, const FString &name
offset += alignment - fieldsize;
}
}


void Postprocess::Pass1(PPRenderState* state, int fixedcm, int sceneWidth, int sceneHeight)
{
exposure.Render(state, sceneWidth, sceneHeight);
customShaders.Run(state, "beforebloom");
bloom.RenderBloom(state, sceneWidth, sceneHeight, fixedcm);
}

void Postprocess::Pass2(PPRenderState* state, int fixedcm, int sceneWidth, int sceneHeight)
{
tonemap.Render(state);
colormap.Render(state, fixedcm);
lens.Render(state);
fxaa.Render(state);
customShaders.Run(state, "scene");
}
@@ -834,6 +834,10 @@ class Postprocess
PPPresent present;
PPShadowMap shadowmap;
PPCustomShaders customShaders;


void Pass1(PPRenderState *state, int fixedcm, int sceneWidth, int sceneHeight);
void Pass2(PPRenderState* state, int fixedcm, int sceneWidth, int sceneHeight);
};

extern Postprocess hw_postprocess;
@@ -46,18 +46,10 @@ void VkPostprocess::PostProcessScene(int fixedcm, const std::function<void()> &a

VkPPRenderState renderstate;

hw_postprocess.exposure.Render(&renderstate, sceneWidth, sceneHeight);
hw_postprocess.customShaders.Run(&renderstate, "beforebloom");
hw_postprocess.bloom.RenderBloom(&renderstate, sceneWidth, sceneHeight, fixedcm);

hw_postprocess.Pass1(&renderstate, fixedcm, sceneWidth, sceneHeight);
SetActiveRenderTarget();
afterBloomDrawEndScene2D();

hw_postprocess.tonemap.Render(&renderstate);
hw_postprocess.colormap.Render(&renderstate, fixedcm);
hw_postprocess.lens.Render(&renderstate);
hw_postprocess.fxaa.Render(&renderstate);
hw_postprocess.customShaders.Run(&renderstate, "scene");
hw_postprocess.Pass2(&renderstate, fixedcm, sceneWidth, sceneHeight);
}

void VkPostprocess::BlitSceneToPostprocess()

0 comments on commit 3d3f364

Please sign in to comment.
You can’t perform that action at this time.