Commit: 2d839a08e4939d7c5a113f675cebf5cb8cd7d2bc
Author: Erik Englesson
Date:   Fri Aug 10 19:39:57 2018 +0200
Branches: gsoc-2018-many-light-sampling
https://developer.blender.org/rB2d839a08e4939d7c5a113f675cebf5cb8cd7d2bc

Cycles: Removed unused code

The simplified GGX code is no longer needed
with the new splitting heuristic and has
now been removed.

===================================================================

M       intern/cycles/kernel/closure/bsdf_microfacet.h

===================================================================

diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h 
b/intern/cycles/kernel/closure/bsdf_microfacet.h
index 369beee1d2c..2dd59354058 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet.h
@@ -391,81 +391,6 @@ ccl_device void bsdf_microfacet_ggx_blur(ShaderClosure 
*sc, float roughness)
        bsdf->alpha_y = fmaxf(roughness, bsdf->alpha_y);
 }
 
-/* TODO: Use this in the tree traversal splitting */
-ccl_device float3 bsdf_microfacet_ggx_eval_reflect_simple(const ShaderClosure 
*sc, const float3 I, const float3 omega_in)
-{
-       const MicrofacetBsdf *bsdf = (const MicrofacetBsdf*)sc;
-       float alpha_x = bsdf->alpha_x;
-       float alpha_y = bsdf->alpha_y;
-       bool m_refractive = bsdf->type == 
CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID;
-       float3 N = bsdf->N;
-
-       if(m_refractive || alpha_x*alpha_y <= 1e-7f)
-               return make_float3(0.0f, 0.0f, 0.0f);
-
-       float cosNO = dot(N, I);
-       float cosNI = dot(N, omega_in); // pass in our conservative cosine 
instead of this one?
-                                       // fresnel calcs some kind of cosine 
with I too.
-
-       if(cosNI > 0 && cosNO > 0) {
-               /* get half vector */
-               float3 m = normalize(omega_in + I);
-               float alpha2 = alpha_x * alpha_y;
-               float D, G1o, G1i;
-
-               /* assume isotropic */
-
-               /* isotropic
-                        * eq. 20: (F*G*D)/(4*in*on)
-                        * eq. 33: first we calculate D(m) */
-               float cosThetaM = dot(N, m);
-               float cosThetaM2 = cosThetaM * cosThetaM;
-               float cosThetaM4 = cosThetaM2 * cosThetaM2;
-               float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2;
-
-               /* use GTR2 */
-               D = alpha2 / (M_PI_F * cosThetaM4 * (alpha2 + tanThetaM2) * 
(alpha2 + tanThetaM2));
-
-               /* eq. 34: now calculate G1(i,m) and G1(o,m) */
-               //G1o = 2 / (1 + safe_sqrtf(1 + alpha2 * (1 - cosNO * cosNO) / 
(cosNO * cosNO)));
-               //G1i = 2 / (1 + safe_sqrtf(1 + alpha2 * (1 - cosNI * cosNI) / 
(cosNI * cosNI)));
-
-               /* Let a2=alpha2 and cos=cosNO/cosNI then the above is 
equivalent to:
-                * 2    / (    1 + sqrt(      1 + a2 * (1 - cos^2)  / cos^2 )   
    )       = /common denom/       =
-                * 2    / (    1 + sqrt( (cos^2 + a2 * (1 - cos^2)) / cos^2 )   
    )       = /factor out 1/cos^2/ =
-                * 2    / (    1 + sqrt(  cos^2 + a2 * (1 - cos^2)          ) / 
cos )       = /common denom/       =
-                * 2    / ( (cos + sqrt(  cos^2 + a2 * (1 - cos^2)          )   
    ) / cos = /move cos to num/    =
-                * 2cos / (  cos + sqrt(  cos^2 + a2 * (1 - cos^2)          )   
    )       = /rewrite sqrt/       =
-                * 2cos / (  cos + sqrt(  cos^2 * (1 - a2) + a2             )   
    )
-                * => removes one of the divisions
-                *
-                *  - Glo should contain a cosNO in its numerator but this 
cancels with
-                *    cosNO in the denomenator in eq. 20.(removes another 
division)
-                *  - There should be a cosNI in the denomenator of eq. 20 but 
I think
-                *    this has been canceled out already since there is no 
cosNI in
-                *    path_radiance_bsdf_bounce() ?
-                *  - Both Glo and Gli should contain a 2.0 in their numerators 
but they
-                *    cancel with 1/4 in eq. 20.
-                *
-                * => This code does three less divisions in total
-                *  This could potentially be used in the real GGX evaluation 
too.
-                */
-               G1o = 1.0f  / (cosNO + safe_sqrtf(cosNO * cosNO * (1.0f - 
alpha2) + alpha2));
-               G1i = cosNI / (cosNI + safe_sqrtf(cosNI * cosNI * (1.0f - 
alpha2) + alpha2));
-
-               float G = G1o * G1i;
-
-               /* eq. 20 */
-               float3 F = reflection_color(bsdf, omega_in, m);
-
-               float3 out = F * G * D;
-
-               return out;
-       }
-
-       return make_float3(0.0f, 0.0f, 0.0f);
-}
-
 ccl_device float3 bsdf_microfacet_ggx_eval_reflect(const ShaderClosure *sc, 
const float3 I, const float3 omega_in, float *pdf)
 {
        const MicrofacetBsdf *bsdf = (const MicrofacetBsdf*)sc;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to