[Bf-blender-cvs] [cc2755b4439] master: Revert "Cycles: Fix wrong shading on GPU when background has NaN pixels and MIS enabled"

Sergey Sharybin noreply at git.blender.org
Wed May 17 15:30:56 CEST 2017


Commit: cc2755b4439eeb9173af5cfab2f7d69a42e37b62
Author: Sergey Sharybin
Date:   Wed May 17 15:06:05 2017 +0200
Branches: master
https://developer.blender.org/rBcc2755b4439eeb9173af5cfab2f7d69a42e37b62

Revert "Cycles: Fix wrong shading on GPU when background has NaN pixels and MIS enabled"

This reverts commit 581c81901363176b1ce775472ea7c9f97ee504a9.

Seems we do need to do finite check early on, this is incoming.

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

M	intern/cycles/render/light.cpp

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

diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp
index 4886dcd563f..625dd3ded39 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/render/light.cpp
@@ -486,18 +486,10 @@ static void background_cdf(int start,
                            float2 *cond_cdf)
 {
 	/* Conditional CDFs (rows, U direction). */
-	/* NOTE: It is possible to have some NaN pixels on background
-	 * which will ruin CDF causing wrong shading. We replace such
-	 * pixels with black.
-	 */
 	for(int i = start; i < end; i++) {
 		float sin_theta = sinf(M_PI_F * (i + 0.5f) / res);
 		float3 env_color = (*pixels)[i * res];
 		float ave_luminance = average(env_color);
-		/* TODO(sergey): Consider adding average_safe(). */
-		if(!isfinite(ave_luminance)) {
-			ave_luminance = 0.0f;
-		}
 
 		cond_cdf[i * cdf_count].x = ave_luminance * sin_theta;
 		cond_cdf[i * cdf_count].y = 0.0f;
@@ -505,9 +497,6 @@ static void background_cdf(int start,
 		for(int j = 1; j < res; j++) {
 			env_color = (*pixels)[i * res + j];
 			ave_luminance = average(env_color);
-			if(!isfinite(ave_luminance)) {
-				ave_luminance = 0.0f;
-			}
 
 			cond_cdf[i * cdf_count + j].x = ave_luminance * sin_theta;
 			cond_cdf[i * cdf_count + j].y = cond_cdf[i * cdf_count + j - 1].y + cond_cdf[i * cdf_count + j - 1].x / res;




More information about the Bf-blender-cvs mailing list