Fixed global fade-out. (#867)

This commit is contained in:
Jonathas Costa
2019-05-18 13:17:53 -04:00
committed by Alexander Bock
parent ae5392dbeb
commit 368292aba6
3 changed files with 13 additions and 5 deletions

View File

@@ -91,7 +91,8 @@ public:
void update() override;
void performRaycasterTasks(const std::vector<RaycasterTask>& tasks);
void performDeferredTasks(const std::vector<DeferredcasterTask>& tasks);
void performDeferredTasks(const std::vector<DeferredcasterTask>& tasks,
float blackoutFactor);
void render(Scene* scene, Camera* camera, float blackoutFactor) override;
/**

View File

@@ -92,6 +92,8 @@ uniform dmat4 dSgctProjectionToModelTransformMatrix;
uniform dvec4 dCamPosObj;
uniform dvec3 sunDirectionObj;
uniform float blackoutFactor;
/*******************************************************************************
***** ALL CALCULATIONS FOR ECLIPSE ARE IN METERS AND IN WORLD SPACE SYSTEM ****
*******************************************************************************/
@@ -693,7 +695,7 @@ void main() {
}
renderTarget = atmosphereFinalColor / float(nSamples);
renderTarget.a *= blackoutFactor;
// if (complex)
// renderTarget = vec4(1.0, 0.0, 0.0, 1.0);
}
@@ -704,7 +706,7 @@ void main() {
bColor += texelFetch(mainColorTexture, fragCoords, f);
}
bColor /= float(nAaSamples);
renderTarget = vec4(HDR(bColor.xyz * backgroundConstant, atmExposure), bColor.a);
renderTarget = vec4(HDR(bColor.xyz * backgroundConstant, atmExposure), bColor.a * blackoutFactor);
}
else {
discard;

View File

@@ -987,7 +987,7 @@ void FramebufferRenderer::render(Scene* scene, Camera* camera, float blackoutFac
"FramebufferRenderer::render::deferredTasks"
);
}
performDeferredTasks(tasks.deferredcasterTasks);
performDeferredTasks(tasks.deferredcasterTasks, blackoutFactor);
}
if (tasks.deferredcasterTasks.empty()) {
@@ -1098,7 +1098,9 @@ void FramebufferRenderer::performRaycasterTasks(const std::vector<RaycasterTask>
}
void FramebufferRenderer::performDeferredTasks(
const std::vector<DeferredcasterTask>& tasks)
const std::vector<DeferredcasterTask>& tasks,
float blackoutFactor
)
{
bool firstPaint = true;
@@ -1149,6 +1151,9 @@ void FramebufferRenderer::performDeferredTasks(
deferredcastProgram->setUniform("atmExposure", _hdrExposure);
deferredcastProgram->setUniform("backgroundConstant", _hdrBackground);
deferredcastProgram->setUniform("blackoutFactor", blackoutFactor);
deferredcaster->preRaycast(
deferredcasterTask.renderData,
_deferredcastData[deferredcaster],