mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-04 10:40:09 -06:00
Fixed global fade-out. (#867)
This commit is contained in:
committed by
Alexander Bock
parent
ae5392dbeb
commit
368292aba6
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user