diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-06-01 14:22:30 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-06-01 14:23:06 +0300 |
commit | 3bc8e88643667e4b5c45ca7cbe8e61934c82c702 (patch) | |
tree | 0fbde9eb25f3fb32a61b2dc9f67cc90aba4867ac /source | |
parent | 8c09826d58ad219b7229fcce396b967866458e99 (diff) |
GPUCodegen: fix missing ViewMatrix in new shading.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/gpu/intern/gpu_codegen.c | 6 | ||||
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_material.glsl | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c index 734474465cd..7e80021f8fc 100644 --- a/source/blender/gpu/intern/gpu_codegen.c +++ b/source/blender/gpu/intern/gpu_codegen.c @@ -624,6 +624,8 @@ static void codegen_call_functions(DynStr *ds, ListBase *nodes, GPUOutput *final else if (input->source == GPU_SOURCE_BUILTIN) { if (input->builtin == GPU_INVERSE_VIEW_MATRIX) BLI_dynstr_append(ds, "viewinv"); + else if (input->builtin == GPU_VIEW_MATRIX) + BLI_dynstr_append(ds, "viewmat"); else if (input->builtin == GPU_CAMERA_TEXCO_FACTORS) BLI_dynstr_append(ds, "camtexfac"); else if (input->builtin == GPU_OBJECT_MATRIX) @@ -697,6 +699,8 @@ static char *code_generate_fragment(ListBase *nodes, GPUOutput *output, bool use BLI_dynstr_append(ds, "void main()\n{\n"); if (use_new_shading) { + if (builtins & GPU_VIEW_MATRIX) + BLI_dynstr_append(ds, "\tmat4 viewmat = ViewMatrix;\n"); if (builtins & GPU_CAMERA_TEXCO_FACTORS) BLI_dynstr_append(ds, "\tvec4 camtexfac = CameraTexCoFactors;\n"); if (builtins & GPU_OBJECT_MATRIX) @@ -711,6 +715,8 @@ static char *code_generate_fragment(ListBase *nodes, GPUOutput *output, bool use BLI_dynstr_append(ds, "\tvec3 viewposition = viewPosition;\n"); } else { + if (builtins & GPU_VIEW_MATRIX) + BLI_dynstr_append(ds, "\tmat4 viewmat = unfviewmat;\n"); if (builtins & GPU_CAMERA_TEXCO_FACTORS) BLI_dynstr_append(ds, "\tvec4 camtexfac = unfcameratexfactors;\n"); if (builtins & GPU_OBJECT_MATRIX) diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 8c87debb132..581d00a1081 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -3,6 +3,7 @@ uniform mat4 ModelViewMatrix; #ifndef EEVEE_ENGINE uniform mat4 ProjectionMatrix; #endif +uniform mat4 ViewMatrix; uniform mat4 ModelMatrix; uniform mat4 ModelMatrixInverse; uniform mat4 ModelViewMatrixInverse; |