diff --git a/assets/shaders/outline.vs b/assets/shaders/outline.vs index 6dcb3ff..e3eeb5b 100644 --- a/assets/shaders/outline.vs +++ b/assets/shaders/outline.vs @@ -8,9 +8,14 @@ out vec3 vPos; uniform mat4 model; uniform mat4 view; uniform mat4 projection; +uniform vec3 scale; void main() { - gl_Position = projection * view * model * vec4(aPos, 1.0); + float thickness = 0.4; + vec3 distFromEdge = sign(aPos) * 0.5 - aPos; + vec3 tVec = (scale * sign(aPos) * 0.5 - distFromEdge * thickness) / scale; + + gl_Position = projection * view * model * vec4(tVec, 1); vPos = aPos; } diff --git a/core/src/rendering/renderer.cpp b/core/src/rendering/renderer.cpp index 26121a2..1332ddb 100644 --- a/core/src/rendering/renderer.cpp +++ b/core/src/rendering/renderer.cpp @@ -385,9 +385,9 @@ void renderOutlines() { if (!part->selected) continue; glm::mat4 model = part->cframe; - model = glm::scale(model, (glm::vec3)part->size + glm::vec3(0.01)); + model = glm::scale(model, (glm::vec3)part->size + glm::vec3(0.2)); outlineShader->set("model", model); - outlineShader->set("scale", part->size + glm::vec3(0.01)); + outlineShader->set("scale", part->size + glm::vec3(0.1)); OUTLINE_MESH->bind(); glDrawArrays(GL_TRIANGLES, 0, OUTLINE_MESH->vertexCount);