From e321fc4a7c8f93d5ffee50d107430df04b612e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Sun, 10 Jun 2018 17:31:28 +0200 Subject: Workbench: Xray: Make nearest surfaces more clear By using equation 7 from the paper, we make the surfaces nearest to the viewpoint appear more "opaque". This gives better sense of ordering than the previous weighting function that was really not doing anything. --- source/blender/draw/engines/workbench/workbench_forward.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/draw/engines/workbench/workbench_forward.c') diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index fb949cd02c9..4e97fc730a3 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -172,6 +172,7 @@ static WORKBENCH_MaterialData *get_or_create_material_data( psl->transparent_accum_pass); DRW_shgroup_uniform_block(grp, "world_block", wpd->world_ubo); DRW_shgroup_uniform_float(grp, "alpha", &wpd->shading.xray_alpha, 1); + DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)wpd->viewvecs, 3); workbench_material_set_normal_world_matrix(grp, wpd, e_data.normal_world_matrix); material->object_id = engine_object_data->object_id; copy_v4_v4(material->material_data.diffuse_color, material_template.material_data.diffuse_color); @@ -185,7 +186,6 @@ static WORKBENCH_MaterialData *get_or_create_material_data( DRW_shgroup_uniform_texture(grp, "matcapImage", wpd->studio_light->equirectangular_radiance_gputexture); } if (SPECULAR_HIGHLIGHT_ENABLED(wpd) || MATCAP_ENABLED(wpd)) { - DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)wpd->viewvecs, 3); DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1); } break; -- cgit v1.2.3