From 8ad757263f352ce5d68d2ec0ebc3a86b67cb04fe Mon Sep 17 00:00:00 2001 From: Jonathas Costa Date: Thu, 12 Nov 2020 16:10:01 -0500 Subject: [PATCH] Added initial position (far away) in the g-Buffer position. (#1360) * Added initial position (far away) in the g-Buffer position. * Fixed bug with Sun's star and atmosphere. --- data/assets/scene/digitaluniverse/stars.asset | 3 ++- modules/space/shaders/star_fs.glsl | 2 +- src/rendering/framebufferrenderer.cpp | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/data/assets/scene/digitaluniverse/stars.asset b/data/assets/scene/digitaluniverse/stars.asset index 7328d0fae4..e269202667 100644 --- a/data/assets/scene/digitaluniverse/stars.asset +++ b/data/assets/scene/digitaluniverse/stars.asset @@ -66,7 +66,8 @@ local sunstar = { MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", -- or PSF - FadeInDistances = { 0.0001, 0.1 } + FadeInDistances = { 0.0001, 0.1 }, + RenderableType = "PostDeferredTransparent" }, GUI = { Name = "Sun", diff --git a/modules/space/shaders/star_fs.glsl b/modules/space/shaders/star_fs.glsl index 46c6ebb4a0..6b98775e7a 100644 --- a/modules/space/shaders/star_fs.glsl +++ b/modules/space/shaders/star_fs.glsl @@ -101,7 +101,7 @@ Fragment getFragment() { vec4 fullColor = vec4(color.rgb, textureColor.a); fullColor.a *= alphaValue; - if (fullColor.a == 0) { + if (fullColor.a < 0.001) { discard; } diff --git a/src/rendering/framebufferrenderer.cpp b/src/rendering/framebufferrenderer.cpp index aae263a0a5..028fd63fc7 100644 --- a/src/rendering/framebufferrenderer.cpp +++ b/src/rendering/framebufferrenderer.cpp @@ -73,6 +73,7 @@ namespace { } }; + constexpr const glm::vec4 PosBufferClearVal = { 1e32, 1e32, 1e32, 1.f }; constexpr const std::array HDRUniformNames = { "hdrFeedingTexture", "blackoutFactor", "hdrExposure", "gamma", @@ -1170,6 +1171,7 @@ void FramebufferRenderer::render(Scene* scene, Camera* camera, float blackoutFac glBindFramebuffer(GL_FRAMEBUFFER, _gBuffers.framebuffer); glDrawBuffers(3, ColorAttachmentArray); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClearBufferfv(GL_COLOR, 1, glm::value_ptr(PosBufferClearVal)); } Time time = global::timeManager->time();