[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56645] branches/soc-2011-tomato: Merging r56628 through r56644 from trunkinto soc-2011-tomato

Sergey Sharybin sergey.vfx at gmail.com
Fri May 10 09:57:35 CEST 2013


Revision: 56645
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56645
Author:   nazgul
Date:     2013-05-10 07:57:35 +0000 (Fri, 10 May 2013)
Log Message:
-----------
Merging r56628 through r56644 from trunkinto soc-2011-tomato

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56628
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56644

Modified Paths:
--------------
    branches/soc-2011-tomato/extern/libmv/ChangeLog
    branches/soc-2011-tomato/extern/libmv/libmv/simple_pipeline/bundle.cc
    branches/soc-2011-tomato/intern/cycles/device/device_opencl.cpp
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_bvh.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_bvh_traversal.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_curve.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_light.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_path.h
    branches/soc-2011-tomato/intern/cycles/kernel/kernel_types.h
    branches/soc-2011-tomato/intern/cycles/kernel/osl/osl_services.cpp
    branches/soc-2011-tomato/intern/cycles/render/mesh_displace.cpp
    branches/soc-2011-tomato/intern/cycles/render/svm.cpp
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/properties_data_modifier.py
    branches/soc-2011-tomato/source/blender/blenkernel/intern/editderivedmesh.c
    branches/soc-2011-tomato/source/blender/editors/include/ED_uvedit.h
    branches/soc-2011-tomato/source/blender/editors/mesh/meshtools.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_buttons.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_draw.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_intern.h
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_ops.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_smart_stitch.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_unwrap_ops.c
    branches/soc-2011-tomato/source/gameengine/Ketsji/BL_BlenderShader.cpp
    branches/soc-2011-tomato/source/gameengine/Rasterizer/RAS_BucketManager.cpp

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-56627
   + /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-56644

Modified: branches/soc-2011-tomato/extern/libmv/ChangeLog
===================================================================
--- branches/soc-2011-tomato/extern/libmv/ChangeLog	2013-05-10 07:26:55 UTC (rev 56644)
+++ branches/soc-2011-tomato/extern/libmv/ChangeLog	2013-05-10 07:57:35 UTC (rev 56645)
@@ -1,48 +1,26 @@
-commit a9006989e45afe6179b22f89f7245d4f6fffd6f2
+commit 3886b488575ec5e79debce7b9f2e9824f5297c0f
 Author: Sergey Sharybin <sergey.vfx at gmail.com>
-Date:   Thu Mar 14 14:53:42 2013 +0600
+Date:   Fri May 10 12:23:03 2013 +0600
 
-    Initial commit of reconstruction variance criteria
-    which is an addition for GRIC-based keyframe selection.
+    Add check for points behind camera in euclidan BA cost functor
     
-    Uses paper Keyframe Selection for Camera Motion and Structure
-    Estimation from Multiple Views,
-    ftp://ftp.tnt.uni-hannover.de/pub/papers/2004/ECCV2004-TTHBAW.pdf
-    as a basis.
+    In cases keyframes are no so good, algebraic two frames construction
+    could produce result, for which more aggressive Ceres-based BA code
+    will fall to a solution for which points goes behind the camera,
+    which is not so nice.
     
-    Currently implemented camera positions reconstructions,
-    bundle positions estimation and bundle adjustment step.
+    Seems in newer Ceres returning false from cost functor wouldn't
+    abort solution, but will restrict solver from moving points behind
+    the camera.
     
-    Covariance matrix is estimating using generalized inverse
-    with 7 (by the number of gauge freedoms) zeroed eigen values
-    of J^T * J.
-    
-    Additional changes:
-    - Added utility function FundamentalToEssential to extract
-      E from F matrix, used by both final reconstruction pipeline
-      and reconstruction variance code.
-    
-    - Refactored bundler a bit, so now it's possible to return
-      different evaluation data, such as number of cameras and
-      points being minimized and also jacobian.
-    
-      Jacobian currently contains only camera and points columns,
-      no intrinsics there yet. It is also currently converting to
-      an Eigen dense matrix. A bit weak, but speed is nice for
-      tests.
-    
-      Columns in jacobian are ordered in the following way:
-      first columns are cameras (3 cols for rotation and 3 cols
-      for translation), then goes 3D point columns.
-    
-    - Switched F and H refining to normalized space. Apparently,
-      refining F in pixel space squeezes it a lot making it wrong.
-    
-    - EuclideanIntersect will not add point to reconstruction if
-      it happened to be behind the camera.
-    
-    - Cleaned style a bit.
+    Works fine in own tests, but requires more tests.
 
+commit a5699d7dbe126024673f51aaa570f9f244f8da2f
+Author: Sergey Sharybin <sergey.vfx at gmail.com>
+Date:   Wed Apr 24 22:06:38 2013 +0600
+
+    Forgot to add reconstruction scale to CMakeLists
+
 commit 2b7d2b44e6446bbcc23038f5dbb824feca888069
 Author: Sergey Sharybin <sergey.vfx at gmail.com>
 Date:   Wed Apr 24 19:40:39 2013 +0600
@@ -669,22 +647,3 @@
 Date:   Thu Dec 20 18:46:09 2012 +0600
 
     Cosmetic change to correspondences reports in keyframe selection
-
-commit ceaf80c987ec0338e7e83965bc808411453eb755
-Author: Sergey Sharybin <sergey.vfx at gmail.com>
-Date:   Thu Dec 20 18:08:03 2012 +0600
-
-    Various fixes:
-    
-    - That was a typo in symmetric geometric cost functor, which
-      computed inverse distance in a wrong way.
-    
-    - Fixed compilation of unit tests
-    
-    - Added simple test for keyframe selection. Currently only
-      covers case that neighbor frames with only translation
-      (homography should be better than fundamental) are not
-      considered a keyframes.
-    
-      Still need to be investigated why it only works if tracks
-      are in pixel space and why doesn't work in normalized space.

Modified: branches/soc-2011-tomato/extern/libmv/libmv/simple_pipeline/bundle.cc
===================================================================
--- branches/soc-2011-tomato/extern/libmv/libmv/simple_pipeline/bundle.cc	2013-05-10 07:26:55 UTC (rev 56644)
+++ branches/soc-2011-tomato/extern/libmv/libmv/simple_pipeline/bundle.cc	2013-05-10 07:57:35 UTC (rev 56645)
@@ -93,29 +93,19 @@
 
     T predicted_x, predicted_y;
 
-    // EuclideanBundle uses empty intrinsics, which breaks undistortion code;
-    // so use an implied focal length of 1.0 if the focal length is exactly
-    // zero.
-    // TODO(keir): Figure out a better way to do this.
-    if (focal_length != T(0)) {
-      // Apply distortion to the normalized points to get (xd, yd).
-      // TODO(keir): Do early bailouts for zero distortion; these are expensive
-      // jet operations.
+    // Apply distortion to the normalized points to get (xd, yd).
+    // TODO(keir): Do early bailouts for zero distortion; these are expensive
+    // jet operations.
+    ApplyRadialDistortionCameraIntrinsics(focal_length,
+                                          focal_length,
+                                          principal_point_x,
+                                          principal_point_y,
+                                          k1, k2, k3,
+                                          p1, p2,
+                                          xn, yn,
+                                          &predicted_x,
+                                          &predicted_y);
 
-      ApplyRadialDistortionCameraIntrinsics(focal_length,
-                                            focal_length,
-                                            principal_point_x,
-                                            principal_point_y,
-                                            k1, k2, k3,
-                                            p1, p2,
-                                            xn, yn,
-                                            &predicted_x,
-                                            &predicted_y);
-    } else {
-      predicted_x = xn;
-      predicted_y = yn;
-    }
-
     // The error is the difference between the predicted and observed position.
     residuals[0] = predicted_x - T(observed_x);
     residuals[1] = predicted_y - T(observed_y);

Modified: branches/soc-2011-tomato/intern/cycles/device/device_opencl.cpp
===================================================================
--- branches/soc-2011-tomato/intern/cycles/device/device_opencl.cpp	2013-05-10 07:26:55 UTC (rev 56644)
+++ branches/soc-2011-tomato/intern/cycles/device/device_opencl.cpp	2013-05-10 07:57:35 UTC (rev 56645)
@@ -236,7 +236,7 @@
 	{
 		char version[256];
 
-		int major, minor, req_major = 1, req_minor = 0;
+		int major, minor, req_major = 1, req_minor = 1;
 
 		clGetPlatformInfo(cpPlatform, CL_PLATFORM_VERSION, sizeof(version), &version, NULL);
 
@@ -262,9 +262,6 @@
 			return false;
 		}
 
-		/* we don't check CL_DEVICE_VERSION since for e.g. nvidia sm 1.3 cards this is
-		 * 1.0 even if the language features are there, just limited shared memory */
-
 		return true;
 	}
 

Modified: branches/soc-2011-tomato/intern/cycles/kernel/kernel_bvh.h
===================================================================
--- branches/soc-2011-tomato/intern/cycles/kernel/kernel_bvh.h	2013-05-10 07:26:55 UTC (rev 56644)
+++ branches/soc-2011-tomato/intern/cycles/kernel/kernel_bvh.h	2013-05-10 07:57:35 UTC (rev 56645)
@@ -117,7 +117,7 @@
 __device_inline void bvh_node_intersect(KernelGlobals *kg,
 	bool *traverseChild0, bool *traverseChild1,
 	bool *closestChild1, int *nodeAddr0, int *nodeAddr1,
-	float3 P, float3 idir, float t, uint visibility, int nodeAddr, float difl = 0.0f, float extmax = 0.0f)
+	float3 P, float3 idir, float t, uint visibility, int nodeAddr, float difl, float extmax)
 {
 	float hdiff = 1.0f + difl;
 	float ldiff = 1.0f - difl;
@@ -281,7 +281,7 @@
 }
 
 __device_inline void bvh_cardinal_curve_intersect(KernelGlobals *kg, Intersection *isect,
-	float3 P, float3 idir, uint visibility, int object, int curveAddr, int segment, uint *lcg_state = NULL, float difl = 0.0f, float extmax = 0.0f)
+	float3 P, float3 idir, uint visibility, int object, int curveAddr, int segment, uint *lcg_state, float difl, float extmax)
 {
 	float epsilon = 0.0f;
 	int depth = kernel_data.curve_kernel_data.subdivisions;
@@ -305,10 +305,6 @@
 			dir.z / d, 0, -dir.x /d, 0,
 			-dir.x * dir.y /d, d, -dir.y * dir.z /d, 0,
 			dir.x, dir.y, dir.z, 0,
-			0, 0, 0, 1) * make_transform(
-			1, 0, 0, -P.x,
-			0, 1, 0, -P.y,
-			0, 0, 1, -P.z,
 			0, 0, 0, 1);
 
 		float4 v00 = kernel_tex_fetch(__curves, prim);
@@ -324,10 +320,10 @@
 		float4 P2 = kernel_tex_fetch(__curve_keys, k1);
 		float4 P3 = kernel_tex_fetch(__curve_keys, kb);
 
-		float3 p0 = transform_point(&htfm, float4_to_float3(P0));
-		float3 p1 = transform_point(&htfm, float4_to_float3(P1));
-		float3 p2 = transform_point(&htfm, float4_to_float3(P2));
-		float3 p3 = transform_point(&htfm, float4_to_float3(P3));
+		float3 p0 = transform_point(&htfm, float4_to_float3(P0) - P);
+		float3 p1 = transform_point(&htfm, float4_to_float3(P1) - P);
+		float3 p2 = transform_point(&htfm, float4_to_float3(P2) - P);
+		float3 p3 = transform_point(&htfm, float4_to_float3(P3) - P);
 
 		float fc = 0.71f;
 		curve_coef[0] = p1;
@@ -591,7 +587,7 @@
 }
 
 __device_inline void bvh_curve_intersect(KernelGlobals *kg, Intersection *isect,
-	float3 P, float3 idir, uint visibility, int object, int curveAddr, int segment, uint *lcg_state = NULL, float difl = 0.0f, float extmax = 0.0f)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list