Cycles / OSL:
authorThomas Dinges <blender@dingto.org>
Mon, 4 Jun 2012 19:00:13 +0000 (19:00 +0000)
committerThomas Dinges <blender@dingto.org>
Mon, 4 Jun 2012 19:00:13 +0000 (19:00 +0000)
* __OSL__ is now defined for CPU when building with OSL.

* First batch of compile fixes, remove some unneeded std namespace declarations and added missing includes.

intern/cycles/kernel/kernel_types.h
intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp
intern/cycles/kernel/osl/bsdf_diffuse.cpp
intern/cycles/kernel/osl/bsdf_oren_nayar.cpp

index d119057ac6736ae012cad272e565dc26bd7b73c4..4fd57a5f2b371b581456ea3adadbc563eee6f3db 100644 (file)
@@ -39,6 +39,9 @@ CCL_NAMESPACE_BEGIN
 #ifdef __KERNEL_CPU__
 #define __KERNEL_SHADING__
 #define __KERNEL_ADV_SHADING__
+#ifdef WITH_OSL
+#define __OSL__
+#endif
 #endif
 
 #ifdef __KERNEL_CUDA__
@@ -107,7 +110,6 @@ CCL_NAMESPACE_BEGIN
 #endif
 
 //#define __MULTI_LIGHT__
-//#define __OSL__
 //#define __SOBOL_FULL_SCREEN__
 //#define __QBVH__
 
index a38c5b55cf50f216d1b816f2b2fb025381241f08..808837bf2117050a384d6ce1ccefce042a8a30a3 100644 (file)
@@ -36,6 +36,8 @@
 
 #include "osl_closures.h"
 
+#include "util_math.h"
+
 CCL_NAMESPACE_BEGIN
 
 using namespace OSL;
@@ -50,7 +52,7 @@ public:
 
     void setup()
     {
-        m_sigma = std::max(m_sigma, 0.01f);
+        m_sigma = max(m_sigma, 0.01f);
         m_invsigma2 = 1.0f/(m_sigma * m_sigma);
     }
 
@@ -89,7 +91,7 @@ public:
             float cosHO = fabsf(omega_out.dot(H));
 
             float cosNHdivHO = cosNH / cosHO;
-            cosNHdivHO = std::max(cosNHdivHO, 0.00001f);
+            cosNHdivHO = max(cosNHdivHO, 0.00001f);
 
             float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
             float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@@ -99,7 +101,7 @@ public:
             float cotangent2 =  (cosNH * cosNH) / sinNH2; 
 
             float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4;
-            float G = std::min(1.0f, std::min(fac1, fac2)); // TODO: derive G from D analytically
+            float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
 
             float out = 0.25f * (D * G) / cosNO;
 
@@ -133,7 +135,7 @@ public:
             float cosHO = fabsf(omega_out.dot(H));
 
             float cosNHdivHO = cosNH / cosHO;
-            cosNHdivHO = std::max(cosNHdivHO, 0.00001f);
+            cosNHdivHO = max(cosNHdivHO, 0.00001f);
 
             float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
             float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@@ -143,7 +145,7 @@ public:
             float cotangent2 =  (cosNH * cosNH) / sinNH2; 
 
             float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4;
-            float G = std::min(1.0f, std::min(fac1, fac2)); // TODO: derive G from D analytically
+            float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
 
             float power = 0.25f * (D * G) / cosNO;
 
index 0d4b3fa471ff7f6bc8990aa735d0444d3527712f..352e75f73c99425f6a7bb434483d6b957958f32a 100644 (file)
@@ -36,6 +36,8 @@
 
 #include "osl_closures.h"
 
+#include "util_math.h"
+
 CCL_NAMESPACE_BEGIN
 
 using namespace OSL;
@@ -69,7 +71,7 @@ public:
 
     Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
     {
-        float cos_pi = std::max(m_N.dot(omega_in),0.0f) * (float) M_1_PI;
+        float cos_pi = max(m_N.dot(omega_in),0.0f) * (float) M_1_PI;
         pdf = cos_pi;
         return Color3 (cos_pi, cos_pi, cos_pi);
     }
@@ -137,7 +139,7 @@ public:
 
     Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
     {
-        float cos_pi = std::max(-m_N.dot(omega_in), 0.0f) * (float) M_1_PI;
+        float cos_pi = max(-m_N.dot(omega_in), 0.0f) * (float) M_1_PI;
         pdf = cos_pi;
         return Color3 (cos_pi, cos_pi, cos_pi);
     }
index 5d2ca909f93d674725d814ef95d30c414e9eb5c9..dd6c59d98c2057a4a49eb6a50a7e687ebc4e8414 100644 (file)
@@ -19,6 +19,7 @@
 #include <OpenImageIO/fmath.h>
 #include <OSL/genclosure.h>
 #include "osl_closures.h"
+#include "util_math.h"
 
 CCL_NAMESPACE_BEGIN
 
@@ -118,7 +119,7 @@ private:
                float t = l.dot(v) - nl * nv;
                
                if(t > 0.0f) {
-                       t /= max(nl, vl) + 1e-8f;
+                       t /= max(nl, nv) + 1e-8f;
                }
                return nl * (m_a + m_b * t);
        }