[Bf-blender-cvs] [2c7b7161f2d] soc-2022-many-lights-sampling: Fix wrong distant light bounding cone angles

Weizhen Huang noreply at git.blender.org
Mon Nov 28 18:14:01 CET 2022


Commit: 2c7b7161f2df0015b1ed63aee693983bf95d953c
Author: Weizhen Huang
Date:   Mon Nov 28 18:13:24 2022 +0100
Branches: soc-2022-many-lights-sampling
https://developer.blender.org/rB2c7b7161f2df0015b1ed63aee693983bf95d953c

Fix wrong distant light bounding cone angles

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

M	intern/cycles/kernel/light/tree.h
M	intern/cycles/scene/light_tree.cpp

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

diff --git a/intern/cycles/kernel/light/tree.h b/intern/cycles/kernel/light/tree.h
index 9b4462387c3..9ffb4c22697 100644
--- a/intern/cycles/kernel/light/tree.h
+++ b/intern/cycles/kernel/light/tree.h
@@ -259,8 +259,7 @@ ccl_device void light_tree_emitter_importance(KernelGlobals kg,
       }
       if (klight->type == LIGHT_DISTANT) {
         /* Treating it as a disk light 1 unit away */
-        cos_theta_u = fast_cosf(theta_o);
-        theta_o = 0.0f;
+        cos_theta_u = fast_cosf(kemitter->theta_e);
         max_distance = 1.0f / cos_theta_u;
       }
       else {
diff --git a/intern/cycles/scene/light_tree.cpp b/intern/cycles/scene/light_tree.cpp
index 90f5ae43260..6db2b29c4fd 100644
--- a/intern/cycles/scene/light_tree.cpp
+++ b/intern/cycles/scene/light_tree.cpp
@@ -173,8 +173,8 @@ LightTreePrimitive::LightTreePrimitive(Scene *scene, int prim_id, int object_id)
       strength *= lamp->get_average_radiance() * M_PI_F;
     }
     else if (type == LIGHT_DISTANT) {
-      bcone.theta_o = tanf(0.5f * lamp->get_angle());
-      bcone.theta_e = 0;
+      bcone.theta_o = 0;
+      bcone.theta_e = 0.5f * lamp->get_angle();
     }
 
     if (lamp->get_shader()) {



More information about the Bf-blender-cvs mailing list