[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41968] trunk/blender/intern/cycles: Cycles: try to avoid NaN pixels with oren nayar.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Nov 18 16:39:41 CET 2011


Revision: 41968
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41968
Author:   blendix
Date:     2011-11-18 15:39:40 +0000 (Fri, 18 Nov 2011)
Log Message:
-----------
Cycles: try to avoid NaN pixels with oren nayar. Also small cmake code cleanup.

Modified Paths:
--------------
    trunk/blender/intern/cycles/CMakeLists.txt
    trunk/blender/intern/cycles/cmake/external_libs.cmake
    trunk/blender/intern/cycles/kernel/svm/bsdf_oren_nayar.h

Modified: trunk/blender/intern/cycles/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/CMakeLists.txt	2011-11-18 15:29:40 UTC (rev 41967)
+++ trunk/blender/intern/cycles/CMakeLists.txt	2011-11-18 15:39:40 UTC (rev 41968)
@@ -62,6 +62,7 @@
 
 if(WITH_CYCLES_BLENDER)
 	add_subdirectory(blender)
+	add_definitions(-DBLENDER_PLUGIN)
 endif(WITH_CYCLES_BLENDER)
 
 add_subdirectory(app)

Modified: trunk/blender/intern/cycles/cmake/external_libs.cmake
===================================================================
--- trunk/blender/intern/cycles/cmake/external_libs.cmake	2011-11-18 15:29:40 UTC (rev 41967)
+++ trunk/blender/intern/cycles/cmake/external_libs.cmake	2011-11-18 15:39:40 UTC (rev 41968)
@@ -71,21 +71,6 @@
 endif()
 
 ###########################################################################
-# Blender
-
-if(WITH_CYCLES_BLENDER)
-
-	set(BLENDER_INCLUDE_DIRS
-		${CMAKE_SOURCE_DIR}/intern/guardedalloc
-		${CMAKE_SOURCE_DIR}/source/blender/makesdna
-		${CMAKE_SOURCE_DIR}/source/blender/makesrna
-		${CMAKE_SOURCE_DIR}/source/blender/blenloader
-		${CMAKE_BINARY_DIR}/source/blender/makesrna/intern)
-
-	add_definitions(-DBLENDER_PLUGIN)
-endif()
-
-###########################################################################
 # CUDA
 
 if(WITH_CYCLES_CUDA_BINARIES)

Modified: trunk/blender/intern/cycles/kernel/svm/bsdf_oren_nayar.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/bsdf_oren_nayar.h	2011-11-18 15:29:40 UTC (rev 41967)
+++ trunk/blender/intern/cycles/kernel/svm/bsdf_oren_nayar.h	2011-11-18 15:39:40 UTC (rev 41968)
@@ -70,8 +70,8 @@
 		cos_b = nl;
 	}
 
-	float sin_a = sqrtf(1.0f - cos_a * cos_a);
-	float tan_b = sqrtf(1.0f - cos_b * cos_b) / (cos_b + FLT_MIN);
+	float sin_a = sqrtf(max(1.0f - cos_a * cos_a, 0.0f));
+	float tan_b = sqrtf(max(1.0f - cos_b * cos_b, 0.0f)) / max(cos_b, 1e-8f);
 
 	float is = nl * (sc->data0 + sc->data1 * t * sin_a * tan_b);
 	return make_float3(is, is, is);
@@ -84,8 +84,10 @@
 
 	sigma = clamp(sigma, 0.0f, 1.0f);
 
-	sc->data0 =  1.0f / ((1.0f + 0.5f * sigma) * M_PI_F);
-	sc->data1 = sigma / ((1.0f + 0.5f * sigma) * M_PI_F);
+	float div = 1.0f / ((1.0f + 0.5f * sigma) * M_PI_F);
+
+	sc->data0 =  1.0f * div;
+	sc->data1 = sigma * div;
 }
 
 __device void bsdf_oren_nayar_blur(ShaderClosure *sc, float roughness)




More information about the Bf-blender-cvs mailing list