[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56708] trunk/blender/intern/cycles: Cycles / Math:

Thomas Dinges blender at dingto.org
Sun May 12 16:13:29 CEST 2013


Revision: 56708
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56708
Author:   dingto
Date:     2013-05-12 14:13:29 +0000 (Sun, 12 May 2013)
Log Message:
-----------
Cycles / Math:
* Add M_2PI_F and M_4PI_F constants and use them inside the codebase. 

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_curves.cpp
    trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h
    trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h
    trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h
    trunk/blender/intern/cycles/kernel/closure/bsdf_westin.h
    trunk/blender/intern/cycles/kernel/closure/bssrdf.h
    trunk/blender/intern/cycles/kernel/kernel_light.h
    trunk/blender/intern/cycles/kernel/kernel_montecarlo.h
    trunk/blender/intern/cycles/kernel/svm/svm_closure.h
    trunk/blender/intern/cycles/kernel/svm/svm_gradient.h
    trunk/blender/intern/cycles/render/bssrdf.cpp
    trunk/blender/intern/cycles/render/camera.cpp
    trunk/blender/intern/cycles/render/light.cpp
    trunk/blender/intern/cycles/subd/subd_build.cpp
    trunk/blender/intern/cycles/util/util_math.h

Modified: trunk/blender/intern/cycles/blender/blender_curves.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_curves.cpp	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/blender/blender_curves.cpp	2013-05-12 14:13:29 UTC (rev 56708)
@@ -669,7 +669,7 @@
 					if(CData->psys_closetip[sys] && (subv == segments) && (curvekey == CData->curve_firstkey[curve] + CData->curve_keynum[curve] - 2))
 						radius = shaperadius(CData->psys_shape[sys], CData->psys_rootradius[sys], 0.0f, 0.95f);
 
-					float angle = 2 * M_PI_F / (float)resolution;
+					float angle = M_2PI_F / (float)resolution;
 					for(int section = 0 ; section < resolution; section++) {
 						float3 ickey_loc_shf = ickey_loc + radius * (cosf(angle * section) * xbasis + sinf(angle * section) * ybasis);
 						mesh->verts.push_back(ickey_loc_shf);

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_microfacet.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -157,7 +157,7 @@
 		float tanThetaM2 = alpha2 * randu / (1 - randu);
 		float cosThetaM  = 1 / safe_sqrtf(1 + tanThetaM2);
 		float sinThetaM  = cosThetaM * safe_sqrtf(tanThetaM2);
-		float phiM = 2 * M_PI_F * randv;
+		float phiM = M_2PI_F * randv;
 		float3 m = (cosf(phiM) * sinThetaM) * X +
 				 (sinf(phiM) * sinThetaM) * Y +
 							   cosThetaM  * Z;
@@ -386,7 +386,7 @@
 		}
 
 		float sinThetaM = cosThetaM * tanThetaM;
-		float phiM = 2 * M_PI_F * randv;
+		float phiM = M_2PI_F * randv;
 		float3 m = (cosf(phiM) * sinThetaM) * X +
 				 (sinf(phiM) * sinThetaM) * Y +
 							   cosThetaM  * Z;

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_phong_ramp.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -100,7 +100,7 @@
 		
 		float3 T, B;
 		make_orthonormals (R, &T, &B);
-		float phi = 2 * M_PI_F * randu;
+		float phi = M_2PI_F * randu;
 		float cosTheta = powf(randv, 1 / (m_exponent + 1));
 		float sinTheta2 = 1 - cosTheta * cosTheta;
 		float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0;

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_ward.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -75,11 +75,11 @@
 		float doty = dot(H, Y) / m_ay;
 		float dotn = dot(H, N);
 		float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn);
-		float denom = (4 * M_PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI));
+		float denom = (M_4PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI));
 		float exp_val = expf(-exp_arg);
 		float out = cosNI * exp_val / denom;
 		float oh = dot(H, I);
-		denom = 4 * M_PI_F * m_ax * m_ay * oh * dotn * dotn * dotn;
+		denom = M_4PI_F * m_ax * m_ay * oh * dotn * dotn * dotn;
 		*pdf = exp_val / denom;
 		return make_float3 (out, out, out);
 	}
@@ -134,7 +134,7 @@
 		else {
 			float val = 1 - 4 * (1 - randu);
 			float tanPhi = alphaRatio * tanf(M_PI_2_F * val);
-			// phi = 2 * M_PI_F - phi;
+			// phi = M_2PI_F - phi;
 			cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi);
 			sinPhi = -tanPhi * cosPhi;
 		}
@@ -167,10 +167,10 @@
 
 				// eq. 9
 				float exp_arg = (dotx * dotx + doty * doty) / (dotn * dotn);
-				float denom = 4 * M_PI_F * m_ax * m_ay * oh * dotn * dotn * dotn;
+				float denom = M_4PI_F * m_ax * m_ay * oh * dotn * dotn * dotn;
 				*pdf = expf(-exp_arg) / denom;
 				// compiler will reuse expressions already computed
-				denom = (4 * M_PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI));
+				denom = (M_4PI_F * m_ax * m_ay * sqrtf(cosNO * cosNI));
 				float power = cosNI * expf(-exp_arg) / denom;
 				*eval = make_float3(power, power, power);
 #ifdef __RAY_DIFFERENTIALS__

Modified: trunk/blender/intern/cycles/kernel/closure/bsdf_westin.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bsdf_westin.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/closure/bsdf_westin.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -91,7 +91,7 @@
 #endif
 		float3 T, B;
 		make_orthonormals (I, &T, &B);
-		float phi = 2 * M_PI_F * randu;
+		float phi = M_2PI_F * randu;
 		float cosTheta = powf(randv, 1 / (m_invroughness + 1));
 		float sinTheta2 = 1 - cosTheta * cosTheta;
 		float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0;

Modified: trunk/blender/intern/cycles/kernel/closure/bssrdf.h
===================================================================
--- trunk/blender/intern/cycles/kernel/closure/bssrdf.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/closure/bssrdf.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -145,7 +145,7 @@
 	Rdr = ss->zr*(1.0f + ss->sigma_tr*sr)*expf(-ss->sigma_tr*sr)/(sr*sr*sr);
 	Rdv = ss->zv*(1.0f + ss->sigma_tr*sv)*expf(-ss->sigma_tr*sv)/(sv*sv*sv);
 
-	return ss->alpha_*(1.0f/(4.0f*(float)M_PI))*(Rdr + Rdv);
+	return ss->alpha_*(1.0f/M_4PI_F)*(Rdr + Rdv);
 }
 
 CCL_NAMESPACE_END

Modified: trunk/blender/intern/cycles/kernel/kernel_light.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_light.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/kernel_light.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -106,7 +106,7 @@
 	if(sin_theta == 0.0f || denom == 0.0f)
 		*pdf = 0.0f;
 	else
-		*pdf = (cdf_u.x * cdf_v.x)/(2.0f * M_PI_F * M_PI_F * sin_theta * denom);
+		*pdf = (cdf_u.x * cdf_v.x)/(M_2PI_F * M_PI_F * sin_theta * denom);
 
 	*pdf *= kernel_data.integrator.pdf_lights;
 
@@ -140,7 +140,7 @@
 	float2 cdf_u = kernel_tex_fetch(__light_background_conditional_cdf, index_v * (res + 1) + index_u);
 	float2 cdf_v = kernel_tex_fetch(__light_background_marginal_cdf, index_v);
 
-	float pdf = (cdf_u.x * cdf_v.x)/(2.0f * M_PI_F * M_PI_F * sin_theta * denom);
+	float pdf = (cdf_u.x * cdf_v.x)/(M_2PI_F * M_PI_F * sin_theta * denom);
 
 	return pdf * kernel_data.integrator.pdf_lights;
 }
@@ -499,7 +499,7 @@
 	float gd = ((r2 - r1)/l);
 
 	/* normal currently ignores gradient */
-	ls->Ng = sinf(2 * M_PI_F * randv) * xc + cosf(2 * M_PI_F * randv) * yc;
+	ls->Ng = sinf(M_2PI_F * randv) * xc + cosf(M_2PI_F * randv) * yc;
 	ls->P = randu * l * tg + (gd * l + r1) * ls->Ng;
 	ls->object = object;
 	ls->prim = prim;

Modified: trunk/blender/intern/cycles/kernel/kernel_montecarlo.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_montecarlo.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/kernel_montecarlo.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -95,7 +95,7 @@
 {
 	float z = randu;
 	float r = sqrtf(max(0.0f, 1.0f - z*z));
-	float phi = 2.0f * M_PI_F * randv;
+	float phi = M_2PI_F * randv;
 	float x = r * cosf(phi);
 	float y = r * sinf(phi);
 
@@ -111,7 +111,7 @@
 {
 	float z = cosf(angle*randu);
 	float r = sqrtf(max(0.0f, 1.0f - z*z));
-	float phi = 2.0f * M_PI_F * randv;
+	float phi = M_2PI_F * randv;
 	float x = r * cosf(phi);
 	float y = r * sinf(phi);
 

Modified: trunk/blender/intern/cycles/kernel/svm/svm_closure.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_closure.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/svm/svm_closure.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -287,7 +287,7 @@
 				float rotation = stack_load_float(stack, data_node.w);
 
 				if(rotation != 0.0f)
-					sc->T = rotate_around_axis(sc->T, sc->N, rotation * 2.0f * M_PI_F);
+					sc->T = rotate_around_axis(sc->T, sc->N, rotation * M_2PI_F);
 
 				/* compute roughness */
 				float roughness = param1;

Modified: trunk/blender/intern/cycles/kernel/svm/svm_gradient.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_gradient.h	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/kernel/svm/svm_gradient.h	2013-05-12 14:13:29 UTC (rev 56708)
@@ -45,7 +45,7 @@
 		return (x + y)/2.0f;
 	}
 	else if(type == NODE_BLEND_RADIAL) {
-		return atan2f(y, x) / (2.0f * M_PI_F) + 0.5f;
+		return atan2f(y, x) / M_2PI_F + 0.5f;
 	}
 	else {
 		float r = fmaxf(1.0f - sqrtf(x*x + y*y + z*z), 0.0f);

Modified: trunk/blender/intern/cycles/render/bssrdf.cpp
===================================================================
--- trunk/blender/intern/cycles/render/bssrdf.cpp	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/render/bssrdf.cpp	2013-05-12 14:13:29 UTC (rev 56708)
@@ -86,7 +86,7 @@
 	/* adjust for area covered by each distance */
 	for(int i = 0; i < pdf.size(); i++) {
 		float x = (i*step)*max_radius;
-		pdf[i] *= 2*M_PI_F*x;
+		pdf[i] *= M_2PI_F*x;
 	}
 
 	/* normalize pdf, we multiply in reflectance later */

Modified: trunk/blender/intern/cycles/render/camera.cpp
===================================================================
--- trunk/blender/intern/cycles/render/camera.cpp	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/render/camera.cpp	2013-05-12 14:13:29 UTC (rev 56708)
@@ -44,7 +44,7 @@
 	panorama_type = PANORAMA_EQUIRECTANGULAR;
 	fisheye_fov = M_PI_F;
 	fisheye_lens = 10.5f;
-	fov = M_PI_F/4.0f;
+	fov = M_PI_4_F;
 
 	sensorwidth = 0.036;
 	sensorheight = 0.024;

Modified: trunk/blender/intern/cycles/render/light.cpp
===================================================================
--- trunk/blender/intern/cycles/render/light.cpp	2013-05-12 13:33:20 UTC (rev 56707)
+++ trunk/blender/intern/cycles/render/light.cpp	2013-05-12 14:13:29 UTC (rev 56708)
@@ -111,7 +111,7 @@
 
 	map_resolution = 512;
 
-	spot_angle = M_PI_F/4.0f;
+	spot_angle = M_PI_4_F;
 	spot_smooth = 0.0f;
 
 	cast_shadow = true;

Modified: trunk/blender/intern/cycles/subd/subd_build.cpp
===================================================================
--- trunk/blender/intern/cycles/subd/subd_build.cpp	2013-05-12 13:33:20 UTC (rev 56707)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list