[Bf-blender-cvs] [00a58851367] blender2.8: Eevee: Refactor shaders defines
Clément Foucault
noreply at git.blender.org
Thu May 18 01:53:15 CEST 2017
Commit: 00a5885136702a5af51e4f446b82fa5d70654286
Author: Clément Foucault
Date: Wed May 17 19:40:21 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB00a5885136702a5af51e4f446b82fa5d70654286
Eevee: Refactor shaders defines
===================================================================
M source/blender/draw/engines/eevee/eevee_engine.c
M source/blender/gpu/shaders/gpu_shader_material.glsl
===================================================================
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index a146103814c..783ac87e608 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -39,6 +39,17 @@
#define EEVEE_ENGINE "BLENDER_EEVEE"
+#define STR_HELPER(x) #x
+#define STR(x) STR_HELPER(x)
+
+#define SHADER_DEFINES \
+ "#define EEVEE_ENGINE\n" \
+ "#define MAX_LIGHT " STR(MAX_LIGHT) "\n" \
+ "#define MAX_SHADOW_CUBE " STR(MAX_SHADOW_CUBE) "\n" \
+ "#define MAX_SHADOW_MAP " STR(MAX_SHADOW_MAP) "\n" \
+ "#define MAX_SHADOW_CASCADE " STR(MAX_SHADOW_CASCADE) "\n" \
+ "#define MAX_CASCADE_NUM " STR(MAX_CASCADE_NUM) "\n"
+
/* *********** STATIC *********** */
static struct {
char *frag_shader_lib;
@@ -243,12 +254,7 @@ static void EEVEE_engine_init(void *ved)
BLI_dynstr_free(ds_frag);
e_data.default_lit = DRW_shader_create(
- datatoc_lit_surface_vert_glsl, NULL, frag_str,
- "#define MAX_LIGHT 128\n"
- "#define MAX_SHADOW_CUBE 42\n"
- "#define MAX_SHADOW_MAP 64\n"
- "#define MAX_SHADOW_CASCADE 8\n"
- "#define MAX_CASCADE_NUM 4\n");
+ datatoc_lit_surface_vert_glsl, NULL, frag_str, SHADER_DEFINES "#define MESH_SHADER\n");
MEM_freeN(frag_str);
}
@@ -404,12 +410,7 @@ static void EEVEE_cache_init(void *vedata)
struct GPUMaterial *gpumat = GPU_material_from_nodetree(
scene, wo->nodetree, &wo->gpumaterial, &DRW_engine_viewport_eevee_type, 0,
datatoc_probe_vert_glsl, datatoc_probe_geom_glsl, e_data.frag_shader_lib,
- "#define PROBE_CAPTURE\n"
- "#define MAX_LIGHT 128\n"
- "#define MAX_SHADOW_CUBE 42\n"
- "#define MAX_SHADOW_MAP 64\n"
- "#define MAX_SHADOW_CASCADE 8\n"
- "#define MAX_CASCADE_NUM 4\n");
+ SHADER_DEFINES "#define PROBE_CAPTURE\n");
grp = DRW_shgroup_material_instance_create(gpumat, psl->probe_background, geom);
@@ -453,12 +454,7 @@ static void EEVEE_cache_init(void *vedata)
struct GPUMaterial *gpumat = GPU_material_from_nodetree(
scene, wo->nodetree, &wo->gpumaterial, &DRW_engine_viewport_eevee_type, 1,
datatoc_background_vert_glsl, NULL, e_data.frag_shader_lib,
- "#define WORLD_BACKGROUND\n"
- "#define MAX_LIGHT 128\n"
- "#define MAX_SHADOW_CUBE 42\n"
- "#define MAX_SHADOW_MAP 64\n"
- "#define MAX_SHADOW_CASCADE 8\n"
- "#define MAX_CASCADE_NUM 4\n");
+ SHADER_DEFINES "#define WORLD_BACKGROUND\n");
grp = DRW_shgroup_material_create(gpumat, psl->background_pass);
@@ -591,12 +587,7 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
struct GPUMaterial *gpumat = GPU_material_from_nodetree(
scene, ma->nodetree, &ma->gpumaterial, &DRW_engine_viewport_eevee_type, 0,
datatoc_lit_surface_vert_glsl, NULL, e_data.frag_shader_lib,
- "#define PROBE_CAPTURE\n"
- "#define MAX_LIGHT 128\n"
- "#define MAX_SHADOW_CUBE 42\n"
- "#define MAX_SHADOW_MAP 64\n"
- "#define MAX_SHADOW_CASCADE 8\n"
- "#define MAX_CASCADE_NUM 4\n");
+ SHADER_DEFINES "#define MESH_SHADER\n");
DRWShadingGroup *shgrp = DRW_shgroup_material_create(gpumat, psl->material_pass);
if (shgrp) {
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index b74dd857e41..eebfb738e44 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -1,10 +1,8 @@
uniform mat4 ModelViewMatrix;
-#ifndef PROBE_CAPTURE
-#ifndef WORLD_BACKGROUND
+#ifndef EEVEE_ENGINE
uniform mat4 ProjectionMatrix;
#endif
-#endif
uniform mat4 ModelMatrixInverse;
uniform mat4 ModelViewMatrixInverse;
uniform mat4 ViewMatrixInverse;
@@ -2998,7 +2996,7 @@ void node_tex_coord_background(
reflection = -coords;
}
-#if defined(WORLD_BACKGROUND) || defined(PROBE_CAPTURE)
+#if defined(WORLD_BACKGROUND) || (defined(PROBE_CAPTURE) && !defined(MESH_SHADER))
#define node_tex_coord node_tex_coord_background
#endif
@@ -3889,7 +3887,7 @@ void convert_metallic_to_specular(vec4 basecol, float metallic, float specular_f
/* TODO : clean this ifdef mess */
/* EEVEE output */
-#ifdef PROBE_CAPTURE
+#ifdef EEVEE_ENGINE
void world_normals_get(out vec3 N)
{
N = gl_FrontFacing ? worldNormal : -worldNormal;
More information about the Bf-blender-cvs
mailing list