[Bf-blender-cvs] [50bab7eb8a6] blender2.8: Workbench: Studio light better diffuse sampling

Jeroen Bakker noreply at git.blender.org
Mon May 14 10:05:22 CEST 2018


Commit: 50bab7eb8a6fce58a6cd1dc52b4f29454d8b4c36
Author: Jeroen Bakker
Date:   Mon May 14 10:04:34 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB50bab7eb8a6fce58a6cd1dc52b4f29454d8b4c36

Workbench: Studio light better diffuse sampling

Increased steps of diffuse sampling for narrow hightlights

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

M	source/blender/blenkernel/intern/studiolight.c

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

diff --git a/source/blender/blenkernel/intern/studiolight.c b/source/blender/blenkernel/intern/studiolight.c
index c5d2903e7cc..f0db054620a 100644
--- a/source/blender/blenkernel/intern/studiolight.c
+++ b/source/blender/blenkernel/intern/studiolight.c
@@ -53,6 +53,7 @@
 /* Statics */
 static ListBase studiolights;
 #define STUDIO_LIGHT_EXTENSIONS ".jpg", ".hdr"
+#define STUDIO_LIGHT_DIFFUSE_SAMPLE_STEP 64
 static const char *STUDIO_LIGHT_FOLDER = "studiolights/";
 
 /* FUNCTIONS */
@@ -78,8 +79,9 @@ static void direction_to_equirectangular(float r[2], const float dir[3])
 	r[1] = (acosf(dir[2] / 1.0) - M_PI) / -M_PI;
 }
 
-static void studiolight_calculate_directional_diffuse_light(ImBuf *ibuf, float color[4], const float start[3], const float v1[3], const float v2[3], int steps)
+static void studiolight_calculate_directional_diffuse_light(ImBuf *ibuf, float color[4], const float start[3], const float v1[3], const float v2[3])
 {
+	const int steps = STUDIO_LIGHT_DIFFUSE_SAMPLE_STEP;
 	float uv[2];
 	float dir[3];
 	float col[4];
@@ -111,7 +113,6 @@ static void studiolight_calculate_directional_diffuse_light(ImBuf *ibuf, float c
 
 static void studiolight_calculate_diffuse_light(StudioLight *sl)
 {
-	const int steps = 16;
 	float start[3];
 	float v1[3];
 	float v2[3];
@@ -133,23 +134,23 @@ static void studiolight_calculate_diffuse_light(StudioLight *sl)
 			copy_v3_fl3(start, -1.0f, -1.0f, -1.0f);
 			copy_v3_fl3(v1, 0.0f, 2.0f, 0.0f);
 			copy_v3_fl3(v2, 0.0f, 0.0f, 2.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Z_NEG], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Z_NEG], start, v1, v2);
 			copy_v3_fl3(start, 1.0f, -1.0f, -1.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Z_POS], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Z_POS], start, v1, v2);
 
 			copy_v3_fl3(start, -1.0f, -1.0f, -1.0f);
 			copy_v3_fl3(v1, 2.0f, 0.0f, 0.0f);
 			copy_v3_fl3(v2, 0.0f, 0.0f, 2.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_X_POS], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_X_POS], start, v1, v2);
 			copy_v3_fl3(start, -1.0f, 1.0f, -1.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_X_NEG], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_X_NEG], start, v1, v2);
 
 			copy_v3_fl3(start, -1.0f, -1.0f, -1.0f);
 			copy_v3_fl3(v1, 2.0f, 0.0f, 0.0f);
 			copy_v3_fl3(v2, 0.0f, 2.0f, 0.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Y_NEG], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Y_NEG], start, v1, v2);
 			copy_v3_fl3(start, -1.0f, -1.0f, 1.0f);
-			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Y_POS], start, v1, v2, steps);
+			studiolight_calculate_directional_diffuse_light(ibuf, sl->diffuse_light[STUDIOLIGHT_Y_POS], start, v1, v2);
 
 			IMB_freeImBuf(ibuf);
 		}



More information about the Bf-blender-cvs mailing list