diff options
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl index a3ff277b714..5cee976f9a8 100644 --- a/source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/edit_mesh_vert.glsl @@ -13,6 +13,9 @@ in vec4 norAndFlag; #endif out vec4 finalColor; +#ifdef VERT +out float vertexCrease; +#endif #ifdef EDGE out vec4 finalColorOuter; #endif @@ -44,8 +47,9 @@ void main() ivec4 m_data = data & dataMask; #if defined(VERT) - finalColor = EDIT_MESH_vertex_color(m_data.y); - gl_PointSize = sizeVertex * 2.0; + vertexCrease = float(m_data.z >> 4) / 15.0; + finalColor = EDIT_MESH_vertex_color(m_data.y, vertexCrease); + gl_PointSize = sizeVertex * ((vertexCrease > 0.0) ? 3.0 : 2.0); /* Make selected and active vertex always on top. */ if ((data.x & VERT_SELECTED) != 0) { gl_Position.z -= 5e-7 * abs(gl_Position.w); @@ -65,9 +69,9 @@ void main() selectOverride = (m_data.y & EDGE_SELECTED); # endif - float crease = float(m_data.z) / 255.0; + float edge_crease = float(m_data.z & 0xF) / 15.0; float bweight = float(m_data.w) / 255.0; - finalColorOuter = EDIT_MESH_edge_color_outer(m_data.y, m_data.x, crease, bweight); + finalColorOuter = EDIT_MESH_edge_color_outer(m_data.y, m_data.x, edge_crease, bweight); if (finalColorOuter.a > 0.0) { gl_Position.z -= 5e-7 * abs(gl_Position.w); |