Fix #30622: documentation example code for bge.types.KX_MeshProxy did not work,
[blender.git] / extern / libmv / ChangeLog
1 commit 9fe49c32e990f28c83f2bbb1d18057aed8879af7
2 Author: Sergey Sharybin <sergey.vfx@gmail.com>
3 Date:   Mon Mar 12 09:36:15 2012 +0600
4
5     Code cleanup: convert line endings to Unix style (native on my platform) so it
6     wouldn't confuse other versioning systems used for project where libmv is bundled to,
7     
8     Also change mode to +x for glog's windows-related script.
9
10 commit fe74ae2b53769389b0ed9d7e604c8e60be81077d
11 Author: Sergey I. Sharybin <g.ulairi@gmail.com>
12 Date:   Sun Mar 11 20:34:15 2012 +0600
13
14     Replace "third_party/glog/src/glog/logging.h" with <glog/logging.h>
15     
16     It was needed because of how build systems is setup in Blender but think
17     this will be helpful change for other applications too because it makes
18     it's easier to move libraries around and even use libraries installed
19     on the operation system.
20
21 commit 37fc726701479f2d321d6af878fa93f3176278d5
22 Author: Sergey I. Sharybin <g.ulairi@gmail.com>
23 Date:   Sun Mar 11 19:27:41 2012 +0600
24
25     Upgrade gflags and glog libraries - stage 2 (final)
26     
27     Changes to upstream code which are needed to make libmv compile smooth on all platforms
28     
29     * Replace <gflags/gflags.h> with "third_party/gflags/gflags/gflags.h" which is easier
30       to setup things in libmv and also helps with setting up building libmv into
31       external applications.
32     * Replace "glog/logging.h" and  "glog/logging.h" with <glog/logging.h> and  <glog/logging.h>
33       which is needed on Windows platform because otherwise files like logging.cc will be using
34       relative path which points to headers used by linux instead of headers need to be used
35       on Windows.
36     * Replace _asm int 3 with __debugbreak(). Such assembler code is obsolete and doesn't work
37       with 64bit versions of MSVC compilers.
38     * Do not use stacktrace for MinGW and FreeBSD because it leads into issues accessing
39       some specific data on this platforms.
40     * Define HAVE_LIB_GFLAGS for Windows builds.
41     * Do not define __declspec(dllimport) for MinGW platforms.
42     * Setup proper includes and datatypes for int32, uint32, int64 and uint64 for MinGW
43     * Do not define va_copy for MinGW platforms (it's already defined there).
44     * Patch localtime_r to be working fine with MinGW, disable strerror_r for MinGW because
45       of lack of needed functions.
46
47 commit 8ed07abfa49d1e0511752021c972e0715e5a1383
48 Author: Sergey I. Sharybin <g.ulairi@gmail.com>
49 Date:   Sun Mar 11 19:06:33 2012 +0600
50
51     Upgrade gflags and glog libraries - stage 1
52     
53     This commit copies sources from latest original release of gflags and glog
54     over currently bundled versions of this libraries without any modifications.
55     
56     This revision can't b compiled, all needed changes to make new libraries working
57     fine will be done with next commit to make it clear which changes were necessary
58     for easier bundling further newer version and extract patches and put them to
59     gflags/glog upstream repo.
60     
61     Such upgrade of libraries is needed to make it able to compile libmv
62     with clang compilers. Currently used versions:
63     
64     - gflags is version 2.0
65     - glog is version 0.3.2
66
67 commit 75b9af405964ff2c7d3f0a44500e27e63b37c91b
68 Author: Sergey Sharybin <sergey.vfx@gmail.com>
69 Date:   Fri Feb 17 23:29:11 2012 +0600
70
71     _USE_MATH_DEFINES is needed to define constants like M_E when building with msvc
72     Occasionally was removed, but now added comment about this so hopefully it
73     wouldn't removed again.
74
75 commit f85b1232a9b929f69443b5eed6e7a39908cd6551
76 Author: Sergey Sharybin <sergey.vfx@gmail.com>
77 Date:   Fri Feb 17 21:34:40 2012 +0600
78
79     Picky edit: corrected mode for ssba readme file.
80
81 commit f8c2b223f01551fd81a85f6d5221646165147035
82 Author: Sergey Sharybin <sergey.vfx@gmail.com>
83 Date:   Fri Feb 17 21:32:05 2012 +0600
84
85     Picky edits: corrected EOL
86
87 commit 3f2a4205ec5adadcdfa306b161c705c868a7be93
88 Author: Sergey Sharybin <sergey.vfx@gmail.com>
89 Date:   Fri Feb 17 21:30:07 2012 +0600
90
91     Fixed incorrect access to ucontext on linux. Caused by incorrect merge conflict resolve.
92
93 commit d360a21a5aa125cf9e83dd26b302508688ff7007
94 Author: Sergey Sharybin <sergey.vfx@gmail.com>
95 Date:   Fri Feb 17 20:54:13 2012 +0600
96
97     More Windows -> Unix EOL conversions
98
99 commit 18aeda58bec9556140ba617724e31ada6f5b67c0
100 Author: Sergey Sharybin <sergey.vfx@gmail.com>
101 Date:   Fri Feb 17 20:15:42 2012 +0600
102
103     Looks like this debug output was removed accidentally.
104
105 commit 189dc0cacdee3c1eab68c43263ecb038ed244c09
106 Author: Sergey Sharybin <sergey.vfx@gmail.com>
107 Date:   Fri Feb 17 20:11:56 2012 +0600
108
109     Made V3D verbose again by default
110
111 commit 8b3422d3eec5e450d76243886bf07fb0a3e83a81
112 Author: Sergey Sharybin <sergey.vfx@gmail.com>
113 Date:   Fri Feb 17 20:08:01 2012 +0600
114
115     SAD tracker now can deal with pattern size any size,
116     Very quick implementation came from Blender before Hybrid tracker was added.
117     Better to be replaced with brute tracker.
118
119 commit d547c9cfe37d5d3397d33c8b0e58471e1e1c1634
120 Author: Sergey Sharybin <sergey.vfx@gmail.com>
121 Date:   Fri Feb 17 20:03:52 2012 +0600
122
123     Just convert end of lines to unix style.
124
125 commit eb73ddbaec5b9e1ad30331bbf858a6ebc266c4aa
126 Author: Sergey Sharybin <sergey.vfx@gmail.com>
127 Date:   Fri Feb 17 20:02:20 2012 +0600
128
129     Made some function static. Resolves possible linking issues when building with MinGW.
130
131 commit 2930681fafd86e4f4a958054b1db8bfff29623d1
132 Author: Sergey Sharybin <sergey.vfx@gmail.com>
133 Date:   Fri Feb 17 19:59:45 2012 +0600
134
135     Missed this in commit with improvements in camera intrinsics.
136
137 commit 8d31bc767019b05c5bf8c9f309f9545b3428afa1
138 Author: Sergey Sharybin <sergey.vfx@gmail.com>
139 Date:   Fri Feb 17 19:57:51 2012 +0600
140
141     Another step of syncing codebase with Blender.
142     Mainly fixes for freebsd/osx compilation and aligned memory allocation.
143
144 commit 3214a2df5bfd98021f25d0f1a626a86318bb245f
145 Author: Sergey Sharybin <sergey.vfx@gmail.com>
146 Date:   Fri Feb 17 19:48:02 2012 +0600
147
148     Support compilation on FreeBSD platform
149
150 commit 0e5abe96f543687ccfb3a923ec639cb8f45d54f8
151 Author: Sergey Sharybin <sergey.vfx@gmail.com>
152 Date:   Fri Feb 17 19:44:18 2012 +0600
153
154     Implementation of basic system for progress reporting into callee stuff
155     
156     Implemented by using simple callbacks classes which are getting invoked from
157     places where lots of calculation happens, so applications which are using
158     libmv may display nice progress bar.
159
160 commit c5e18fe35464618055e0e9761be8d22fae56db49
161 Author: Keir Mierle <mierle@gmail.com>
162 Date:   Fri Feb 17 19:25:45 2012 +0600
163
164     Add support for detecting tracking failure in the ESM tracker component of
165     libmv. Since both KLT and Hybrid rely on ESM underneath, KLT and Hybrid now
166     have a minimum correlation setting to match. With this fix, track failures
167     should get detected quicker, with the issue that sometimes the tracker will
168     give up too easily. That is fixable by reducing the required correlation (in
169     the track properties).
170
171 commit ea0fed736ecdcc8c020227aeef8ef4cd3be5e63d
172 Author: Keir Mierle <mierle@gmail.com>
173 Date:   Fri Feb 17 19:23:50 2012 +0600
174
175     Add a new hybrid region tracker for motion tracking to libmv, and
176     add it as an option (under "Hybrid") in the tracking settings. The
177     region tracker is a combination of brute force tracking for coarse
178     alignment, then refinement with the ESM/KLT algorithm already in
179     libmv that gives excellent subpixel precision (typically 1/50'th
180     of a pixel)
181     
182     This also adds a new "brute force" region tracker which does a
183     brute force search through every pixel position in the destination
184     for the pattern in the first frame. It leverages SSE if available,
185     similar to the SAD tracker, to do this quickly. Currently it does
186     some unnecessary conversions to/from floating point that will get
187     fixed later.
188     
189     The hybrid tracker glues the two trackers (brute & ESM) together
190     to get an overall better tracker. The algorithm is simple:
191     
192     1. Track from frame 1 to frame 2 with the brute force tracker.
193         This tries every possible pixel position for the pattern from
194         frame 1 in frame 2. The position with the smallest
195         sum-of-absolute-differences is chosen. By definition, this
196         position is only accurate up to 1 pixel or so.
197     2. Using the result from 1, initialize a track with ESM. This does
198         a least-squares fit with subpixel precision.
199     3. If the ESM shift was more than 2 pixels, report failure.
200     4. If the ESM track shifted less than 2 pixels, then the track is
201         good and we're done. The rationale here is that if the
202         refinement stage shifts more than 1 pixel, then the brute force
203         result likely found some random position that's not a good fit.
204
205 commit a07fff8431621c01d81ae52595d8dd91a295a776
206 Author: Keir Mierle <mierle@gmail.com>
207 Date:   Fri Feb 17 19:19:58 2012 +0600
208
209     Assorted camera tracker improvements
210     
211     - Add support for refining the camera's intrinsic parameters
212       during a solve. Currently, refining supports only the following
213       combinations of intrinsic parameters:
214     
215         f
216         f, cx, cy
217         f, cx, cy, k1, k2
218         f, k1
219         f, k1, k2
220     
221       This is not the same as autocalibration, since the user must
222       still make a reasonable initial guess about the focal length and
223       other parameters, whereas true autocalibration would eliminate
224       the need for the user specify intrinsic parameters at all.
225     
226       However, the solver works well with only rough guesses for the
227       focal length, so perhaps full autocalibation is not that
228       important.
229     
230       Adding support for the last two combinations, (f, k1) and (f,
231       k1, k2) required changes to the library libmv depends on for
232       bundle adjustment, SSBA. These changes should get ported
233       upstream not just to libmv but to SSBA as well.
234     
235     - Improved the region of convergence for bundle adjustment by
236       increasing the number of Levenberg-Marquardt iterations from 50
237       to 500. This way, the solver is able to crawl out of the bad
238       local minima it gets stuck in when changing from, for example,
239       bundling k1 and k2 to just k1 and resetting k2 to 0.
240     
241     - Add several new region tracker implementations. A region tracker
242       is a libmv concept, which refers to tracking a template image
243       pattern through frames. The impact to end users is that tracking
244       should "just work better". I am reserving a more detailed
245       writeup, and maybe a paper, for later.
246     
247     - Other libmv tweaks, such as detecting that a tracker is headed
248       outside of the image bounds.
249     
250     This includes several changes made directly to the libmv extern
251     code rather expecting to get those changes through normal libmv
252     channels, because I, the libmv BDFL, decided it was faster to work
253     on libmv directly in Blender, then later reverse-port the libmv
254     changes from Blender back into libmv trunk. The interesting part
255     is that I added a full Levenberg-Marquardt loop to the region
256     tracking code, which should lead to a more stable solutions. I
257     also added a hacky implementation of "Efficient Second-Order
258     Minimization" for tracking, which works nicely. A more detailed
259     quantitative evaluation will follow.
260
261 commit 0bf66c009d5022eacfc473d247884a73ffeefa8f
262 Author: Sergey Sharybin <sergey.vfx@gmail.com>
263 Date:   Fri Feb 17 19:13:49 2012 +0600
264
265     Rest of compilation fix with FAST library.
266
267 commit 71b578ca2ba34c528363c514cd1fcc85791d01f3
268 Author: Keir Mierle <mierle@gmail.com>
269 Date:   Fri Feb 17 19:00:28 2012 +0600
270
271     Improve the KLT tracking behaviour and UI
272     
273     - Remove the overly-conservative use of libmv's re-track tracker. The re-track
274       tracker would take a normal tracker such as TRKLT or KLT or pyramid KLT, and
275       track from frame 1 to 2, then back from the position found in 2 back to 1.
276       Then, when the reverse-track doesn't match the original track with high
277       precision, the track is considered "failed". This is a good approach for
278       fully automatic reconstruction, but is too conservative for supervised
279       tracking.
280     
281       The retrack-tracker will return when fully automatic tracking is added.
282     
283     - Always solve for (dx, dy) in the TRKLT loop even if the linear system is
284       ill-conditioned. The client (Blender in this case) can still use the solved
285       position, even though it is less reliable.
286
287 commit 7d8a8762f2bc2e36f95b0b6f4fb4ca996f9f0db7
288 Author: Sergey Sharybin <sergey.vfx@gmail.com>
289 Date:   Fri Feb 17 18:46:24 2012 +0600
290
291     Changes in camera intrinsics distortion/undistortion:
292     
293     - Distortion/undistortion of scaled images wasn't happening right,
294       because camera intrinsics are calibrated on an original frame which
295       has got some particular resolution and trying to apply this model on
296       an image with another resolution gives totally wrong result.
297       This is needed to be able to do post-prccessing of render, running
298       distortion on a scene which might be rendered with higher resolution
299       than footage itself and then be scaled down.
300     - Fixed incorrect calculation/applying of precomputed grid when
301       distortion is high high enough and produces pixel offset higher
302       than 127 pixels. This might be still not very distorted image,
303       but if it's a 4K footage "normal" camera will easily give such
304       a distortion.
305     - Added support of overscan distortion/undistortion.
306
307 commit ed080785d63bb8e3a13dde51a2dc94fe59b059bb
308 Author: Sergey Sharybin <sergey.vfx@gmail.com>
309 Date:   Fri Feb 17 18:38:51 2012 +0600
310
311     Fast headers now can be included from C++ sources.
312     Was needed to make it working fine when bundling in Blender but might also
313     be needed to bundle into another applications.
314
315 commit 5f5a7aa46a2d87b96c8098dfc8682f4d01b5cd40
316 Author: Sergey Sharybin <sergey.vfx@gmail.com>
317 Date:   Fri Feb 17 18:36:16 2012 +0600
318
319     Bring back FAST detector which seems to be working much nicer than Morravec.
320     Both of them are available in API.
321
322 commit 2cab13c18216fb684b270cec077f7300262584af
323 Author: Sergey Sharybin <sergey.vfx@gmail.com>
324 Date:   Fri Feb 17 18:27:36 2012 +0600
325
326     Revert "Make CameraIntrinsics (and thus Qt tracker) compilable without linking libmv."
327     
328     This reverts commit 81613ee0cc94b315f333c9632b18b95d426aad05.
329     
330     That commit made inverting intrinsics totally unworkable, so reverted this and
331     made needed tweaks to qt-tracker project file to make it compilable (was needed
332     to make it linking together with glog).
333     
334     Conflicts:
335     
336         src/ui/tracker/tracker.cc
337         src/ui/tracker/tracker.pro
338
339 commit ec46cae041401b17afb4fe4d9c9343d10797090f
340 Author: Sergey Sharybin <sergey.vfx@gmail.com>
341 Date:   Fri Feb 17 17:59:55 2012 +0600
342
343     Fix compilation error using official MinGW
344
345 commit 6fbc370e922c47cfa35381662b6c439f4891ed74
346 Author: Sergey Sharybin <sergey.vfx@gmail.com>
347 Date:   Fri Feb 17 17:38:20 2012 +0600
348
349     Fix compilation error with MSVC 2010 which is more picky for "missed" STL headers
350
351 commit be9e6b63691d83b551a085f0766878bd84220767
352 Author: Sergey Sharybin <sergey.vfx@gmail.com>
353 Date:   Fri Feb 17 17:36:18 2012 +0600
354
355     Fix compilation with MSVC where snprintf function is declared as unsafe and _snprintf should be used instead.
356     
357     Better to switch to own implementation will ensure string is correctly NULL-terminated.
358
359 commit 1847d9e414ed763cd80668775d7d9f79575fc8ca
360 Author: Sergey Sharybin <sergey.vfx@gmail.com>
361 Date:   Fri Feb 17 17:34:45 2012 +0600
362
363     Fix compilation error on OSX caused by incorrect access to ucontext
364
365 commit 90579b6ffad07672172a1c240499615b30b25549
366 Merge: b9aac30 531c79b
367 Author: Sergey Sharybin <sergey.vfx@gmail.com>
368 Date:   Fri Feb 17 18:32:52 2012 +0600
369
370     Merge remote-tracking branch 'Matthias-Fauconneau/master' into devel
371     
372     Conflicts:
373         src/libmv/tracking/CMakeLists.txt
374
375 commit b9aac30a9ca6bc8362c09a0e191040964f7c6de2
376 Merge: 198894e 6969e1a
377 Author: Keir Mierle <mierle@gmail.com>
378 Date:   Sat Nov 5 17:38:30 2011 -0700
379
380     Merge pull request #3 from nathanwiegand/master
381     
382     Just a few tiny cleanups
383
384 commit 6969e1a9534291a982749baa5a3672c97bfa506d
385 Author: Nathan Wiegand <nathanwiegand@gmail.com>
386 Date:   Sat Nov 5 14:26:54 2011 -0700
387
388     I've added cleaned up a few style issues here an there. Also, I've updated the CMakeLists.txt file so that it can build the image_io library. Note, it's only been tested on OSX 10.6
389
390 commit 4763f851299050140757bfaa069107a0cf639e56
391 Author: Nathan Wiegand <nathanwiegand@gmail.com>
392 Date:   Fri Nov 4 23:59:08 2011 -0700
393
394     Removed a superfulous comment
395
396 commit a44577c0162e273681e4a9a3cc5f5b37d4315b67
397 Author: Nathan Wiegand <nathanwiegand@gmail.com>
398 Date:   Fri Nov 4 23:55:52 2011 -0700
399
400     Removed a duplicate entry for an author.
401
402 commit 198894e4c4f51c2c1784ad7c02eb45d2d1ada9bc
403 Merge: c4c67db 6e797d6
404 Author: Keir Mierle <mierle@gmail.com>
405 Date:   Fri Nov 4 21:47:05 2011 -0700
406
407     Merge pull request #2 from nathanwiegand/master
408     
409     CMake changes for OSX
410
411 commit 6e797d678c4c19f6a9e21657d66183f412cc995b
412 Author: Nathan Wiegand <nathanwiegand@gmail.com>
413 Date:   Fri Nov 4 21:43:28 2011 -0700
414
415     Uncomment the GUI part of the CMake file
416
417 commit 33ef88a33860345d8906f3c9dd22d8dbce3df53e
418 Author: Nathan Wiegand <nathanwiegand@gmail.com>
419 Date:   Fri Nov 4 21:31:22 2011 -0700
420
421     Fixed build error on OSX by adding 'glog' to the dependencies in the tracker CMake
422
423 commit 531c79bf95fddaaa70707d1abcd4fdafda16bbf0
424 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
425 Date:   Sat Aug 20 00:00:42 2011 +0200
426
427     Display warped pattern in marker preview.
428
429 commit bb5c27e671b6f8eb56ddf490f0795d59bede591b
430 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
431 Date:   Fri Aug 19 18:37:48 2011 +0200
432
433     Fix CMake build.
434
435 commit 2ac7281ff6b9545b425dd84fb03bf9c5c98b4de2
436 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
437 Date:   Fri Aug 19 17:34:45 2011 +0200
438
439     Avoid symbol shadowing.
440
441 commit 2a7c3de4acc60e0433b4952f69e30528dbafe0d2
442 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
443 Date:   Fri Aug 19 17:22:47 2011 +0200
444
445     Better dragging behavior when hitting borders.
446
447 commit a14eb3953c9521b2e08ff9ddd45b33ff1f8aeafb
448 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
449 Date:   Fri Aug 19 17:12:12 2011 +0200
450
451     Update marker preview to new affine tracking.
452
453 commit 5299ea67043459eda147950e589c2d327a8fbced
454 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
455 Date:   Fri Aug 19 16:05:54 2011 +0200
456
457     sqrt takes double precision.
458
459 commit 9f9221ce151d788c49b48f6f293ab2e2f8813978
460 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
461 Date:   Fri Aug 19 16:04:37 2011 +0200
462
463     MSVC compatibility: heap allocate pattern, explicit float cast.
464
465 commit 702658d2f8616964a6eeb3743fd85e97ac7ff09d
466 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
467 Date:   Fri Aug 19 14:59:24 2011 +0200
468
469     Expose regularization parameters (areaPenalty and conditionPenalty) in API.
470
471 commit 3e84ae5fbac10451d4935418f6281a90cedace11
472 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
473 Date:   Fri Aug 19 14:19:27 2011 +0200
474
475     Add LaplaceFilter.
476     Add regularization in affine SAD Tracker (keep constant area and good condition number).
477     UI: Better track display (+enable line antialiasing).
478
479 commit 6d26d9a8ccc4ce009fbf253898fea8864dd5001a
480 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
481 Date:   Fri Aug 19 10:25:26 2011 +0200
482
483     Add optimization for integer pixel search.
484     Allows more agressive settings for affine coordinate descent.
485
486 commit 70ceae81c0ab561b07e640ecb9933f0a902b57cd
487 Author: Matthias Fauconneau <matthias.fauconneau@gmail.com>
488 Date:   Fri Aug 19 00:02:12 2011 +0200
489
490     Document coordinate descent method in affine SAD matcher.
491     Add heuristic to prevent high distortions.