[Bf-blender-cvs] [63d51d33050] microfacet_hair: Cleanup: formatting float
Weizhen Huang
noreply at git.blender.org
Mon Dec 19 20:22:48 CET 2022
Commit: 63d51d33050f80be08564b8432acf5994be6898e
Author: Weizhen Huang
Date: Mon Dec 19 20:22:37 2022 +0100
Branches: microfacet_hair
https://developer.blender.org/rB63d51d33050f80be08564b8432acf5994be6898e
Cleanup: formatting float
===================================================================
M intern/cycles/kernel/closure/bsdf_hair_microfacet.h
===================================================================
diff --git a/intern/cycles/kernel/closure/bsdf_hair_microfacet.h b/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
index 04d9837365e..05d9917dcd7 100644
--- a/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_hair_microfacet.h
@@ -182,8 +182,8 @@ ccl_device float3 sphg_dir(float theta, float gamma, float a, float b)
float cos_gamma = cosf(gamma);
float tan_gamma = sin_gamma / cos_gamma;
float tan_phi = b / a * tan_gamma;
- float cos_phi = 1.f / sqrtf(sqr(tan_phi) + 1.f);
- if (cos_gamma < 0.f)
+ float cos_phi = 1.0f / sqrtf(sqr(tan_phi) + 1.0f);
+ if (cos_gamma < 0.0f)
cos_phi = -cos_phi;
float sin_phi = cos_phi * tan_phi;
return make_float3(sin_phi * cos_theta, sin_theta, cos_phi * cos_theta);
@@ -217,7 +217,7 @@ ccl_device_inline float3 sample_wh(KernelGlobals kg,
/* Check micronormal/mesonormal direct visiblity from v */
ccl_device_inline bool microfacet_visible(const float3 v, const float3 m, const float3 h)
{
- return (dot(v, h) > 0.f && dot(v, m) > 0.f);
+ return (dot(v, h) > 0.0f && dot(v, m) > 0.0f);
}
/* Check micronormal/mesonormal direct visiblity from wi and wo */
@@ -237,11 +237,11 @@ ccl_device_inline float smith_g1(
/* Assume consistent orientation (can't see the back of the microfacet from the front and vice
* versa) */
float cos_vm = dot(v, m);
- if (dot(v, h) <= 0.f || cos_vm <= 0.f)
- return 0.f;
+ if (dot(v, h) <= 0.0f || cos_vm <= 0.0f)
+ return 0.0f;
return beckmann ? bsdf_beckmann_G1(roughness, cos_vm) :
- 2.f / (1.f + sqrtf(1.0f + sqr(roughness) * (1.0f / sqr(cos_vm) - 1.0f)));
+ 2.0f / (1.0f + sqrtf(1.0f + sqr(roughness) * (1.0f / sqr(cos_vm) - 1.0f)));
}
/* Smith's separable shadowing-masking approximation */
@@ -265,14 +265,15 @@ ccl_device float D(const bool beckmann, const float roughness, const float3 m, c
const float cos_theta2 = sqr(cos_theta);
if (beckmann) {
- result = expf((1.f - 1.f / cos_theta2) / roughness2) / (M_PI_F * roughness2 * sqr(cos_theta2));
+ result = expf((1.0f - 1.0f / cos_theta2) / roughness2) /
+ (M_PI_F * roughness2 * sqr(cos_theta2));
}
else { /* GGX */
- result = roughness2 / (M_PI_F * sqr(1.f + (roughness2 - 1.f) * cos_theta2));
+ result = roughness2 / (M_PI_F * sqr(1.0f + (roughness2 - 1.0f) * cos_theta2));
}
/* Prevent potential numerical issues in other stages of the model */
- return (result * cos_theta > 1e-20f) ? result : 0.f;
+ return (result * cos_theta > 1e-20f) ? result : 0.0f;
}
/* Compute fresnel reflection. Also return the dot product of the refracted ray and the normal as
@@ -282,18 +283,18 @@ ccl_device float fresnel(float cos_theta_i, float eta, ccl_private float *cos_th
kernel_assert(!isnan_safe(cos_theta_i));
/* Special cases. */
- if (eta == 1.f) {
- return 0.f;
+ if (eta == 1.0f) {
+ return 0.0f;
}
- if (cos_theta_i == 0.f) {
- return 1.f;
+ if (cos_theta_i == 0.0f) {
+ return 1.0f;
}
cos_theta_i = fabsf(cos_theta_i);
/* Using Snell's law, calculate the squared cosine of the angle between the surface normal and
* the transmitted ray. */
- float cos_theta_t_sqr = 1.f - (1.f - cos_theta_i * cos_theta_i) / (eta * eta);
+ float cos_theta_t_sqr = 1.0f - (1.0f - cos_theta_i * cos_theta_i) / (eta * eta);
*cos_theta_t = safe_sqrtf(cos_theta_t_sqr);
if (cos_theta_t_sqr <= 0) {
@@ -305,7 +306,7 @@ ccl_device float fresnel(float cos_theta_i, float eta, ccl_private float *cos_th
float a_s = (cos_theta_i - eta * (*cos_theta_t)) / (cos_theta_i + eta * (*cos_theta_t));
float a_p = (*cos_theta_t - eta * cos_theta_i) / (*cos_theta_t + eta * cos_theta_i);
- float r = .5f * (sqr(a_s) + sqr(a_p));
+ float r = 0.5f * (sqr(a_s) + sqr(a_p));
/* Adjust the sign of the transmitted direction to be relative to the surface normal. */
*cos_theta_t = -(*cos_theta_t);
@@ -333,7 +334,7 @@ ccl_device float3 bsdf_microfacet_hair_eval_r_circular(ccl_private const ShaderC
const bool analytical_ggx = (bsdf->model_type == NODE_MICROFACET_HAIR_CIRCULAR_GGX_ANALYTIC);
float3 R = zero_float3();
- if (bsdf->extra->R <= 0.f)
+ if (bsdf->extra->R <= 0.0f)
return R;
const float3 wh = normalize(wi + wo);
@@ -341,23 +342,23 @@ ccl_device float3 bsdf_microfacet_hair_eval_r_circular(ccl_private const ShaderC
/* dot(wi, wmi) > 0 */
const float tan_tilt = tanf(tilt);
- float phi_m_max1 = acosf(fmaxf(-tan_tilt * tan_theta(wi), 0.f));
+ float phi_m_max1 = acosf(fmaxf(-tan_tilt * tan_theta(wi), 0.0f));
if (isnan_safe(phi_m_max1))
return R;
const float phi_m_min1 = -phi_m_max1;
/* dot(wo, wmi) > 0 */
- const float phi_m_max2 = acosf(fmaxf(-tan_tilt * tan_theta(wo), 0.f)) + phi_o;
+ const float phi_m_max2 = acosf(fmaxf(-tan_tilt * tan_theta(wo), 0.0f)) + phi_o;
if (isnan_safe(phi_m_max2))
return R;
- const float phi_m_min2 = -phi_m_max2 + 2.f * phi_o;
+ const float phi_m_min2 = -phi_m_max2 + 2.0f * phi_o;
const float phi_m_min = fmaxf(phi_m_min1, phi_m_min2) + 1e-5f;
const float phi_m_max = fminf(phi_m_max1, phi_m_max2) - 1e-5f;
if (phi_m_min > phi_m_max)
return R;
- float integral = 0.f;
+ float integral = 0.0f;
/* analytical for ggx (no masking term) */
if (analytical_ggx) {
@@ -370,37 +371,39 @@ ccl_device float3 bsdf_microfacet_hair_eval_r_circular(ccl_private const ShaderC
const float sm = sinf(tilt);
const float cm = cosf(tilt);
- const float C = sqrtf(1.f - roughness_squared);
+ const float C = sqrtf(1.0f - roughness_squared);
const float A = cm * cos_theta(wh) * C;
const float B = sm * sin_theta(wh) * C;
const float A2 = sqr(A);
const float B2 = sqr(B);
- const float tmp1 = 1.f / sqrtf(sqr(B - 1.f) - A2);
- const float tmp2 = 1.f / sqrtf(sqr(B + 1.f) - A2);
+ const float tmp1 = 1.0f / sqrtf(sqr(B - 1.0f) - A2);
+ const float tmp2 = 1.0f / sqrtf(sqr(B + 1.0f) - A2);
const float smax = sinf(d_max);
const float cmax = cosf(d_max);
const float smin = sinf(d_min);
const float cmin = cosf(d_min);
- const float tmax = smax / (1.f + cmax);
- const float tmin = smin / (1.f + cmin);
+ const float tmax = smax / (1.0f + cmax);
+ const float tmin = smin / (1.0f + cmin);
- const float temp1 = 2.f * (A2 - B2 + 3.f * B - 2) * sqr(tmp1) * tmp1 *
- (atanf((A - B + 1.f) * tmp1 * tmax) - atanf((A - B + 1.f) * tmp1 * tmin));
- const float temp2 = 2.f * (A2 - B2 - 3.f * B - 2) * sqr(tmp2) * tmp2 *
- (atanf((B - A + 1.f) * tmp2 * tmax) - atanf((B - A + 1.f) * tmp2 * tmin));
+ const float temp1 = 2.0f * (A2 - B2 + 3.0f * B - 2) * sqr(tmp1) * tmp1 *
+ (atanf((A - B + 1.0f) * tmp1 * tmax) -
+ atanf((A - B + 1.0f) * tmp1 * tmin));
+ const float temp2 = 2.0f * (A2 - B2 - 3.0f * B - 2) * sqr(tmp2) * tmp2 *
+ (atanf((B - A + 1.0f) * tmp2 * tmax) -
+ atanf((B - A + 1.0f) * tmp2 * tmin));
const float temp3 = A * sqr(tmp1) *
- (smax / (A * cmax + B - 1.f) - smin / (A * cmin + B - 1.f));
+ (smax / (A * cmax + B - 1.0f) - smin / (A * cmin + B - 1.0f));
const float temp4 = A * sqr(tmp2) *
- (smax / (A * cmax + B + 1.f) - smin / (A * cmin + B + 1.f));
+ (smax / (A * cmax + B + 1.0f) - smin / (A * cmin + B + 1.0f));
integral = roughness_squared * M_1_PI_F * 0.5f * (temp1 + temp2 + temp3 + temp4);
}
else { /* falls back to numerical integration */
/* initial sample resolution */
- float res = roughness * .7f;
- const float scale = (phi_m_max - phi_m_min) * .5f;
+ float res = roughness * 0.7f;
+ const float scale = (phi_m_max - phi_m_min) * 0.5f;
size_t intervals = 2 * (size_t)ceilf(scale / res) + 1;
/* modified resolution based on integral domain */
@@ -412,18 +415,18 @@ ccl_device float3 bsdf_microfacet_hair_eval_r_circular(ccl_private const ShaderC
const float phi_m = phi_m_min + i * res;
const float3 wm = sph_dir(tilt, phi_m);
- if (microfacet_visible(wi, wo, make_float3(wm.x, 0.f, wm.z), wh)) {
+ if (microfacet_visible(wi, wo, make_float3(wm.x, 0.0f, wm.z), wh)) {
const float weight = (i == 0 || i == intervals - 1) ? 0.5f : (i % 2 + 1);
integral += weight * D(beckmann, roughness, wm, wh) *
G(beckmann, roughness, wi, wo, wm, wh);
}
}
- integral *= (2.f / 3.f * res);
+ integral *= (2.0f / 3.0f * res);
}
const float F = fresnel_dielectric_cos(dot(wi, wh), eta);
- R = make_float3(bsdf->extra->R * 0.125f * F * fmaxf(0.f, integral));
+ R = make_float3(bsdf->extra->R * 0.125f * F * fmaxf(0.0f, integral));
return R;
}
@@ -439,26 +442,26 @@ ccl_device float3 bsdf_microfacet_hair_eval_tt_trt_circular(KernelGlobals kg,
const float eta = bsdf->eta;
const bool beckmann = (bsdf->model_type == NODE_MICROFACET_HAIR_CIRCULAR_BECKMANN);
- if (bsdf->extra->TT <= 0.f && bsdf->extra->TRT <= 0.f)
+ if (bsdf->extra->TT <= 0.0f && bsdf->extra->TRT <= 0.0f)
return zero_float3();
/* dot(wi, wmi) > 0 */
const float tan_tilt = tanf(tilt);
- const float phi_m_max = acosf(fmaxf(-tan_tilt * tan_theta(wi), 0.f)) - 1e-3f;
+ const float phi_m_max = acosf(fmaxf(-tan_tilt * tan_theta(wi), 0.0f)) - 1e-3f;
if (isnan_safe(phi_m_max))
return zero_float3();
const float phi_m_min = -phi_m_max;
/* dot(wo, wmo) < 0 */
- float tmp1 = acosf(fminf(tan_tilt * tan_theta(wo), 0.f));
+ float tmp1 = acosf(fminf(tan_tilt * tan_theta(wo), 0.0f));
if (isnan_safe(tmp1))
return zero_float3();
const float3 mu_a = bsdf->sigma;
- const float inv_eta = 1.f / eta;
+ const float inv_eta = 1.0f / eta;
float res = roughness * .8f;
- const float scale = (phi_m_max - phi_m_min) * .5f;
+ const float scale = (phi_m_max - phi_m_min) * 0.5f;
size_t intervals = 2 * (size_t)ceilf(scale / res) + 1;
res = (phi_m_max - phi_m_min) / intervals;
@@ -480,39 +483,39 @@ ccl_device float3 bsdf_microfacet_hair_eval_tt_trt_circular(KernelGl
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list