Commit: e9918d67e2e09226636cdeae300ad4f73fb6fb8f Author: Weizhen Huang Date: Tue Nov 29 18:43:43 2022 +0100 Branches: soc-2022-many-lights-sampling https://developer.blender.org/rBe9918d67e2e09226636cdeae300ad4f73fb6fb8f
Fix address of vector element requested error =================================================================== M intern/cycles/kernel/light/area.h M intern/cycles/kernel/light/point.h M intern/cycles/kernel/light/triangle.h =================================================================== diff --git a/intern/cycles/kernel/light/area.h b/intern/cycles/kernel/light/area.h index 8daadebe67d..2108073c199 100644 --- a/intern/cycles/kernel/light/area.h +++ b/intern/cycles/kernel/light/area.h @@ -335,8 +335,9 @@ ccl_device_forceinline bool area_light_tree_parameters(const ccl_global KernelLi if (!in_volume_segment) { /* TODO: a cheap substitute for minimal distance between point and primitive. Does it * worth the overhead to compute the accurate minimal distance? */ - point_to_centroid = safe_normalize_len(centroid - P, &distance.y); - distance.x = distance.y; + float min_distance; + point_to_centroid = safe_normalize_len(centroid - P, &min_distance); + distance = make_float2(min_distance, min_distance); } const float3 extentu = klight->area.extentu; diff --git a/intern/cycles/kernel/light/point.h b/intern/cycles/kernel/light/point.h index 7597bc12b84..bf85877e373 100644 --- a/intern/cycles/kernel/light/point.h +++ b/intern/cycles/kernel/light/point.h @@ -121,13 +121,14 @@ ccl_device_forceinline bool point_light_tree_parameters(const ccl_global KernelL cos_theta_u = 1.0f; /* Any value in [-1, 1], irrelevant since theta = 0 */ return true; } - point_to_centroid = safe_normalize_len(centroid - P, &distance.y); + float min_distance; + point_to_centroid = safe_normalize_len(centroid - P, &min_distance); const float radius = klight->spot.radius; const float hypotenus = sqrtf(sqr(radius) + sqr(distance.y)); cos_theta_u = distance.y / hypotenus; - distance.x = hypotenus; + distance = make_float2(hypotenus, min_distance); return true; } diff --git a/intern/cycles/kernel/light/triangle.h b/intern/cycles/kernel/light/triangle.h index af40b05e70b..fa9327b8ac6 100644 --- a/intern/cycles/kernel/light/triangle.h +++ b/intern/cycles/kernel/light/triangle.h @@ -298,8 +298,9 @@ ccl_device_forceinline bool triangle_light_tree_parameters( if (!in_volume_segment) { /* TODO: a cheap substitute for minimal distance between point and primitive. Does it * worth the overhead to compute the accurate minimal distance? */ - point_to_centroid = safe_normalize_len(centroid - P, &distance.y); - distance.x = distance.y; + float min_distance; + point_to_centroid = safe_normalize_len(centroid - P, &min_distance); + distance = make_float2(min_distance, min_distance); } const int object = kemitter->mesh_light.object_id; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs