[Bf-blender-cvs] [ecee490d134] blender2.8: Eevee: Some changes to default shader.

Clément Foucault noreply at git.blender.org
Thu May 18 01:53:12 CEST 2017


Commit: ecee490d1347d7896e670fe7eeb321c8552ef61b
Author: Clément Foucault
Date:   Wed May 17 17:41:21 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBecee490d1347d7896e670fe7eeb321c8552ef61b

Eevee: Some changes to default shader.

Use old BI material prop and use a metallic approach.

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

M	release/scripts/startup/bl_ui/properties_material.py
M	source/blender/draw/engines/eevee/eevee_engine.c
M	source/blender/draw/engines/eevee/shaders/default_frag.glsl

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

diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 48f2791e99b..fb92c1b33eb 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -1135,9 +1135,11 @@ class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel):
         layout.separator()
 
         if not mat.use_nodes:
+            raym = mat.raytrace_mirror
             layout.prop(mat, "diffuse_color", text="Diffuse")
-            layout.prop(mat, "specular_color", text="Specular")
-            layout.prop(mat, "specular_hardness", text="Glossiness")
+            layout.prop(raym, "reflect_factor", text="Metallic")
+            layout.prop(mat, "specular_intensity", text="Specular")
+            layout.prop(raym, "gloss_factor", text="Roughness")
 
 
 classes = (
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index 671a438b469..a146103814c 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -620,12 +620,13 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
 					else {
 						/* Shader failed : pink color */
 						static float col[3] = {1.0f, 0.0f, 1.0f};
-						static float spec[3] = {1.0f, 0.0f, 1.0f};
-						static short hardness = 1;
+						static float half = 0.5f;
+
 						shgrp = DRW_shgroup_create(e_data.default_lit, psl->default_pass);
-						DRW_shgroup_uniform_vec3(shgrp, "diffuse_col", col, 1);
-						DRW_shgroup_uniform_vec3(shgrp, "specular_col", spec, 1);
-						DRW_shgroup_uniform_short(shgrp, "hardness", &hardness, 1);
+						DRW_shgroup_uniform_vec3(shgrp, "basecol", col, 1);
+						DRW_shgroup_uniform_float(shgrp, "metallic", &half, 1);
+						DRW_shgroup_uniform_float(shgrp, "specular", &half, 1);
+						DRW_shgroup_uniform_float(shgrp, "roughness", &half, 1);
 						DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "ltcMat", e_data.ltc_mat);
 						DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "brdfLut", e_data.brdf_lut);
 						DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "probeFiltered", txl->probe_pool);
@@ -640,9 +641,10 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
 				}
 				else {
 					DRWShadingGroup *shgrp = DRW_shgroup_create(e_data.default_lit, psl->default_pass);
-					DRW_shgroup_uniform_vec3(shgrp, "diffuse_col", &ma->r, 1);
-					DRW_shgroup_uniform_vec3(shgrp, "specular_col", &ma->specr, 1);
-					DRW_shgroup_uniform_short(shgrp, "hardness", &ma->har, 1);
+					DRW_shgroup_uniform_vec3(shgrp, "basecol", &ma->r, 1);
+					DRW_shgroup_uniform_float(shgrp, "metallic", &ma->ray_mirror, 1);
+					DRW_shgroup_uniform_float(shgrp, "specular", &ma->spec, 1);
+					DRW_shgroup_uniform_float(shgrp, "roughness", &ma->gloss_mir, 1);
 					DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "ltcMat", e_data.ltc_mat);
 					DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "brdfLut", e_data.brdf_lut);
 					DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "probeFiltered", txl->probe_pool);
diff --git a/source/blender/draw/engines/eevee/shaders/default_frag.glsl b/source/blender/draw/engines/eevee/shaders/default_frag.glsl
index 57622aa716b..a212536011b 100644
--- a/source/blender/draw/engines/eevee/shaders/default_frag.glsl
+++ b/source/blender/draw/engines/eevee/shaders/default_frag.glsl
@@ -1,13 +1,15 @@
 
-uniform vec3 diffuse_col;
-uniform vec3 specular_col;
-uniform int hardness;
+uniform vec3 basecol;
+uniform float metallic;
+uniform float specular;
+uniform float roughness;
 
 out vec4 FragColor;
 
 void main()
 {
-	float roughness = 1.0 - float(hardness) / 511.0;
-	roughness *= roughness;
-	FragColor = vec4(eevee_surface_lit(worldNormal, diffuse_col, specular_col, roughness, 1.0), 1.0);
+	vec3 dielectric = vec3(0.034) * specular * 2.0;
+	vec3 diffuse = mix(basecol, vec3(0.0), metallic);
+	vec3 f0 = mix(dielectric, basecol, metallic);
+	FragColor = vec4(eevee_surface_lit(worldNormal, diffuse, f0, roughness, 1.0), 1.0);
 }




More information about the Bf-blender-cvs mailing list