fix(outline): make outline cling to edges rather than stretch
This commit is contained in:
parent
d4a582f0a8
commit
94898b4d9d
2 changed files with 8 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue