Improved mesh precision.

This commit is contained in:
Jonathas Costa
2017-11-30 12:38:30 -05:00
parent 6363fc0bb2
commit 5825a94e56
2 changed files with 9 additions and 4 deletions
@@ -416,6 +416,9 @@ void RenderableDUMeshes::renderMeshes(const RenderData&,
const glm::dmat4& projectionMatrix)
{
// Saving current OpenGL state
GLfloat lineWidth = 1.0f;
glGetFloatv(GL_LINE_WIDTH, &lineWidth);
GLboolean blendEnabled = glIsEnabled(GL_BLEND);
GLenum blendEquationRGB;
GLenum blendEquationAlpha;
@@ -455,7 +458,9 @@ void RenderableDUMeshes::renderMeshes(const RenderData&,
case Solid:
break;
case Wire:
glLineWidth(2.0);
glDrawArrays(GL_LINE_STRIP, 0, pair.second.numV);
glLineWidth(lineWidth);
break;
case Point:
glDrawArrays(GL_POINTS, 0, pair.second.numV);
@@ -542,8 +547,8 @@ void RenderableDUMeshes::render(const RenderData& data, RendererTasks&) {
glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale));
glm::dmat4 modelViewMatrix = data.camera.combinedViewMatrix() * modelMatrix;
glm::mat4 projectionMatrix = data.camera.projectionMatrix();
glm::dmat4 modelViewProjectionMatrix = glm::dmat4(projectionMatrix) * modelViewMatrix;
glm::dmat4 projectionMatrix = data.camera.projectionMatrix();
glm::dmat4 modelViewProjectionMatrix = projectionMatrix * modelViewMatrix;
glm::vec3 lookup = data.camera.lookUpVectorWorldSpace();
glm::vec3 viewDirection = data.camera.viewDirectionWorldSpace();
@@ -36,8 +36,8 @@ out float vs_screenSpaceDepth;
out vec4 vs_positionViewSpace;
void main() {
dvec4 positionViewSpace = modelViewTransform * dvec4(in_position, 1.0);
vec4 positionClipSpace = vec4(projectionTransform * positionViewSpace);
dvec4 positionViewSpace = modelViewTransform * dvec4(in_position, 1.0);
vec4 positionClipSpace = vec4(projectionTransform * positionViewSpace);
vec4 positionScreenSpace = vec4(z_normalization(positionClipSpace));
vs_screenSpaceDepth = positionScreenSpace.w;