[Bf-blender-cvs] [1d154fe] master: Cycles: Fix wrong check for object is behind camera after recent fixes

Sergey Sharybin noreply at git.blender.org
Fri Jul 29 17:30:39 CEST 2016


Commit: 1d154fe27173ba849d7b3211ae91b47bf248ada0
Author: Sergey Sharybin
Date:   Fri Jul 29 16:37:02 2016 +0200
Branches: master
https://developer.blender.org/rB1d154fe27173ba849d7b3211ae91b47bf248ada0

Cycles: Fix wrong check for object is behind camera after recent fixes

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

M	intern/cycles/blender/blender_object.cpp

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

diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index 22a0b39..da9e014 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -253,10 +253,17 @@ static bool object_boundbox_clip(Scene *scene,
 		                       boundbox[3 * i + 1],
 		                       boundbox[3 * i + 2]);
 		p = transform_point(&tfm, p);
-		p = transform_perspective(&worldtondc, p);
-		if(p.z >= -margin) {
+
+		float4 b = make_float4(p.x, p.y, p.z, 1.0f);
+		float4 c = make_float4(dot(worldtondc.x, b),
+		                       dot(worldtondc.y, b),
+		                       dot(worldtondc.z, b),
+		                       dot(worldtondc.w, b));
+		if(c.z >= -margin) {
 			all_behind = false;
 		}
+		c /= c.w;
+		p = float4_to_float3(c);
 		bb_min = min(bb_min, p);
 		bb_max = max(bb_max, p);
 	}




More information about the Bf-blender-cvs mailing list