From 7aafe395830e9ff672bc6c25f0606df77390950f Mon Sep 17 00:00:00 2001 From: Malin Ejdbo Date: Mon, 28 Jun 2021 15:28:08 +0200 Subject: [PATCH] Add base texture or color to ModelProjection --- ext/ghoul | 2 +- .../rendering/renderablemodelprojection.cpp | 4 ++-- .../shaders/renderableModel_fs.glsl | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ext/ghoul b/ext/ghoul index c3c9b88e52..07b79ab570 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit c3c9b88e524228fb8613c310605cc2126ed9c5bd +Subproject commit 07b79ab57062077b624e190a109ff749fb242181 diff --git a/modules/spacecraftinstruments/rendering/renderablemodelprojection.cpp b/modules/spacecraftinstruments/rendering/renderablemodelprojection.cpp index aa54052e7c..d165d8da9e 100644 --- a/modules/spacecraftinstruments/rendering/renderablemodelprojection.cpp +++ b/modules/spacecraftinstruments/rendering/renderablemodelprojection.cpp @@ -344,7 +344,7 @@ void RenderableModelProjection::imageProjectGPU( _transform ); - _geometry->render(*_fboProgramObject, false); + _geometry->render(*_fboProgramObject, false, true); _depthFboProgramObject->deactivate(); _projectionComponent.depthMapRenderEnd(); @@ -374,7 +374,7 @@ void RenderableModelProjection::imageProjectGPU( _fboProgramObject->setUniform(_fboUniformCache.ModelTransform, _transform); _fboProgramObject->setUniform(_fboUniformCache.boresight, _boresight); - _geometry->render(*_fboProgramObject, false); + _geometry->render(*_fboProgramObject, false, true); _fboProgramObject->deactivate(); _projectionComponent.imageProjectEnd(); diff --git a/modules/spacecraftinstruments/shaders/renderableModel_fs.glsl b/modules/spacecraftinstruments/shaders/renderableModel_fs.glsl index 7e8b2e1f55..4b993d0366 100644 --- a/modules/spacecraftinstruments/shaders/renderableModel_fs.glsl +++ b/modules/spacecraftinstruments/shaders/renderableModel_fs.glsl @@ -30,7 +30,9 @@ in vec3 vs_normalViewSpace; in float vs_depth; in vec4 vs_positionCameraSpace; +uniform bool has_texture_diffuse; uniform sampler2D baseTexture; +uniform vec3 baseColor; uniform sampler2D projectionTexture; uniform bool performShading; uniform float projectionFading; @@ -44,7 +46,13 @@ const float specularIntensity = 0.0; const float specularPower = 100.0; Fragment getFragment() { - vec4 textureColor = texture(baseTexture, vs_st); + vec4 textureColor; + if (has_texture_diffuse) { + textureColor = texture(baseTexture, vs_st); + } + else { + textureColor.rgb = baseColor; + } vec4 projectionColor = texture(projectionTexture, vs_st); if (projectionColor.a > 0.0) { textureColor.rgb = mix(