diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-07-01 23:29:16 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-07-01 23:29:16 +0300 |
commit | 2002b29ecd2b8fff6f1320fa194f8d7525bf9b2e (patch) | |
tree | ee226fbed4cafce9e9d97aa1c7db9b47f4a29bda /source/blender/draw/engines/workbench/workbench_materials.c | |
parent | c2a762c8e6e529a36b0e8cff5ac9339e084829b4 (diff) |
Workbench: Combine Xray Alpha with object/material alpha ...
... instead of overiding it (previous behavior).
In practice it's not really noticeable.
This means an object with alpha will never be more opaque when enabling
xray.
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_materials.c')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_materials.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index d570fda9dac..0bbe7c978be 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -53,6 +53,7 @@ void workbench_material_update_data(WORKBENCH_PrivateData *wpd, copy_v3_fl3(data->specular_color, 0.05f, 0.05f, 0.05f); /* Dielectric: 5% reflective. */ data->metallic = 0.0f; data->roughness = 0.632455532f; /* sqrtf(0.4f); */ + data->alpha = wpd->shading.xray_alpha; if (color_type == V3D_SHADING_SINGLE_COLOR) { copy_v3_v3(data->diffuse_color, wpd->shading.single_color); @@ -72,10 +73,12 @@ void workbench_material_update_data(WORKBENCH_PrivateData *wpd, else if (ELEM(color_type, V3D_SHADING_OBJECT_COLOR, V3D_SHADING_VERTEX_COLOR)) { copy_v3_v3(data->diffuse_color, ob->color); copy_v3_v3(data->base_color, data->diffuse_color); + data->alpha *= ob->color[3]; } else { /* V3D_SHADING_MATERIAL_COLOR */ if (mat) { + data->alpha *= mat->a; if (SPECULAR_HIGHLIGHT_ENABLED(wpd)) { copy_v3_v3(data->base_color, &mat->r); mul_v3_v3fl(data->diffuse_color, &mat->r, 1.0f - mat->metallic); |