[Bf-blender-cvs] [166ef650cb2] temp-pbvh-split: Fix T97945: Cycles baking max distance is wrong

Brecht Van Lommel noreply at git.blender.org
Fri Jun 3 01:16:28 CEST 2022


Commit: 166ef650cb2e56de42659f2a0794bc93181b2430
Author: Brecht Van Lommel
Date:   Tue May 10 20:49:49 2022 +0200
Branches: temp-pbvh-split
https://developer.blender.org/rB166ef650cb2e56de42659f2a0794bc93181b2430

Fix T97945: Cycles baking max distance is wrong

It was effectively sqrt(max_distance) before this fix.

Thanks to Omar Emara for identifying the solution.

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

M	source/blender/render/intern/bake.c

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

diff --git a/source/blender/render/intern/bake.c b/source/blender/render/intern/bake.c
index 5953c0f0f8f..bf876163013 100644
--- a/source/blender/render/intern/bake.c
+++ b/source/blender/render/intern/bake.c
@@ -330,10 +330,10 @@ static bool cast_ray_highpoly(BVHTreeFromMesh *treeData,
 {
   int i;
   int hit_mesh = -1;
-  float hit_distance = max_ray_distance;
-  if (hit_distance == 0.0f) {
+  float hit_distance_squared = max_ray_distance * max_ray_distance;
+  if (hit_distance_squared == 0.0f) {
     /* No ray distance set, use maximum. */
-    hit_distance = FLT_MAX;
+    hit_distance_squared = FLT_MAX;
   }
 
   BVHTreeRayHit *hits;
@@ -365,16 +365,14 @@ static bool cast_ray_highpoly(BVHTreeFromMesh *treeData,
     }
 
     if (hits[i].index != -1) {
-      float distance;
-      float hit_world[3];
-
       /* distance comparison in world space */
+      float hit_world[3];
       mul_v3_m4v3(hit_world, highpoly[i].obmat, hits[i].co);
-      distance = len_squared_v3v3(hit_world, co);
+      float distance_squared = len_squared_v3v3(hit_world, co);
 
-      if (distance < hit_distance) {
+      if (distance_squared < hit_distance_squared) {
         hit_mesh = i;
-        hit_distance = distance;
+        hit_distance_squared = distance_squared;
       }
     }
   }



More information about the Bf-blender-cvs mailing list