[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