diff options
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index ac8bef4b..6d4a06fd 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -53,7 +53,9 @@ const GLfloat backgroundMargin = 1.1f; // Margin for background (1.1f = make it const GLfloat labelMargin = 0.05f; const GLfloat backgroundBottom = 1.0f; const GLfloat gridLineWidth = 0.005f; -const GLfloat coordSpace = 2.0f; // From -1.0 to 1.0 +const GLfloat surfaceGridYOffsetValue = 0.001f; +// The second offset to opposite direction is double because same matrix is translated twice +const GLfloat surfaceGridYOffset[2] = {-surfaceGridYOffsetValue, 2.0f * surfaceGridYOffsetValue}; Surface3DRenderer::Surface3DRenderer(Surface3DController *controller) : Abstract3DRenderer(controller), @@ -614,24 +616,18 @@ void Surface3DRenderer::drawScene(GLuint defaultFboHandle) // Draw surface grid if (m_cachedSurfaceGridOn) { - // Draw the grid over the surface - glPolygonOffset(1.0f, 1.0f); - glEnable(GL_POLYGON_OFFSET_FILL); - m_surfaceGridShader->bind(); - // Set shader bindings - m_surfaceGridShader->setUniformValue(m_surfaceGridShader->model(), modelMatrix); - m_surfaceGridShader->setUniformValue(m_surfaceGridShader->MVP(), MVPMatrix); m_surfaceGridShader->setUniformValue(m_surfaceGridShader->color(), Utils::vectorFromColor(m_cachedTheme.m_gridLine)); + // Draw the grid twice, with slight offset on Y axis to each direction + for (int i = 0; i < 2; i++) { + MVPMatrix.translate(0.0f, surfaceGridYOffset[i], 0.0f); - m_drawer->drawSurfaceGrid(m_surfaceGridShader, m_surfaceObj); - + m_surfaceGridShader->setUniformValue(m_surfaceGridShader->MVP(), MVPMatrix); + m_drawer->drawSurfaceGrid(m_surfaceGridShader, m_surfaceObj); + } m_surfaceGridShader->release(); - - glPolygonOffset(0.0f, 0.0f); - glDisable(GL_POLYGON_OFFSET_FILL); } glEnable(GL_CULL_FACE); } |