Merge branch 'blender-v4.4-release'
[blender.git] / intern / libmv / ChangeLog
blob80e69878c9922cb9407e0d041f9866375a383122
1 commit f701b2b9fbc641b3252b3513239eeb14477ed5e1
2 Author: Lazydodo <github@lazydodo.com>
3 Date:   Wed Aug 21 10:38:33 2019 -0600
5     Cleanup: Fix build error with MSVC
6     
7     Previously eigens internal include order somehow implicitly provided
8     M_PI and friends. The recent eigen version bump broke this implicit
9     behaviour, better to be explicit that we need the math defines for MSVC.
11 commit 5b2892f5a3cb6a7a2300f1c32e93d90e22302286
12 Author: Sergey Sharybin <sergey@blender.org>
13 Date:   Mon Mar 15 14:58:13 2021 +0100
15     Cleanup: Spelling in Libmv comments
17 commit 54cdd2fe5cad29df83cb4d3c3ef1e02e06b022a7
18 Author: Sergey Sharybin <sergey@blender.org>
19 Date:   Thu Oct 21 12:09:30 2021 +0200
21     Ensure clang-format is disabled for 3rd party libraries
23 commit 517d51654d6a4cf790a340b657cc0f7dc00f3158
24 Author: Campbell Barton <ideasman42@gmail.com>
25 Date:   Tue Jul 13 21:58:45 2021 +1000
27     Fix x/y mismatch in retract region tracker
28     
29     Correct X/Y mismatch in RetrackRegionTracker.
30     
31     NOTE: This isn't used at the moment.
32     
33     Reviewed By: sergey
34     
35     Ref D11895
37 commit cfcfc803cf599c3bd7bbfa3bac7d5e9c8bca284b
38 Author: Jesse Yurkovich <jesse.y@gmail.com>
39 Date:   Mon Jul 12 21:01:18 2021 -0700
41     Cleanup: Use correct _WIN32/64 defines for MSVC
42     
43     Docs: https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros
44     
45     Differential Revision: https://developer.blender.org/D11460
47 commit ad8dfd41958b0e4cb90c7c4e5cc20f93c0832e73
48 Author: Campbell Barton <ideasman42@gmail.com>
49 Date:   Thu Jun 24 15:56:58 2021 +1000
51     Cleanup: comment blocks, trailing space in comments
53 commit 9a6cc5daa6c38f33ce2385fe489c07d97586d452
54 Author: Campbell Barton <ideasman42@gmail.com>
55 Date:   Sun Jun 13 15:11:40 2021 +1000
57     Fix new[]/delete[] mismatch
59 commit 5591d12928df74ed3517b5e61eeda0b64e6ade4f
60 Author: Sergey Sharybin <sergey@blender.org>
61 Date:   Mon Mar 22 15:16:07 2021 +0100
63     Fix T86591: Tracking backwards is slower
64     
65     The root of the issue was caused by the PredictMarkerPosition()
66     always returning false when tracking backwards. This was making
67     it so tracker always had to run brute initialization, which is
68     an expensive operation.
69     
70     From own timing here:
71     
72     - Tracking forward takes 0.667637 seconds
73     - Tracking backward used to take 2.591856 seconds
74     - Tracking backward now takes 0.827724 seconds
75     
76     This is a very nice speedup, although the tracking backwards is
77     still somewhat slower. Will be investigated further as part of
78     a regular development.
80 commit ad9546d2319b0db3e1ccc41c4f84899729d1ad1e
81 Author: Sergey Sharybin <sergey@blender.org>
82 Date:   Mon Mar 15 15:48:15 2021 +0100
84     Fix T86262: Tracking backwards fails after gap in track
85     
86     The issue was caused by a prediction algorithm detecting tracking the
87     wrong way. Solved by passing tracking direction explicitly, so that
88     prediction will always happen correctly regardless of the state of the
89     Tracks context.
91 commit 0773a8d6dfe1bf997b8e42d61d136a65b67fde88
92 Author: Sergey Sharybin <sergey@blender.org>
93 Date:   Thu Oct 21 11:18:10 2021 +0200
95     Cleanup: clang-format
96     
97     Is based on Google style which was used in the Libmv project before,
98     but is now consistently applied for the sources of the library itself
99     and to C-API. With some time C-API will likely be removed, and it
100     makes it easier to make it follow Libmv style, hence the diversion
101     from Blender's style.
102     
103     There are quite some exceptions (clang-format off) in the code around
104     Eigen matrix initialization. It is rather annoying, and there could be
105     some neat way to make initialization readable without such exception.
106     
107     Could be some places where loss of readability in matrix initialization
108     got lost as the change is quite big. If this has happened it is easier
109     to address readability once actually working on the code.
110     
111     This change allowed to spot some missing header guards, so that's nice.
112     
113     Doing it in bundled version, as the upstream library needs to have some
114     of the recent development ported over from bundle to upstream.
115     
116     There should be no functional changes.
118 commit c4de0ccd5aede3bb90ac6ad1039a83c2260fbefd
119 Author: Sergey Sharybin <sergey@blender.org>
120 Date:   Tue Feb 23 16:43:01 2021 +0100
122     Avoid use of LOG(INFO) in solver
123     
124     Usage of LOG(INFO) actually went against own guidelines in the
125     logging.h: the INFO is for messages which are to be printed
126     regardless of debug/verbosity settings.
128 commit 94d925131b08e23cea7fdf735923e24b78a8c7fd
129 Author: Campbell Barton <ideasman42@gmail.com>
130 Date:   Fri Feb 5 16:23:34 2021 +1100
132     Cleanup: correct spelling in comments
134 commit db0c8dbea19d684899dffcb46a2e79c12dc91e6b
135 Author: Sergey Sharybin <sergey@blender.org>
136 Date:   Tue Dec 1 14:52:08 2020 +0100
138     Tweak default logging verbosity level
139     
140     Log to verbosity level 1 rather than INFO severity.
141     
142     Avoids a lot of overhead coming from construction of the INFO stream
143     and improves performance and threadability of code which uses logging.
144     
145     This makes tracking of 250 frames of a track of default settings to
146     drop down from 0.6sec to 0.4sec.
148 commit 8f2c13edf0d3b0c8a2ad90d6ae13f11aed457709
149 Author: Sergey Sharybin <sergey@blender.org>
150 Date:   Tue Dec 1 14:46:35 2020 +0100
152     Cleanup, remove unused logging macros
153     
154     Unused and was not entirely happy with such short abbreviations.
156 commit 1dc2ab9847ce6cc84ab6c8e3e8613687480d735d
157 Author: Sergey Sharybin <sergey@blender.org>
158 Date:   Fri Nov 27 15:58:55 2020 +0100
160     Add threading primitives
161     
162     Allows to use mutex, scoped_lock, and conditional_variable from within
163     the libmv namespace.
164     
165     Implementation is coming from C++11. Other configurations are easy to
166     implement, but currently C++11 is the way to go.
168 commit 6531b66fd3bf4b5ee112b904b390d164a03628c5
169 Author: Sergey Sharybin <sergey@blender.org>
170 Date:   Fri Nov 27 15:43:44 2020 +0100
172     Add build configuration header
173     
174     Allows to easily access build platform information, such as bitness,
175     compiler, supported C++ version and so on.
177 commit 632c356375e4ac07da43b346384fdf67e7916426
178 Author: Campbell Barton <ideasman42@gmail.com>
179 Date:   Fri Nov 6 14:35:38 2020 +1100
181     Cleanup: doxygen comments
183 commit c9479472ce8d63b1d6e4c9c1b072b975479cd4c0
184 Author: Campbell Barton <ideasman42@gmail.com>
185 Date:   Fri Nov 6 11:25:27 2020 +1100
187     Cleanup: follow our code style for float literals
189 commit 6455055b265cddbf604523653b01c9d7adbc23d5
190 Author: Ivan Perevala <ivpe>
191 Date:   Thu Oct 29 10:19:06 2020 +0100
193     Fix clang inconsistent-missing-override warnings.
194     
195     Reviewed By: sergey, ankitm
196     
197     Differential Revision: https://developer.blender.org/D9377
199 commit 020fc13a5336c872c3251e45d28cc02584094f33
200 Author: Sergey Sharybin <sergey@blender.org>
201 Date:   Wed Oct 21 10:53:13 2020 +0200
203     Simplify configuration of intrinsics to refine
204     
205     Previously, only predefined and limited set of intrinsics combinations
206     could have been refined. This was caused by a bundle adjustment library
207     used in the early days of the solver.
208     
209     Now it is possible to fully customize which intrinsics are to be refined
210     during camera solving. Internally solver supports per-parameter settings
211     but in the interface they are grouped as following:
212     
213     * Focal length
214     * Optical center
215     * Radial distortion coefficients (which includes k1, k2, k3, k4)
216     * Tangential distortion coefficients (which includes p1, p2)
217     
218     Differential Revision: https://developer.blender.org/D9294
220 commit 5ef3c2c41854a2e634ba692e9b63194aa74b928d
221 Author: Sergey Sharybin <sergey@blender.org>
222 Date:   Wed Oct 21 10:48:13 2020 +0200
224     Fix typo in packed intrinsics
225     
226     Was using doing an implicit cast of floating point value to boolean.
227     Was not noticed before because the boolean value was never never used.
229 commit 648388878525aa585bdbbed2e457186b6483bd5e
230 Author: Sergey Sharybin <sergey@blender.org>
231 Date:   Tue Oct 13 11:34:05 2020 +0200
233     Refactor camera intrinsics parameter block
234     
235     Use the newly introduced packed intrinsics, which allows to remove
236     code which was initializing parameters block based on distortion
237     model type.
238     
239     Now such initialization is done by a particular implementation of
240     a distortion model.
241     
242     Differential Revision: https://developer.blender.org/D9192
244 commit 60780e30a8aec37f53d4e952375ffc8d720341c6
245 Author: Sergey Sharybin <sergey@blender.org>
246 Date:   Tue Oct 13 11:32:35 2020 +0200
248     Add generic class for packed intrinsics
249     
250     This is a common class which can be used in all sort of minimization
251     problems which needs camera intrinsics as a parameter block.
252     
253     Currently unused, but will replace a lot of hard-coded logic in the
254     bundle adjustment code.
256 commit 409924c76be27fec3b619d79379df76cb8de6a9a
257 Author: Sergey Sharybin <sergey@blender.org>
258 Date:   Tue Oct 13 11:25:34 2020 +0200
260     Add array<type, size> to libmv namespace
262 commit 6411c7fed3c30dce05b9b2df239b7f4cf91cdecd
263 Author: Sebastian Parborg <darkdefende@gmail.com>
264 Date:   Tue Oct 20 14:45:54 2020 +0200
266     Fix test on windows
267     
268     There is no point in testing std::vector capacity as it can differ
269     between std implementations.
271 commit 242d31ff4ed78a6f36ac29f139b03abc4f32f4f5
272 Author: Harley Acheson <harley.acheson@gmail.com>
273 Date:   Mon Oct 19 08:51:50 2020 -0700
275     Spelling: Miscellaneous
276     
277     Corrects 34 miscellaneous misspelled words.
278     
279     Differential Revision: https://developer.blender.org/D9248
280     
281     Reviewed by Campbell Barton
283 commit 91cd0310d6762fdcc7253303bec7f0453cf1f18f
284 Author: Harley Acheson <harley.acheson@gmail.com>
285 Date:   Mon Oct 19 08:12:33 2020 -0700
287     Spelling: It's Versus Its
288     
289     Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required.
290     
291     Differential Revision: https://developer.blender.org/D9250
292     
293     Reviewed by Campbell Barton
295 commit 788ed5fa8ace0df951fe8f03e6510187ed694044
296 Author: Sebastian Parborg <darkdefende@gmail.com>
297 Date:   Mon Oct 19 13:03:06 2020 +0200
299     Fix alignment issues when compiling with AVX support
300     
301     There would be eigen alignment issues with the custom libmv vector
302     class when compiling with AVX optimizations. This would lead to
303     segfaults.
304     
305     Simply use the std::vector base class as suggested by the old TODO in
306     the class header.
307     
308     Reviewed By: Sergey
309     
310     Differential Revision: http://developer.blender.org/D8968
312 commit 21a114476eaafec4b25c0ea19eaccdd9e870160d
313 Author: Sergey Sharybin <sergey@blender.org>
314 Date:   Mon Oct 12 14:59:18 2020 +0200
316     Remove array access from camera intrinsics
317     
318     That was a suboptimal decision from back in the days, which ended up
319     being problematic. It is no longer used, so remove it from API making
320     it so new code does not depend on this weak concept.
322 commit b6a579fd88de5e13c812310a0416e698648578c4
323 Author: Sergey Sharybin <sergey@blender.org>
324 Date:   Mon Oct 12 12:17:55 2020 +0200
326     Fix wrong packing order of intrinsics for BA step
327     
328     The order got broken when Brown distortion model has been added.
329     Made it so the indexing of parameters is strictly defined in the
330     parameter block, matching how parameters are used in the cost
331     function.
332     
333     There is some duplication going on accessing parameters. This can
334     be refactored in the future, by either moving common parts packing
335     and cost function to an utility function in bundle.cc.
336     Alternatively, can introduce a public PackedIntrinsics class which
337     will contain a continuous block of parameters, and each of the
338     camera models will have API to be initialized from packed form and
339     to create this packed form.
340     
341     The benefit of this approach over alternative solutions previously
342     made in the master branch or suggested in D9116 is that the specific
343     implementation of BA does not dictate the way how public classes need
344     to be organized. It is API which needs to define how implementation
345     goes, not the other way around.
346     
347     Thanks Bastien and Ivan for the investigation!
349 commit 595d4a45db2f1d68bc6091b6fad3580411a10e40
350 Author: Sergey Sharybin <sergey@blender.org>
351 Date:   Mon Oct 12 10:46:31 2020 +0200
353     Fix memory leak in modal solver
354     
355     The leak was happening when problem did not have any parameters blocks
356     defined. This happens, for example, if there are no 3D points at all,
357     or when all markers are set to 0 weight.
358     
359     Was noticeable in libmv_modal_solver_test when building with LSAN
360     enabled.
362 commit b6ecdc497c00e5f9a0a6dffe1c27051c8df8482a
363 Author: Sergey Sharybin <sergey@blender.org>
364 Date:   Mon Oct 12 10:44:57 2020 +0200
366     Cleanup, spelling in function name
367     
368     Is a local function, not affecting API.
370 commit 2a712777076c076fcf8aae9b9657089d81fd129f
371 Author: Ivan Perevala <ivpe>
372 Date:   Wed Sep 30 15:12:14 2020 +0200
374     Implement Brown-Conrady distortion model
375     
376     Implemented Brown-Conrady lens distortion model with 4 radial and
377     2 tangential coefficients to improve compatibility with other software,
378     such as Agisoft Photoscan/Metashapes, 3DF Zephir, RealityCapture,
379     Bentley ContextCapture, Alisevision Meshroom(opensource).
380     
381     Also older programs: Bundler, CPMVS.
382     In general terms, most photogrammetric software.
383     
384     The new model is available under the distortion model menu in Lens
385     settings.
386     
387     For tests and demos check the original patch.
388     
389     Reviewed By: sergey
390     
391     Differential Revision: https://developer.blender.org/D9037
393 commit e4e2b8c382f9bb2490318cd621a438ccb4dd7327
394 Author: Ivan <vanyOk>
395 Date:   Mon Sep 28 09:57:03 2020 +0200
397     Fix NukeCameraIntrinsics copy constructor
398     
399     Copy the appropriate parameter
400     
401     Reviewed By: sergey
402     
403     Differential Revision: https://developer.blender.org/D9014
405 commit 1e5deb138ad1ef79204b118f4dc741f96bd0e650
406 Author: Johan Walles <walles>
407 Date:   Tue Jul 7 11:09:31 2020 +0200
409     Add units to motion tracking solve errors
410     
411     The unit being "pixels".
412     
413     Before this change the solve errors were unitless in the UI.
414     
415     With this change in place, the UI is now clear on that the unit of the
416     reprojection errors is pixels (px).
417     
418     Differential Revision: https://developer.blender.org/D8000
420 commit a8a5a701f2839a97af51825d98726e7eb7e6eb1d
421 Author: Campbell Barton <ideasman42@gmail.com>
422 Date:   Wed Jul 1 13:12:24 2020 +1000
424     Cleanup: spelling
426 commit fd83866975d5d8163d9bb71d645239562cb329b5
427 Author: Sergey Sharybin <sergey.vfx@gmail.com>
428 Date:   Thu Jun 18 10:12:01 2020 +0200
430     Update Ceres to the latest upstream version
431     
432     Using latest master because of various compilation error fixes.
433     
434     Brings a lot of recent development. From most interesting parts:
435     
436     - New threading model.
437     - Tiny solver.
438     - Compatibility with C++17.
440 commit 307e9a945a320a1b7d9af210c2da1cfbb6439ec5
441 Author: Sergey Sharybin <sergey.vfx@gmail.com>
442 Date:   Fri May 15 14:54:30 2020 +0200
444     Fix crash solving when having negative frames
445     
446     Don't use linear array with frame as an index since it has the
447     following disadvantages:
448     
449     - Requires every application to take care of frame remapping, which
450       could be way more annoying than it sounds.
451     
452     - Inefficient from memory point of view when solving part of a footage
453       which is closer to the end of frame range.
454     
455     Using map technically is slower from performance point of view, but
456     could not feel any difference as the actual computation is way more
457     complex than access of camera on individual frames.
458     
459     Solves crash aspect of T72009
461 commit 730eec3e0a382b23648d9000e07218519e1223d1
462 Author: Sergey Sharybin <sergey.vfx@gmail.com>
463 Date:   Fri May 15 11:08:18 2020 +0200
465     Add map utility
467 commit 0d3f5d94474553c51a1e5d830521fca4ee82aa54
468 Author: Sergey Sharybin <sergey.vfx@gmail.com>
469 Date:   Fri May 15 11:05:07 2020 +0200
471     Cleanup, spelling
473 commit d26503ab5a9d2faef0f388695d6bb1c46ffff4eb
474 Author: Aaron Carlisle <carlisle.b3d@gmail.com>
475 Date:   Thu May 7 23:42:22 2020 -0400
477     Cleanup: Doxygen: fix markup warnings for links
479 commit 9e8e94e8281abb6edb5e81afe4365743994800d2
480 Author: Sergey Sharybin <sergey.vfx@gmail.com>
481 Date:   Mon Apr 20 17:33:03 2020 +0200
483     Implement Nuke/Natron distortion model
484     
485     Neither Nuke nor Natron support OpenCV's radial distortion model
486     which makes it impossible to have any kind of interoperability.
487     
488     The new model is available under the distortion model menu in Lens
489     settings.
490     
491     Differential Revision: https://developer.blender.org/D7484
493 commit 1dc83e7545fc832180322f492245933fb343f158
494 Author: Sergey Sharybin <sergey.vfx@gmail.com>
495 Date:   Tue Apr 21 16:41:23 2020 +0200
497     Cleanup, naming
498     
499     Initial bundle adjustment only supported OpenCV's radial distortion
500     model, so the cost functor was called after it.
501     
502     Nowadays it supports more than this single model, so naming was a bit
503     wrong and misleading.
505 commit b6df71dd5e5a49b3459c522c10ae98e8795e69b5
506 Author: Sergey Sharybin <sergey.vfx@gmail.com>
507 Date:   Tue Apr 21 12:25:45 2020 +0200
509     Cleanup, spelling and naming in bundle adjustment
510     
511     Just more things which were discovered to be annoying on unclear when
512     adding more features to this code.
514 commit a4bbe3a10a5b6b23acd261b1e6c772a6f6672c00
515 Author: Sergey Sharybin <sergey.vfx@gmail.com>
516 Date:   Mon Apr 20 17:26:45 2020 +0200
518     Cleanup, spelling in comment
520 commit 4219e9d22bad012e9e64b83a5e26d1d4eff3fcc6
521 Author: Sergey Sharybin <sergey.vfx@gmail.com>
522 Date:   Mon Apr 20 12:44:07 2020 +0200
524     De-duplicate creation of residual block
525     
526     Allows to centralize logic which is needed to check which cost functor
527     to use for the specific intrinsics.
529 commit 9637ebc18b2bac794c8f11b1c2c092a3a9c3e6d2
530 Author: Sergey Sharybin <sergey.vfx@gmail.com>
531 Date:   Mon Apr 20 11:41:01 2020 +0200
533     Cleanup reprojection cost function
534     
535     Make it smaller and more clear how and what it operates on.
537 commit 1efc975a5457cfee6baf41df67afb3e43834d57f
538 Author: Sergey Sharybin <sergey.vfx@gmail.com>
539 Date:   Mon Apr 20 11:19:47 2020 +0200
541     Pass entire camera intrinsics to reprojection error functor
542     
543     Currently no functional changes, but allows to have access to some
544     invariant settings of camera intrinsics such as image dimensions.
546 commit 0f54f2b305f59fc99764b9c85fe28f35f10faa86
547 Author: Sergey Sharybin <sergey.vfx@gmail.com>
548 Date:   Fri Apr 17 17:34:19 2020 +0200
550     Cleanup, rephrase comment
552 commit 229912b0e1746145c4ab710f8609ce90f690a8e2
553 Author: Sergey Sharybin <sergey.vfx@gmail.com>
554 Date:   Fri Apr 17 17:29:04 2020 +0200
556     Cleanup, fix indentation