diff --git a/ext/ghoul b/ext/ghoul index 3bc645938a..c5add410f3 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit 3bc645938a9c8a7a804ebf53e65cd374cc5bef25 +Subproject commit c5add410f3367890e2a2f91f6087001baf8f2152 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..04684b086b 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 = vec4(baseColor, 1.0); + } vec4 projectionColor = texture(projectionTexture, vs_st); if (projectionColor.a > 0.0) { textureColor.rgb = mix(