From 536ba1eb5bb3c0cad335806b498ea71c7b005c81 Mon Sep 17 00:00:00 2001 From: Malin E Date: Thu, 23 Nov 2023 14:57:17 +0100 Subject: [PATCH] Fix perform shading property bug --- modules/base/rendering/renderabletube.cpp | 13 +++++++++---- modules/base/rendering/renderabletube.h | 3 ++- modules/base/shaders/tube_fs.glsl | 6 +++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/base/rendering/renderabletube.cpp b/modules/base/rendering/renderabletube.cpp index 1a9dab3012..e235b82cfb 100644 --- a/modules/base/rendering/renderabletube.cpp +++ b/modules/base/rendering/renderabletube.cpp @@ -45,10 +45,11 @@ namespace { constexpr std::string_view _loggerCat = "RenderableTube"; constexpr int8_t CurrentMajorVersion = 0; constexpr int8_t CurrentMinorVersion = 1; - constexpr std::array UniformNames = { + constexpr std::array UniformNames = { "modelViewTransform", "projectionTransform", "normalTransform", "color", "opacity", "performShading", "nLightSources", "lightDirectionsViewSpace", - "lightIntensities" + "lightIntensities", "ambientIntensity", "diffuseIntensity", + "specularIntensity" }; constexpr openspace::properties::Property::PropertyInfo ColorInfo = { @@ -140,8 +141,8 @@ RenderableTube::Shading::Shading() : properties::PropertyOwner({ "Shading" }) , enabled(ShadingEnabledInfo, true) , ambientIntensity(AmbientIntensityInfo, 0.2f, 0.f, 1.f) - , diffuseIntensity(DiffuseIntensityInfo, 0.7f, 0.f, 1.f) - , specularIntensity(SpecularIntensityInfo, 0.f, 0.f, 1.f) + , diffuseIntensity(DiffuseIntensityInfo, 1.f, 0.f, 1.f) + , specularIntensity(SpecularIntensityInfo, 1.f, 0.f, 1.f) { addProperty(enabled); addProperty(ambientIntensity); @@ -574,6 +575,10 @@ void RenderableTube::render(const RenderData& data, RendererTasks&) { _uniformCache.lightDirectionsViewSpace, _lightDirectionsViewSpaceBuffer ); + + _shader->setUniform(_uniformCache.ambientIntensity, _shading.ambientIntensity); + _shader->setUniform(_uniformCache.diffuseIntensity, _shading.diffuseIntensity); + _shader->setUniform(_uniformCache.specularIntensity, _shading.specularIntensity); } // Render diff --git a/modules/base/rendering/renderabletube.h b/modules/base/rendering/renderabletube.h index ba2454ed83..02cb9e8013 100644 --- a/modules/base/rendering/renderabletube.h +++ b/modules/base/rendering/renderabletube.h @@ -91,7 +91,8 @@ private: UniformCache(modelViewTransform, projectionTransform, normalTransform, color, opacity, performShading, nLightSources, lightDirectionsViewSpace, - lightIntensities) _uniformCache; + lightIntensities, ambientIntensity, diffuseIntensity, + specularIntensity) _uniformCache; std::vector _lightIntensitiesBuffer; std::vector _lightDirectionsViewSpaceBuffer; diff --git a/modules/base/shaders/tube_fs.glsl b/modules/base/shaders/tube_fs.glsl index d0327525f3..5fcf7f1872 100644 --- a/modules/base/shaders/tube_fs.glsl +++ b/modules/base/shaders/tube_fs.glsl @@ -32,9 +32,9 @@ uniform vec3 color; uniform float opacity; uniform bool performShading = true; -uniform float ambientIntensity = 0.2; -uniform float diffuseIntensity = 1.0; -uniform float specularIntensity = 1.0; +uniform float ambientIntensity; +uniform float diffuseIntensity; +uniform float specularIntensity; uniform int nLightSources; uniform vec3 lightDirectionsViewSpace[8];