diff --git a/include/openspace/rendering/screenspacerenderable.h b/include/openspace/rendering/screenspacerenderable.h index e846f76de9..d5dfabef94 100644 --- a/include/openspace/rendering/screenspacerenderable.h +++ b/include/openspace/rendering/screenspacerenderable.h @@ -106,10 +106,8 @@ protected: properties::TriggerProperty _delete; glm::ivec2 _objectSize; - UniformCache(occlusionDepth, alpha, modelTransform, viewProj, texture) _uniformCache; + UniformCache(alpha, modelTransform, viewProj, texture) _uniformCache; std::unique_ptr _shader; - - glm::vec2 _originalViewportSize; }; } // namespace openspace diff --git a/modules/base/rendering/screenspacedashboard.cpp b/modules/base/rendering/screenspacedashboard.cpp index 9f271d350c..d86376d06f 100644 --- a/modules/base/rendering/screenspacedashboard.cpp +++ b/modules/base/rendering/screenspacedashboard.cpp @@ -212,7 +212,6 @@ void ScreenSpaceDashboard::update() { if (global::windowDelegate.windowHasResized()) { const glm::ivec2 size = global::windowDelegate.currentWindowResolution(); _size = { 0.f, 0.f, size.x, size.y }; - _originalViewportSize = size; createFramebuffer(); } } diff --git a/modules/base/rendering/screenspaceframebuffer.cpp b/modules/base/rendering/screenspaceframebuffer.cpp index 28ba4d80e0..5a94669b99 100644 --- a/modules/base/rendering/screenspaceframebuffer.cpp +++ b/modules/base/rendering/screenspaceframebuffer.cpp @@ -106,15 +106,15 @@ void ScreenSpaceFramebuffer::render() { const glm::vec2& resolution = global::windowDelegate.currentWindowResolution(); const glm::vec4& size = _size.value(); - const float xratio = _originalViewportSize.x / (size.z - size.x); - const float yratio = _originalViewportSize.y / (size.w - size.y);; + const float xratio = resolution.x / (size.z - size.x); + const float yratio = resolution.y / (size.w - size.y);; if (!_renderFunctions.empty()) { glViewport( static_cast(-size.x * xratio), static_cast(-size.y * yratio), - static_cast(_originalViewportSize.x * xratio), - static_cast(_originalViewportSize.y * yratio) + static_cast(resolution.x * xratio), + static_cast(resolution.y * yratio) ); GLint defaultFBO = _framebuffer->getActiveObject(); _framebuffer->activate(); @@ -170,14 +170,16 @@ void ScreenSpaceFramebuffer::removeAllRenderFunctions() { } void ScreenSpaceFramebuffer::createFramebuffer() { + glm::vec2 resolution = global::windowDelegate.currentWindowResolution(); + _framebuffer = std::make_unique(); _framebuffer->activate(); _texture = std::make_unique(glm::uvec3( - _originalViewportSize.x, - _originalViewportSize.y, + resolution.x, + resolution.y, 1 )); - _objectSize = glm::ivec2(_originalViewportSize); + _objectSize = glm::ivec2(resolution); _texture->uploadTexture(); _texture->setFilter(ghoul::opengl::Texture::FilterMode::LinearMipMap); diff --git a/modules/base/shaders/screenspace_fs.glsl b/modules/base/shaders/screenspace_fs.glsl index 6d4e66856c..9dc5fd70ad 100644 --- a/modules/base/shaders/screenspace_fs.glsl +++ b/modules/base/shaders/screenspace_fs.glsl @@ -29,10 +29,8 @@ in vec2 vs_st; in vec4 vs_position; uniform sampler2D texture1; -uniform float OcclusionDepth; uniform float Alpha; - Fragment getFragment() { Fragment frag; diff --git a/modules/webbrowser/src/screenspacebrowser.cpp b/modules/webbrowser/src/screenspacebrowser.cpp index 075c375f5c..965a693965 100644 --- a/modules/webbrowser/src/screenspacebrowser.cpp +++ b/modules/webbrowser/src/screenspacebrowser.cpp @@ -113,7 +113,6 @@ ScreenSpaceBrowser::ScreenSpaceBrowser(const ghoul::Dictionary &dictionary) } bool ScreenSpaceBrowser::initialize() { - _originalViewportSize = global::windowDelegate.currentWindowSize(); _renderHandler->setTexture(*_texture); createShaders(); @@ -164,7 +163,6 @@ void ScreenSpaceBrowser::update() { if (_isDimensionsDirty) { _browserInstance->reshape(_dimensions.value()); - _originalViewportSize = _dimensions.value(); _isDimensionsDirty = false; } } diff --git a/src/rendering/screenspacerenderable.cpp b/src/rendering/screenspacerenderable.cpp index 10c1b6726b..d8aa117073 100644 --- a/src/rendering/screenspacerenderable.cpp +++ b/src/rendering/screenspacerenderable.cpp @@ -42,8 +42,8 @@ namespace { constexpr const char* KeyType = "Type"; constexpr const char* KeyTag = "Tag"; - constexpr const std::array UniformNames = { - "OcclusionDepth", "Alpha", "ModelTransform", "ViewProjectionMatrix", "texture1" + constexpr const std::array UniformNames = { + "Alpha", "ModelTransform", "ViewProjectionMatrix", "texture1" }; constexpr openspace::properties::Property::PropertyInfo EnabledInfo = { @@ -451,7 +451,6 @@ bool ScreenSpaceRenderable::initialize() { } bool ScreenSpaceRenderable::initializeGL() { - _originalViewportSize = global::windowDelegate.currentWindowResolution(); createShaders(); return isReady(); } @@ -523,15 +522,9 @@ glm::mat4 ScreenSpaceRenderable::scaleMatrix() { float textureRatio = static_cast(_objectSize.y) / static_cast(_objectSize.x); - float scalingRatioX = _originalViewportSize.x / resolution.x; - float scalingRatioY = _originalViewportSize.y / resolution.y; glm::mat4 scale = glm::scale( glm::mat4(1.f), - glm::vec3( - _scale * scalingRatioX, - _scale * scalingRatioY * textureRatio, - 1.f - ) + glm::vec3(_scale, _scale * textureRatio, 1.f) ); // Simulate orthographic projection by distance to plane.