[Bf-blender-cvs] [3bc8e886436] blender2.8: GPUCodegen: fix missing ViewMatrix in new shading.

Clément Foucault noreply at git.blender.org
Thu Jun 1 13:23:15 CEST 2017


Commit: 3bc8e88643667e4b5c45ca7cbe8e61934c82c702
Author: Clément Foucault
Date:   Thu Jun 1 13:22:30 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB3bc8e88643667e4b5c45ca7cbe8e61934c82c702

GPUCodegen: fix missing ViewMatrix in new shading.

===================================================================

M	source/blender/gpu/intern/gpu_codegen.c
M	source/blender/gpu/shaders/gpu_shader_material.glsl

===================================================================

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;




More information about the Bf-blender-cvs mailing list