diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-08 20:33:54 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-08 21:13:32 +0300 |
commit | 7e380fd46a6f5353eceaec383c40f20bf6c1551f (patch) | |
tree | 5d16028b66ff2886752f5515dd524625a648d48e /source/blender/draw/intern | |
parent | 24aeb479be2b87d406196240c1a4c20e1688514e (diff) |
GPU: Remove GPU_INVERSE_NORMAL_MATRIX
The end goal for this is to lower the number of needed matrices.
This also cleanup some uneeded transformation.
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r-- | source/blender/draw/intern/draw_manager.h | 3 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager_data.c | 4 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 9 |
3 files changed, 1 insertions, 15 deletions
diff --git a/source/blender/draw/intern/draw_manager.h b/source/blender/draw/intern/draw_manager.h index c2d89819c58..4d74a95bf20 100644 --- a/source/blender/draw/intern/draw_manager.h +++ b/source/blender/draw/intern/draw_manager.h @@ -104,7 +104,6 @@ enum { DRW_CALL_MODELVIEWINVERSE = (1 << 2), DRW_CALL_MODELVIEWPROJECTION = (1 << 3), DRW_CALL_NORMALVIEW = (1 << 4), - DRW_CALL_NORMALVIEWINVERSE = (1 << 5), DRW_CALL_NORMALWORLD = (1 << 6), DRW_CALL_ORCOTEXFAC = (1 << 7), DRW_CALL_OBJECTINFO = (1 << 8), @@ -127,7 +126,6 @@ typedef struct DRWCallState { float modelviewinverse[4][4]; float modelviewprojection[4][4]; float normalview[3][3]; - float normalviewinverse[3][3]; float normalworld[3][3]; /* Not view dependent */ float orcotexfac[2][3]; /* Not view dependent */ float objectinfo[2]; @@ -260,7 +258,6 @@ struct DRWShadingGroup { int modelviewinverse; int modelviewprojection; int normalview; - int normalviewinverse; int normalworld; int orcotexfac; int callid; diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 003a89307b2..b7225275d72 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -838,7 +838,6 @@ static void drw_shgroup_init(DRWShadingGroup *shgroup, GPUShader *shader) shgroup->modelviewinverse = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MODELVIEW_INV); shgroup->modelviewprojection = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MVP); shgroup->normalview = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_NORMAL); - shgroup->normalviewinverse = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_NORMAL_INV); shgroup->normalworld = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_WORLDNORMAL); shgroup->orcotexfac = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_ORCO); shgroup->objectinfo = GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_OBJECT_INFO); @@ -860,9 +859,6 @@ static void drw_shgroup_init(DRWShadingGroup *shgroup, GPUShader *shader) if (shgroup->normalview > -1) { shgroup->matflag |= DRW_CALL_NORMALVIEW; } - if (shgroup->normalviewinverse > -1) { - shgroup->matflag |= DRW_CALL_NORMALVIEWINVERSE; - } if (shgroup->normalworld > -1) { shgroup->matflag |= DRW_CALL_NORMALWORLD; } diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 2c35d718f1f..f98c2cb1025 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -801,14 +801,11 @@ static void draw_matrices_model_prepare(DRWCallState *st) if (st->matflag & DRW_CALL_MODELVIEWPROJECTION) { mul_m4_m4m4(st->modelviewprojection, DST.view_data.matstate.mat[DRW_MAT_PERS], st->model); } - if (st->matflag & (DRW_CALL_NORMALVIEW | DRW_CALL_NORMALVIEWINVERSE)) { + if (st->matflag & (DRW_CALL_NORMALVIEW)) { copy_m3_m4(st->normalview, st->modelview); invert_m3(st->normalview); transpose_m3(st->normalview); } - if (st->matflag & (DRW_CALL_NORMALVIEWINVERSE)) { - invert_m3_m3(st->normalviewinverse, st->normalview); - } /* Non view dependent */ if (st->matflag & DRW_CALL_NORMALWORLD) { copy_m3_m4(st->normalworld, st->model); @@ -850,10 +847,6 @@ static void draw_geometry_prepare(DRWShadingGroup *shgroup, DRWCall *call) GPU_shader_uniform_vector( shgroup->shader, shgroup->normalview, 9, 1, (float *)state->normalview); } - if (shgroup->normalviewinverse != -1) { - GPU_shader_uniform_vector( - shgroup->shader, shgroup->normalviewinverse, 9, 1, (float *)state->normalviewinverse); - } if (shgroup->normalworld != -1) { GPU_shader_uniform_vector( shgroup->shader, shgroup->normalworld, 9, 1, (float *)state->normalworld); |