fix(outline): make outline cling to edges rather than stretch

This commit is contained in:
maelstrom 2025-04-14 23:53:42 +02:00
parent d4a582f0a8
commit 94898b4d9d
2 changed files with 8 additions and 3 deletions

View file

@ -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;
}

View file

@ -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);