diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-10-22 10:48:03 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-10-22 12:33:45 +0300 |
commit | 09c9dec8ed80c310d0037240e9aa28255dff4ae0 (patch) | |
tree | bbaa966b4c7b07be1c3b82e3f0b0cd900f62b30a /src/datavisualization/engine/surface3drenderer.cpp | |
parent | 4840bfadd324f9905f52de83145415203d030a60 (diff) |
Slice view lighting fixed
Task-number: QTRD-2490
+ grid line lighting fixed
Change-Id: Ieed6b3ab52baca958b84a814093ccd1e6fa8ba71
Change-Id: Ieed6b3ab52baca958b84a814093ccd1e6fa8ba71
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 58 |
1 files changed, 14 insertions, 44 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index 7d983022..444e0c43 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -484,7 +484,7 @@ void Surface3DRenderer::drawSlicedScene() viewMatrix.lookAt(QVector3D(0.0f, 0.0f, 1.0f), zeroVector, upVector); // Set light position - lightPos = m_cachedScene->activeLight()->position(); + lightPos = QVector3D(0.0f, 0.0f, 2.0f); QMatrix4x4 projectionViewMatrix = projectionMatrix * viewMatrix; @@ -1083,6 +1083,7 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) if (m_cachedIsGridEnabled && m_heightNormalizer) { ShaderHelper *lineShader = m_backgroundShader; + // Bind line shader lineShader->bind(); @@ -1092,6 +1093,18 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) lineShader->setUniformValue(lineShader->view(), viewMatrix); lineShader->setUniformValue(lineShader->color(), lineColor); lineShader->setUniformValue(lineShader->ambientS(), m_cachedTheme.m_ambientStrength); +#if !defined(QT_OPENGL_ES_2) + if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { + // Set shadowed shader bindings + lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); + lineShader->setUniformValue(lineShader->lightS(), + m_cachedTheme.m_lightStrength / 20.0f); + } else +#endif + { + // Set shadowless shader bindings + lineShader->setUniformValue(lineShader->lightS(), m_cachedTheme.m_lightStrength / 2.5f); + } // Rows (= Z) if (m_axisCacheZ.segmentCount() > 0) { @@ -1132,19 +1145,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } @@ -1180,20 +1186,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), - adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } @@ -1240,19 +1238,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } @@ -1288,19 +1279,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } @@ -1343,19 +1327,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } @@ -1393,19 +1370,12 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) #if !defined(QT_OPENGL_ES_2) if (m_cachedShadowQuality > QDataVis::ShadowQualityNone) { // Set shadow shader bindings - lineShader->setUniformValue(lineShader->shadowQ(), m_shadowQualityToShader); lineShader->setUniformValue(lineShader->depth(), depthMVPMatrix); - lineShader->setUniformValue(lineShader->lightS(), adjustedLightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj, 0, m_depthTexture); } else #endif { - // Set shadowless shader bindings - lineShader->setUniformValue(lineShader->lightS(), - m_cachedTheme.m_lightStrength); - // Draw the object m_drawer->drawObject(lineShader, m_gridLineObj); } |