diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-02 17:17:05 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-02 17:45:08 +0300 |
commit | befbf7eb9b7d48113bb91c1fcf3febf439286134 (patch) | |
tree | bbc40290f879002c8a636b77451f926582d65a57 /source/blender/draw/modes/paint_vertex_mode.c | |
parent | a2b05accea6e2879832ae4ac4465ca11d49622c5 (diff) |
Vertex Paint: Use Linear colors for interpolation.
This matches Cycles and Eevee's behaviour.
Diffstat (limited to 'source/blender/draw/modes/paint_vertex_mode.c')
-rw-r--r-- | source/blender/draw/modes/paint_vertex_mode.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c index 2c963571302..a48effa4bfc 100644 --- a/source/blender/draw/modes/paint_vertex_mode.c +++ b/source/blender/draw/modes/paint_vertex_mode.c @@ -38,6 +38,8 @@ extern struct GPUUniformBuffer *globals_ubo; /* draw_common.c */ extern struct GlobalsUboStorage ts; /* draw_common.c */ +extern char datatoc_paint_vertex_vert_glsl[]; +extern char datatoc_paint_vertex_frag_glsl[]; extern char datatoc_paint_wire_vert_glsl[]; extern char datatoc_paint_wire_frag_glsl[]; extern char datatoc_common_globals_lib_glsl[]; @@ -81,17 +83,15 @@ typedef struct PAINT_VERTEX_PrivateData { static void PAINT_VERTEX_engine_init(void *UNUSED(vedata)) { if (!e_data.vcolor_face_shader) { - e_data.vcolor_face_shader = GPU_shader_get_builtin_shader(GPU_SHADER_SIMPLE_LIGHTING_SMOOTH_COLOR_ALPHA); - } + e_data.vcolor_face_shader = DRW_shader_create( + datatoc_paint_vertex_vert_glsl, NULL, + datatoc_paint_vertex_frag_glsl, NULL); - if (!e_data.wire_overlay_shader) { e_data.wire_overlay_shader = DRW_shader_create_with_lib( datatoc_paint_wire_vert_glsl, NULL, datatoc_paint_wire_frag_glsl, datatoc_common_globals_lib_glsl, "#define VERTEX_MODE\n"); - } - if (!e_data.face_overlay_shader) { e_data.face_overlay_shader = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR); } } @@ -113,13 +113,6 @@ static void PAINT_VERTEX_cache_init(void *vedata) DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS | DRW_STATE_MULTIPLY); stl->g_data->fvcolor_shgrp = DRW_shgroup_create(e_data.vcolor_face_shader, psl->vcolor_faces); - - static float light[3] = {-0.3f, 0.5f, 1.0f}; - static float alpha = 1.0f; - static float world_light = 1.0f; - DRW_shgroup_uniform_vec3(stl->g_data->fvcolor_shgrp, "light", light, 1); - DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "alpha", &alpha, 1); - DRW_shgroup_uniform_float(stl->g_data->fvcolor_shgrp, "global", &world_light, 1); } { |