From dd98cef9746d96192a184c990dfa4f5c357c4111 Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Sun, 7 Feb 2016 20:37:11 +0100 Subject: [PATCH] Enable the RenderableShadowCylinder's color to be set via properties --- modules/newhorizons/rendering/renderableshadowcylinder.cpp | 4 ++++ modules/newhorizons/rendering/renderableshadowcylinder.h | 1 + modules/newhorizons/shaders/terminatorshadow_vs.glsl | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.cpp b/modules/newhorizons/rendering/renderableshadowcylinder.cpp index 3c1cb56fa7..a6aa0bb07f 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.cpp +++ b/modules/newhorizons/rendering/renderableshadowcylinder.cpp @@ -52,12 +52,15 @@ namespace openspace { : Renderable(dictionary) , _numberOfPoints("amountOfPoints", "Points", 190, 1, 300) , _shadowLength("shadowLength", "Shadow Length", 0.1, 0.0, 0.5) + , _shadowColor("shadowColor", "Shadow Color", + glm::vec4(1.f, 1.f, 1.f, 0.25f), glm::vec4(0.f), glm::vec4(1.f)) , _shader(nullptr) , _vao(0) , _vbo(0) { addProperty(_numberOfPoints); addProperty(_shadowLength); + addProperty(_shadowColor); bool success = dictionary.getValue(_keyType, _terminatorType); ghoul_assert(success, ""); @@ -132,6 +135,7 @@ void RenderableShadowCylinder::render(const RenderData& data){ _shader->setUniform("ViewProjection", data.camera.viewProjectionMatrix()); _shader->setUniform("ModelTransform", _transform); + _shader->setUniform("shadowColor", _shadowColor); setPscUniforms(_shader.get(), &data.camera, data.position); glBindVertexArray(_vao); diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.h b/modules/newhorizons/rendering/renderableshadowcylinder.h index 3351ce3978..044579ac28 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.h +++ b/modules/newhorizons/rendering/renderableshadowcylinder.h @@ -72,6 +72,7 @@ namespace openspace { void createCylinder(); properties::IntProperty _numberOfPoints; properties::FloatProperty _shadowLength; + properties::Vec4Property _shadowColor; std::unique_ptr _shader; diff --git a/modules/newhorizons/shaders/terminatorshadow_vs.glsl b/modules/newhorizons/shaders/terminatorshadow_vs.glsl index 24e1bc1368..1ef34780d1 100644 --- a/modules/newhorizons/shaders/terminatorshadow_vs.glsl +++ b/modules/newhorizons/shaders/terminatorshadow_vs.glsl @@ -37,6 +37,7 @@ out vec4 vs_color; //out float fade; uniform uint nVertices; +uniform vec4 shadowColor; //uniform float lineFade; #include "PowerScaling/powerScaling_vs.hglsl" @@ -46,7 +47,7 @@ void main() { //fade = 1.0 - id; if(mod(gl_VertexID,2) == 0.f){ - vs_color = vec4(1,1,1,0.5); + vs_color = shadowColor; }else{ vs_color = vec4(0); }