Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-06-01 14:22:30 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-06-01 14:23:06 +0300
commit3bc8e88643667e4b5c45ca7cbe8e61934c82c702 (patch)
tree0fbde9eb25f3fb32a61b2dc9f67cc90aba4867ac
parent8c09826d58ad219b7229fcce396b967866458e99 (diff)
GPUCodegen: fix missing ViewMatrix in new shading.
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c6
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl1
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;