From a775e42dee00d708ecd0725f8c04cf753b448425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 6 Oct 2022 21:14:30 +0200 Subject: DRW: Use view_clipping_distances instead of world_clip_planes_set_clip_distance No functional change. `view_clipping_distances` is prefered as it is auto masked. --- ...verlay_armature_shape_outline_vert_no_geom.glsl | 8 ++--- .../shaders/overlay_edit_mesh_vert_no_geom.glsl | 36 +++------------------- .../overlay_motion_path_line_vert_no_geom.glsl | 36 +++------------------- 3 files changed, 10 insertions(+), 70 deletions(-) (limited to 'source') diff --git a/source/blender/draw/engines/overlay/shaders/overlay_armature_shape_outline_vert_no_geom.glsl b/source/blender/draw/engines/overlay/shaders/overlay_armature_shape_outline_vert_no_geom.glsl index aee5087fc5a..87447b9d7ea 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_armature_shape_outline_vert_no_geom.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_armature_shape_outline_vert_no_geom.glsl @@ -164,9 +164,7 @@ void main() /* Improve AA bleeding inside bone silhouette. */ gl_Position.z -= (is_persp) ? 1e-4 : 1e-6; edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy; -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_calc_clip_distance(wPos[1].xyz); -#endif + view_clipping_distances(wPos[1].xyz); } else { gl_Position = pPos[2]; @@ -175,8 +173,6 @@ void main() /* Improve AA bleeding inside bone silhouette. */ gl_Position.z -= (is_persp) ? 1e-4 : 1e-6; edgeStart = edgePos = ((gl_Position.xy / gl_Position.w) * 0.5 + 0.5) * sizeViewport.xy; -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_calc_clip_distance(wPos[2].xyz); -#endif + view_clipping_distances(wPos[2].xyz); } } diff --git a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert_no_geom.glsl b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert_no_geom.glsl index 1318c91f286..64fad1c449e 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert_no_geom.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_edit_mesh_vert_no_geom.glsl @@ -143,26 +143,6 @@ void main() colorEditMeshMiddle.rgb, out_finalColor[1].rgb, facing1); #endif -#ifdef USE_WORLD_CLIP_PLANES - float out_clipdistances0[6]; - float out_clipdistances1[6]; - vec4 clip_pos0 = vec4(world_pos0, 1.0); - out_clipdistances0[0] = dot(WorldClipPlanes[0], clip_pos0); - out_clipdistances0[1] = dot(WorldClipPlanes[1], clip_pos0); - out_clipdistances0[2] = dot(WorldClipPlanes[2], clip_pos0); - out_clipdistances0[3] = dot(WorldClipPlanes[3], clip_pos0); - out_clipdistances0[4] = dot(WorldClipPlanes[4], clip_pos0); - out_clipdistances0[5] = dot(WorldClipPlanes[5], clip_pos0); - - vec4 clip_pos1 = vec4(world_pos1, 1.0); - out_clipdistances1[0] = dot(WorldClipPlanes[0], clip_pos1); - out_clipdistances1[1] = dot(WorldClipPlanes[1], clip_pos1); - out_clipdistances1[2] = dot(WorldClipPlanes[2], clip_pos1); - out_clipdistances1[3] = dot(WorldClipPlanes[3], clip_pos1); - out_clipdistances1[4] = dot(WorldClipPlanes[4], clip_pos1); - out_clipdistances1[5] = dot(WorldClipPlanes[5], clip_pos1); -#endif - // -------- GEOM SHADER ALTERNATIVE ----------- // vec2 ss_pos[2]; @@ -210,27 +190,19 @@ void main() /* Output specific Vertex data depending on quad_vertex_id. */ if (quad_vertex_id == 0) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_clipdistances0); -#endif + view_clipping_distances(world_pos0); do_vertex(out_finalColor[0], pos0, half_size, edge_ofs.xy); } else if (quad_vertex_id == 1 || quad_vertex_id == 3) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_clipdistances0); -#endif + view_clipping_distances(world_pos0); do_vertex(out_finalColor[0], pos0, -half_size, -edge_ofs.xy); } else if (quad_vertex_id == 2 || quad_vertex_id == 5) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_clipdistances1); -#endif + view_clipping_distances(world_pos1); do_vertex(final_color, pos1, half_size, edge_ofs.xy); } else if (quad_vertex_id == 4) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_clipdistances1); -#endif + view_clipping_distances(world_pos1); do_vertex(final_color, pos1, -half_size, -edge_ofs.xy); } } diff --git a/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert_no_geom.glsl b/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert_no_geom.glsl index 3272a9fa2ce..9b6591cc543 100644 --- a/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert_no_geom.glsl +++ b/source/blender/draw/engines/overlay/shaders/overlay_motion_path_line_vert_no_geom.glsl @@ -120,26 +120,6 @@ void main() do_vertex_shader(out_pos0, base_vertex_id, ssPos[0], finalColor_geom[0]); do_vertex_shader(out_pos1, base_vertex_id + 1, ssPos[0], finalColor_geom[0]); - /* Calculate Vertex Clip distances. */ -#ifdef USE_WORLD_CLIP_PLANES - float out_ClipDistance0[6]; - - out_ClipDistance0[0] = dot(clipPlanes[0], out_pos0); - out_ClipDistance0[1] = dot(clipPlanes[1], out_pos0); - out_ClipDistance0[2] = dot(clipPlanes[2], out_pos0); - out_ClipDistance0[3] = dot(clipPlanes[3], out_pos0); - out_ClipDistance0[4] = dot(clipPlanes[4], out_pos0); - out_ClipDistance0[5] = dot(clipPlanes[5], out_pos0); - - float out_ClipDistance1[6]; - out_ClipDistance1[0] = dot(clipPlanes[0], out_pos1); - out_ClipDistance1[1] = dot(clipPlanes[1], out_pos1); - out_ClipDistance1[2] = dot(clipPlanes[2], out_pos1); - out_ClipDistance1[3] = dot(clipPlanes[3], out_pos1); - out_ClipDistance1[4] = dot(clipPlanes[4], out_pos1); - out_ClipDistance1[5] = dot(clipPlanes[5], out_pos1); -#endif - /* Geometry shader alternative -- Output is trianglelist consisting of 6 vertices. * Each vertex shader invocation is one vertex in the output primitive, so outptut * required ID. */ @@ -150,36 +130,28 @@ void main() float line_size = float(lineThickness) * sizePixel; if (quad_vertex_id == 0) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_ClipDistance0); -#endif + view_clipping_distances(out_pos0); interp.color = finalColor_geom[0]; t = edge_dir * (line_size * (is_persp ? out_pos0.w : 1.0)); gl_Position = out_pos0 + vec4(t, 0.0, 0.0); } else if (quad_vertex_id == 1 || quad_vertex_id == 3) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_ClipDistance0); -#endif + view_clipping_distances(out_pos0); interp.color = finalColor_geom[0]; t = edge_dir * (line_size * (is_persp ? out_pos0.w : 1.0)); gl_Position = out_pos0 - vec4(t, 0.0, 0.0); } else if (quad_vertex_id == 2 || quad_vertex_id == 5) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_ClipDistance1); -#endif + view_clipping_distances(out_pos1); interp.color = finalColor_geom[1]; t = edge_dir * (line_size * (is_persp ? out_pos1.w : 1.0)); gl_Position = out_pos1 + vec4(t, 0.0, 0.0); } else if (quad_vertex_id == 4) { -#ifdef USE_WORLD_CLIP_PLANES - world_clip_planes_set_clip_distance(out_ClipDistance1); -#endif + view_clipping_distances(out_pos1); interp.color = finalColor_geom[1]; t = edge_dir * (line_size * (is_persp ? out_pos1.w : 1.0)); -- cgit v1.2.3