Edit Mesh: Make "fresnel effect" not transparent but mix between 2 colors
Alpha blending is causing too many issues. Revert back to something simpler.
This commit is contained in:
@@ -87,6 +87,10 @@ void DRW_globals_update(void)
|
||||
UI_GetThemeColor4fv(TH_FACE_DOT, ts.colorFaceDot);
|
||||
UI_GetThemeColor4fv(TH_BACK, ts.colorBackground);
|
||||
|
||||
/* Custom median color to slightly affect the edit mesh colors. */
|
||||
interp_v4_v4v4(ts.colorEditMeshMiddle, ts.colorVertexSelect, ts.colorWireEdit, 0.35f);
|
||||
copy_v3_fl(ts.colorEditMeshMiddle, dot_v3v3(ts.colorEditMeshMiddle, (float[3]){0.3333f, 0.3333f, 0.3333f})); /* Desaturate */
|
||||
|
||||
#ifdef WITH_FREESTYLE
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_EDGE_MARK, ts.colorEdgeFreestyle);
|
||||
UI_GetThemeColor4fv(TH_FREESTYLE_FACE_MARK, ts.colorFaceFreestyle);
|
||||
|
||||
@@ -80,6 +80,7 @@ typedef struct GlobalsUboStorage {
|
||||
float colorLampNoAlpha[4];
|
||||
|
||||
float colorBackground[4];
|
||||
float colorEditMeshMiddle[4];
|
||||
|
||||
float colorHandleFree[4];
|
||||
float colorHandleAuto[4];
|
||||
|
||||
@@ -360,12 +360,14 @@ static DRWPass *edit_mesh_create_overlay_pass(
|
||||
DRW_shgroup_uniform_vec2(*r_lverts_shgrp, "viewportSize", DRW_viewport_size_get(), 1);
|
||||
DRW_shgroup_uniform_float(*r_lverts_shgrp, "edgeScale", edge_width_scale, 1);
|
||||
DRW_shgroup_state_enable(*r_lverts_shgrp, DRW_STATE_WRITE_DEPTH);
|
||||
DRW_shgroup_state_disable(*r_lverts_shgrp, DRW_STATE_BLEND);
|
||||
|
||||
*r_verts_shgrp = DRW_shgroup_create(e_data.overlay_vert_sh, pass);
|
||||
DRW_shgroup_uniform_block(*r_verts_shgrp, "globalsBlock", globals_ubo);
|
||||
DRW_shgroup_uniform_vec2(*r_verts_shgrp, "viewportSize", DRW_viewport_size_get(), 1);
|
||||
DRW_shgroup_uniform_float(*r_verts_shgrp, "edgeScale", edge_width_scale, 1);
|
||||
DRW_shgroup_state_enable(*r_verts_shgrp, DRW_STATE_WRITE_DEPTH);
|
||||
DRW_shgroup_state_disable(*r_verts_shgrp, DRW_STATE_BLEND);
|
||||
}
|
||||
|
||||
if ((tsettings->selectmode & SCE_SELECT_FACE) != 0) {
|
||||
|
||||
@@ -36,6 +36,7 @@ layout(std140) uniform globalsBlock {
|
||||
vec4 colorLampNoAlpha;
|
||||
|
||||
vec4 colorBackground;
|
||||
vec4 colorEditMeshMiddle;
|
||||
|
||||
vec4 colorHandleFree;
|
||||
vec4 colorHandleAuto;
|
||||
|
||||
@@ -144,7 +144,7 @@ void main()
|
||||
#endif
|
||||
|
||||
#ifdef VERTEX_FACING
|
||||
FragColor.a *= 1.0 - abs(facing) * 0.4;
|
||||
FragColor.rgb = mix(colorEditMeshMiddle.rgb, FragColor.rgb, 1.0 - abs(facing) * 0.4);
|
||||
#endif
|
||||
|
||||
/* don't write depth if not opaque */
|
||||
|
||||
@@ -38,8 +38,10 @@ void main()
|
||||
? normalize(vPos.xyz)
|
||||
: vec3(0.0, 0.0, 1.0);
|
||||
float facing = dot(view_vec, view_normal);
|
||||
facing = 1.0 - abs(facing) * 0.4;
|
||||
|
||||
finalColor.a *= 1.0 - abs(facing) * 0.4;
|
||||
finalColor = mix(colorEditMeshMiddle, finalColor, facing);
|
||||
finalColor.a = 1.0;
|
||||
#endif
|
||||
|
||||
if ((data.x & VERTEX_EXISTS) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user