diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-06-10 18:31:28 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-06-10 21:06:26 +0300 |
commit | e321fc4a7c8f93d5ffee50d107430df04b612e23 (patch) | |
tree | c37adfff35d88c654926aae1bc49abcec0824d9e /source/blender/draw/engines/workbench/workbench_forward.c | |
parent | 15862e199087dec07b784d9af7aa23cdbbdcaff2 (diff) |
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.
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_forward.c')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_forward.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; |