[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41738] trunk/blender: Cycles:

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Nov 10 15:32:17 CET 2011


Revision: 41738
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41738
Author:   blendix
Date:     2011-11-10 14:32:16 +0000 (Thu, 10 Nov 2011)
Log Message:
-----------
Cycles:
* Fix excessive fireflies in Velvet BSDF (patch by David).
* Disable some unused SSE code
* Remove RTTI disabling flags for now, this is giving some compile issues and
  was only needed of OSL which we're not using yet.

Modified Paths:
--------------
    trunk/blender/build_files/scons/config/linux-config.py
    trunk/blender/build_files/scons/tools/btools.py
    trunk/blender/intern/cycles/CMakeLists.txt
    trunk/blender/intern/cycles/SConscript
    trunk/blender/intern/cycles/kernel/kernel_compat_cpu.h
    trunk/blender/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h
    trunk/blender/intern/cycles/util/util_types.h

Modified: trunk/blender/build_files/scons/config/linux-config.py
===================================================================
--- trunk/blender/build_files/scons/config/linux-config.py	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/build_files/scons/config/linux-config.py	2011-11-10 14:32:16 UTC (rev 41738)
@@ -180,6 +180,18 @@
 
 WITH_BF_CYCLES = False
 
+WITH_BF_OIIO = True
+BF_OIIO = LIBDIR + '/openimageio'
+BF_OIIO_INC = BF_OIIO + '/include'
+BF_OIIO_LIB = 'OpenImageIO'
+BF_OIIO_LIBPATH = BF_OIIO + '/lib'
+
+WITH_BF_BOOST = True
+BF_BOOST = LIBDIR + '/boost'
+BF_BOOST_INC = BF_BOOST + '/include'
+BF_BOOST_LIB = 'boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt'
+BF_BOOST_LIBPATH = BF_BOOST + '/lib'
+
 WITH_BF_OPENMP = True
 
 #Ray trace optimization

Modified: trunk/blender/build_files/scons/tools/btools.py
===================================================================
--- trunk/blender/build_files/scons/tools/btools.py	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/build_files/scons/tools/btools.py	2011-11-10 14:32:16 UTC (rev 41738)
@@ -156,7 +156,7 @@
             'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
             'BUILDBOT_BRANCH',
             'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC',
-            'WITH_BF_CYCLES',
+            'WITH_BF_CYCLES', 'WITH_BF_CYCLES_BINARIES' 'BF_CYCLES_BINARIES_ARCH',
             'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
             'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH'
             ]

Modified: trunk/blender/intern/cycles/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/CMakeLists.txt	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/intern/cycles/CMakeLists.txt	2011-11-10 14:32:16 UTC (rev 41738)
@@ -32,6 +32,9 @@
 	set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
 endif()
 
+# not needed yet, is for open shading language
+set(RTTI_DISABLE_FLAGS "")
+
 # Definitions and Includes
 
 add_definitions(${BOOST_DEFINITIONS} ${OPENIMAGEIO_DEFINITIONS})

Modified: trunk/blender/intern/cycles/SConscript
===================================================================
--- trunk/blender/intern/cycles/SConscript	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/intern/cycles/SConscript	2011-11-10 14:32:16 UTC (rev 41738)
@@ -24,11 +24,12 @@
 defs.append('WITH_CUDA')
 
 if env['OURPLATFORM'] in ('win32-mingw'):
-    cxxflags.append('-fno-rtti'.split())
     if env['WITH_BF_RAYOPTIMIZATION']:
         cxxflags.append('-ffast-math -msse -msse2 -msse3'.split())
         ccflags.append('-ffast-math -msse -msse2 -msse3'.split())
-    defs.append('BOOST_NO_RTTI BOOST_NO_TYPEID'.split())
+    # not needed yet, is for open shading language
+    # cxxflags.append('-fno-rtti'.split())
+    # defs.append('BOOST_NO_RTTI BOOST_NO_TYPEID'.split())
 
 incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split())
 incs.extend('#intern/guardedalloc #source/blender/makesrna #source/blender/makesdna'.split())

Modified: trunk/blender/intern/cycles/kernel/kernel_compat_cpu.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_compat_cpu.h	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/intern/cycles/kernel/kernel_compat_cpu.h	2011-11-10 14:32:16 UTC (rev 41738)
@@ -43,7 +43,7 @@
 		return data[index];
 	}
 
-	__m128 fetch_m128(int index)
+	/*__m128 fetch_m128(int index)
 	{
 		kernel_assert(index >= 0 && index < width);
 		return ((__m128*)data)[index];
@@ -53,7 +53,7 @@
 	{
 		kernel_assert(index >= 0 && index < width);
 		return ((__m128i*)data)[index];
-	}
+	}*/
 
 	float interp(float x)
 	{

Modified: trunk/blender/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/intern/cycles/kernel/svm/bsdf_ashikhmin_velvet.h	2011-11-10 14:32:16 UTC (rev 41738)
@@ -68,8 +68,11 @@
 		float cosNH = dot(m_N, H);
 		float cosHO = fabsf(dot(I, H));
 
+		if(!(fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f))
+			return make_float3(0, 0, 0);
+
 		float cosNHdivHO = cosNH / cosHO;
-		cosNHdivHO = fmaxf(cosNHdivHO, 0.00001f);
+		cosNHdivHO = fmaxf(cosNHdivHO, 1e-5f);
 
 		float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
 		float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@@ -86,6 +89,7 @@
 		*pdf = 0.5f * M_1_PI_F;
 		return make_float3(out, out, out);
 	}
+
 	return make_float3(0, 0, 0);
 }
 
@@ -116,31 +120,36 @@
 		float cosNH = dot(m_N, H);
 		float cosHO = fabsf(dot(sd->I, H));
 
-		float cosNHdivHO = cosNH / cosHO;
-		cosNHdivHO = fmaxf(cosNHdivHO, 0.00001f);
+		if(fabsf(cosNO) > 1e-5f && fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f) {
+			float cosNHdivHO = cosNH / cosHO;
+			cosNHdivHO = fmaxf(cosNHdivHO, 1e-5f);
 
-		float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
-		float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
+			float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
+			float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
 
-		float sinNH2 = 1 - cosNH * cosNH;
-		float sinNH4 = sinNH2 * sinNH2;
-		float cotangent2 =  (cosNH * cosNH) / sinNH2;
+			float sinNH2 = 1 - cosNH * cosNH;
+			float sinNH4 = sinNH2 * sinNH2;
+			float cotangent2 =  (cosNH * cosNH) / sinNH2;
 
-		float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * M_1_PI_F / sinNH4;
-		float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
+			float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * M_1_PI_F / sinNH4;
+			float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
 
-		float power = 0.25f * (D * G) / cosNO;
+			float power = 0.25f * (D * G) / cosNO;
 
-		*eval = make_float3(power, power, power);
+			*eval = make_float3(power, power, power);
 
 #ifdef __RAY_DIFFERENTIALS__
-		// TODO: find a better approximation for the retroreflective bounce
-		*domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx;
-		*domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy;
-		*domega_in_dx *= 125.0f;
-		*domega_in_dy *= 125.0f;
+			// TODO: find a better approximation for the retroreflective bounce
+			*domega_in_dx = (2 * dot(m_N, sd->dI.dx)) * m_N - sd->dI.dx;
+			*domega_in_dy = (2 * dot(m_N, sd->dI.dy)) * m_N - sd->dI.dy;
+			*domega_in_dx *= 125.0f;
+			*domega_in_dy *= 125.0f;
 #endif
-	} else
+		}
+		else
+			*pdf = 0.0f;
+	}
+	else
 		*pdf = 0.0f;
 
 	return LABEL_REFLECT|LABEL_DIFFUSE;

Modified: trunk/blender/intern/cycles/util/util_types.h
===================================================================
--- trunk/blender/intern/cycles/util/util_types.h	2011-11-10 14:13:32 UTC (rev 41737)
+++ trunk/blender/intern/cycles/util/util_types.h	2011-11-10 14:32:16 UTC (rev 41738)
@@ -46,12 +46,13 @@
 
 /* SIMD Types */
 
+/* not needed yet, will be for qbvh
 #ifndef __KERNEL_GPU__
 
 #include <emmintrin.h>
 #include <xmmintrin.h>
 
-#endif
+#endif*/
 
 #ifndef _WIN32
 #ifndef __KERNEL_GPU__




More information about the Bf-blender-cvs mailing list