Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-07-19style cleanup: switch statements, include break statements within braces & ↵Campbell Barton
indent. also indent case's within the switch (we already did both of these almost everywhere)
2013-07-13fix errors in codeCampbell Barton
- BKE_mball_center_median(), didn't work. - clip_refresh was removing handlers from wrong space. - new_modifier, replace strcpy with BLI_strncpy
2013-06-25Fix unnecessary 3D viewport redraws in various cases, in particular when editingBrecht Van Lommel
node materials. Area and region listener callbacks now get the screen and area pointers passed, so they can do more fine grained checks to see if redraw is really needed, for example depending on the 3D view drawtype.
2013-06-19Fix #35773: Drag-to-Open failed in Movie Clip EditorSergey Sharybin
2013-05-30Patch #35464: Marker placement for motion tracker by clicking on a desired ↵Sergey Sharybin
location Now button in the toolshelf behaves this way: - User clicks on "Add Marker" - Then he clicks where the marker should get placed Patch by Marcos Couto (ocf) with own modifications.
2013-05-22Fix #35461: Marker gets initialized to arbitrary positionSergey Sharybin
Use center of currently visible frame part instead of center of the whole frame for position of marker which is adding from toolbox. Used separate operator for this to keep operators more atomic and not confuse with lots of conflicting properties.
2013-05-12Refine markers position operatorSergey Sharybin
This operator will run a tracker from previous keyframe to current frame for all selected markers. Current markers positions are considering initial position guess which could be updated by a tracker for better match. Useful in cases when feature disappears from the frame and then appears again. Usage in this case is the following: - When feature point re-appeared on frame, manully place marker on it. - Use Refine Markers operation (which is in Track panel) to allow tracker to find a better match. Depending on direction of tracking use either Forwards or Backwards refining. It's easy: if trackign happens forwards, use Refine Frowards, otherwise use Refine Backwards :)
2013-05-10Set scene frames operator for clip editor.Sergey Sharybin
This operator will set scene's start/end frames to match clip's start frame and footage duration. Available in Clip panel in clip editor's toolbox.
2013-05-09Added a button to apply scale on scene solutionSergey Sharybin
This is an alternative to using camera to scale the scene and it's expected to be better solution because scaling camera leads to issues with z-buffer. Found the whole scaling thing a bit confusing, especially for object tracking, but cleaning this up is a bit different topic.
2013-04-29Fix for [#35146] Move Clip Editor: "T-key panel" bugThomas Dinges
2013-04-04Clip editor prefetch changesSergey Sharybin
Made it an operator instead of automatic prefetching. Filling the whole memory with frames is not always desired behavior. Now prefetching is available via P-key, or from Clip panel in toolbox or from Clip menu. Also enabled prefetching for non-proxied movies.
2013-03-29Implement GPU-side display transform for clip editorSergey Sharybin
Implemented using GLSL API from OpenColorIO library and some general functions were added to it's c-api: - OCIO_setupGLSLDraw prepares OpenGL context for GPU-based transformation for a giver processor. This function compiles and links shader, sets up it's argument. After this transformation would be applied on an image displaying as a 2D texture. So, glaDrawPixelsTex called after OCIO_setupGLSLDraw will do a proper color space transform. - OCIO_finishGLSLDraw restores OpenGL context after all color-managed display is over. - OCIO_freeOGLState frees allocated state structure used for cacheing some GLSL-related stuff. There're some utility functions in IMB_colormanagent which are basically proxies to lower level OCIO functions but which could be used from any place in blender. Chacheing of movie clip frame on GPU is also removed now, and either glaDrawPixelsTex or glaDrawPixelsAuto are used for display now. This is so no code duplication happens now and no large textures are lurking around in GPU memory. Known issues: - Texture buffer and GLSL are no longer checking for video card capabilities, possibly could lead to some artifacts on crappy drivers/cards. - Only float buffers are displaying using GLSL, byte buffers will still use fallback display method. This is to be addressed later. - If RGB curves are used as a part of display transform, GLSL display will also be disabled. This is also thing to be solved later. Additional changes: - glaDrawPixelsTexScaled will now use RGBA16F as an internal format of storing textures when it's used to draw float buffer. This is needed so LUT are applied without precision loss.
2013-03-20Prefetching for movie clipsSergey Sharybin
This commit basically implements frames prefetching for movie clip datablock. Number of frames to be prefetched is controlled in User Preferences, System tab, Prefetch Frames option. Currently prefetching is destructive-less for movie cache, meaning mo frames will be removed from the cache when while prefetching. This is because it's half of simplier to implement, but it also makes sense from tracking point of view -- we could want to playback in both directions and removing frames from behind time cursor is not always a good idea. Anyway, smarter prefetching strategy could be developed later. Some implementation notes: - Added MEM_CacheLimiter_get_memory_in_use function to get memory usage of specified memory limiter. - Fixed prototype of MEM_CacheLimiter_get_maximum which was simply wrong (used wrong data type for output). - Added some utility functions to movie clip and movie cache for direct cache interaction and obtaining cache statistics. - Prefetching is implemented using general jobs system. which is invoking from clip draw function. - Prefetcing will stop as soon other job or playback starts. This is done from performance point of view. Jobs will likely require lots of CPU power and better to provide whole CPU to it. Playback is a bit more complicated case. For jpeg sequence playback prefetching while paying back is nice. But trying to prefetch heavy exr images and doing color space conversion slows down both playback and prefetching. TODO: - Think of better policy of dealing with already cached frames (like when cached frames from other clips prevents frames from current clip to be prefetched) - Currently a bit funky redraw notification happens from prefetch job. Perhaps own ND_ is better to have here. - Hiding clip while prefetch is active in theory shall stop prefetching job. - Having multiple clips opened on file load will prefetch frames for only one of them.
2013-03-13code cleanup: use const events for modal and invoke operators.Campbell Barton
2013-03-05View All operator for motion tracking dopesheet.Sergey Sharybin
2013-02-14After scroll bar commit motrack dopesheet went out of sync verticallySergey Sharybin
Shall be fine now.
2013-01-06Solving nasty annoyance:Ton Roosendaal
Trackpad zoom (swipe + CTRL) direction was inverted compared to MMB-drag or scrollwheel usage. In the 3D viewport it was OK, in all others not. Now the same physical gesture maps identical to zooming everywhere. Or to recap (with blender factory settings) Zooming in: - MMB-drag, move mouse towards screen - Scroll wheel, move finger towards screen - Magic Mouse, move finger towards screen - Trackpad 2-finger swipe: move fingers toward screen. To make this extra confusing: this is only consistent if you set your system to inperpret trackpad swipes as "inverted" (pan view left = swipe to right). This is a typical default, although Apple wants you to call this "Unnatural" :) Next commit will be testing on laptop if all pinch gestures zoom consistent. And following to that, a sensible user preference to map trackpad use for Blender yourself, to invert system defaults again. :) Blame and thanks goes to Sebastian Koenig, for his perseverance on getting this solved :)
2012-12-17fix [#33501] Grease pencil in OpenGL renderCampbell Barton
With the view3d 'Render Only' option, grease pencil wouldn't draw, but for OpenGL render it did. Since grease pencil can be very useful in opengl renders, enable grease pencil drawing with 'Render Only' option in the viewport, and add a checkbox in the grease pencil header not to draw (unchecking each layer is annoying and applies to all spaces).
2012-12-15Fix #33539: shift+numpad 2/4/8 shortcuts for zoom in image and clip editorBrecht Van Lommel
don't work in Windows. These shortcuts are taken by the operating system, so ctrl+numpad 2/4/8 now work as well and are the shortcuts shown in menus.
2012-11-20Motion tracking: fixed View Selection operator in cases pixel aspect != 1Sergey Sharybin
This could break old files a little bit -- clip view could be offset/zoomed in comparison with previous releases in pixel aspect != 1.
2012-10-05Grease Pencil notifier/listener cleanupDan Eicher
As suggested by Campbell on the IRC gave grease pencil its own notifier type (NC_GPENCIL) and made the makesrna notifier functions actually update properly. Also got the #ifdef'd GreasePencil.layers.[new/remove] functions working.
2012-09-15code cleanup: replace macro for BLI_rect size/center with inline functions.Campbell Barton
2012-09-13fix for drawing non 1:1 aspect masks, transform and selection still need ↵Campbell Barton
support.
2012-08-21code cleanup: use BLI_RCT_SIZE macroCampbell Barton
2012-08-12NDOF navigation support for clip editorSergey Sharybin
2012-07-27change clip utility function arguments to take space data and region rather ↵Campbell Barton
then the context. this allows a fix to be applied that corrects the helper line in the image view when transforming a mask.
2012-07-26Fix typo and change shortcuts to Q and E. Works better when emulate numpad ↵Sergey Sharybin
is used.
2012-07-26Shortcuts to set solver frames: alt-1 for Keyframe A, alt-2 for keyframe B.Sergey Sharybin
2012-07-25add mask keymap to image window.Campbell Barton
debug prints for events when --debug-events is used to help track down why a key is/isnt used.
2012-07-25mask now draws in the image view, misc minor edits.Campbell Barton
2012-07-25move mask and draw settings into its own struct to be shared between spaces.Campbell Barton
2012-07-24initial commit for supporting masks in the image view, currently active seq ↵Campbell Barton
strip is used as the mask source. also unify mask drawing code for clip/sequencer/image
2012-07-24generalize mask poll functions and sequencer mask code.Campbell Barton
2012-07-12Clip editor mode selection: show menu with modes on TABSergey Sharybin
This seems to be the only straightforward way to switch fast between modes without keeping bunch of shortcuts and current mode in head.
2012-07-12Fixed issue with drag-n-drop into Clip Editor.Sergey Sharybin
2012-06-20Cleanup up space clip API:Sergey Sharybin
- Remove clip/mask specific size/aspect getters, they shall just use the same size/aspect ratio. - Made size getter (and some other public functions) accept context instead of SpaceClip. Currently only SpaceClip is being get from this context, but later it'll be helpful when adding support of editing mask without opening clip in clip editor (in this case using render resolution for mask would be ideal, but this requires knowing scene in size getter). - Rearrange some functions in clip_editor.c for easier navigation in the file.
2012-06-19Changes in clip editor's public api to make it's more clearSergey Sharybin
whether getting of some property happens or this property is being changed. Also made it more clear whether affecting property belongs to clip or mask datablock.
2012-06-19Mark context as const when it's possible and avoid typecasts from const ↵Sergey Sharybin
bContext* to bContext*
2012-06-15Internal refactoring of tracking module, should be no functional changesSergey Sharybin
- Re-arrange functions in headers and implementation file to make them more grouped by entity they're operating with. Also order of functions in implementation file should match order of functions in header for easier navigation. - Rename some functions to match conventions of naming public functions. - Some code de-duplication, still some room for improvements tho. - Split main 2D tracking functions into smaller steps to make it more clear. Accidentally OpenMP was disabled in some of previous commits, re-enable it.
2012-06-12Make dopesheet settings per-tracking dataSergey Sharybin
It was a bit confusing to synchronize settings used in pre-calculated dopesheet channels which was storing in tracking data with settings used for display which is in space data. This was initially done by converting one flags to other and checking if space's settings matches pre-calculated one, but that had several issues if two different dopesheet are using different settings: - Channels would be re-calculated on every redraw for each of spaces - Dopesheet operators could fail due to the could be using channels calculated for other space. That was also quite nasty code checking if requested settings matches pre-calculated one.
2012-06-12Masking support for motion tracksSergey Sharybin
Added option to use Grease Pencil datablock as a mask for pattern when doing motion tracking. Option could be found in Tracking Settings panel. All strokes would be rasterized separately from each other and every stroke is treating as a closed spline. Also added option to apply a mask on track preview which is situated just after B/B/W channel button under track preview.
2012-06-11Draw grease pencil after masksSergey Sharybin
Looks like drawing grease pencil before masks was affecting projection matrix somehow which made masks invisible Anyway, drawing GP actually shall happen after masks to match how it works in other areas.
2012-06-10style cleanupCampbell Barton
2012-06-10Planar tracking support for motion trackingSergey Sharybin
=========================================== Major list of changes done in tomato branch: - Add a planar tracking implementation to libmv This adds a new planar tracking implementation to libmv. The tracker is based on Ceres[1], the new nonlinear minimizer that myself and Sameer released from Google as open source. Since the motion model is more involved, the interface is different than the RegionTracker interface used previously in Blender. The start of a C API in libmv-capi.{cpp,h} is also included. - Migrate from pat_{min,max} for markers to 4 corners representation Convert markers in the movie clip editor / 2D tracker from using pat_min and pat_max notation to using the a more general, 4-corner representation. There is still considerable porting work to do; in particular sliding from preview widget does not work correct for rotated markers. All other areas should be ported to new representation: * Added support of sliding individual corners. LMB slide + Ctrl would scale the whole pattern * S would scale the whole marker, S-S would scale pattern only * Added support of marker's rotation which is currently rotates only patterns around their centers or all markers around median, Rotation or other non-translation/scaling transformation of search area doesn't make sense. * Track Preview widget would display transformed pattern which libmv actually operates with. - "Efficient Second-order Minimization" for the planar tracker This implements the "Efficient Second-order Minimization" scheme, as supported by the existing translation tracker. This increases the amount of per-iteration work, but decreases the number of iterations required to converge and also increases the size of the basin of attraction for the optimization. - Remove the use of the legacy RegionTracker API from Blender, and replaces it with the new TrackRegion API. This also adds several features to the planar tracker in libmv: * Do a brute-force initialization of tracking similar to "Hybrid" mode in the stable release, but using all floats. This is slower but more accurate. It is still necessary to evaluate if the performance loss is worth it. In particular, this change is necessary to support high bit depth imagery. * Add support for masks over the search window. This is a step towards supporting user-defined tracker masks. The tracker masks will make it easy for users to make a mask for e.g. a ball. Not exposed into interface yet/ * Add Pearson product moment correlation coefficient checking (aka "Correlation" in the UI. This causes tracking failure if the tracked patch is not linearly related to the template. * Add support for warping a few points in addition to the supplied points. This is useful because the tracking code deliberately does not expose the underlying warp representation. Instead, warps are specified in an aparametric way via the correspondences. - Replace the old style tracker configuration panel with the new planar tracking panel. From a users perspective, this means: * The old "tracking algorithm" picker is gone. There is only 1 algorithm now. We may revisit this later, but I would much prefer to have only 1 algorithm. So far no optimization work has been done so the speed is not there yet. * There is now a dropdown to select the motion model. Choices: * Translation * Translation, rotation * Translation, scale * Translation, rotation, scale * Affine * Perspective * The old "Hybrid" mode is gone; instead there is a toggle to enable or disable translation-only tracker initialization. This is the equivalent of the hyrbid mode before, but rewritten to work with the new planar tracking modes. * The pyramid levels setting is gone. At a future date, the planar tracker will decide to use pyramids or not automatically. The pyramid setting was ultimately a mistake; with the brute force initialization it is unnecessary. - Add light-normalized tracking Added the ability to normalize patterns by their average value while tracking, to make them invariant to global illumination changes. Additional details could be found at wiki page [2] [1] http://code.google.com/p/ceres-solver [2] http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Motion_Tracker
2012-06-10Support for per-track Grease Pencil datablocks for motion trackingSergey Sharybin
Originally was needed to reach easy way of defining masks used for tracking (do eliminate textures which doesn't belong to feature when tracking. Implemented as alternative to GP datablock for clip and added switch between per-clip and per-track GP datablocks -- internal limitations of GP doesn't allow to display all GP datablocks easily. So either you see.edit GP associated with clip or with track. GP strokes associated with track are relative to track's position, following tracks during tracking and could be shared between several tracks. Masking code presents in libmv and there's rasterizer of GP datablocks for masks in blender's tracking module, but they still need to be glued together. Some documentation cound be found at this page: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Motion_Tracker#Grease_Pencil
2012-06-06style cleanup: (indentation)Campbell Barton
2012-06-06style cleanupCampbell Barton
2012-06-05style cleanupCampbell Barton
2012-06-04abbreviate mask-editing to mask-editCampbell Barton
2012-06-04picky change - rename keymap since there is no 'mask editor'Campbell Barton