[Bf-blender-cvs] [247b684] master: Cycles: simplify logic for calculating dof-dist

Campbell Barton noreply at git.blender.org
Fri Sep 18 12:03:43 CEST 2015


Commit: 247b68476bdbc2ca12c3c8ead25247107503e835
Author: Campbell Barton
Date:   Mon Sep 7 13:29:52 2015 +1000
Branches: master
https://developer.blender.org/rB247b68476bdbc2ca12c3c8ead25247107503e835

Cycles: simplify logic for calculating dof-dist

Matches change from BKE_camera

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

M	intern/cycles/blender/blender_camera.cpp

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

diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp
index 0a79bfb..1cc601c 100644
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@ -107,9 +107,9 @@ static float blender_camera_focal_distance(BL::RenderEngine b_engine, BL::Object
 	b_engine.camera_model_matrix(b_ob, b_ob_matrix);
 	Transform obmat = get_transform(b_ob_matrix);
 	Transform dofmat = get_transform(b_dof_object.matrix_world());
-	Transform mat = transform_inverse(obmat) * dofmat;
-
-	return fabsf(transform_get_column(&mat, 3).z);
+	float3 view_dir = normalize(transform_get_column(&obmat, 2));
+	float3 dof_dir = transform_get_column(&obmat, 3) - transform_get_column(&dofmat, 3);
+	return fabsf(dot(view_dir, dof_dir));
 }
 
 static void blender_camera_from_object(BlenderCamera *bcam, BL::RenderEngine b_engine, BL::Object b_ob, bool skip_panorama = false)




More information about the Bf-blender-cvs mailing list