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
2014-03-31Code cleanup: use false/true/bool for maskingSergey Sharybin
2014-03-28Implement asymmetric and free handles type for masksSergey Sharybin
Summary: The title actually says it all, it's just possible to have independent free handles for mask splines. Also it's now possible to have aligned handles displayed as independent handles. Required changes in quite a few places, but they're rather straightforward. From user perspective there's one really visible change which is removed Handle Type menu from the panel. With asymmetric handles it's not clear which handle type to display there. So now the only way to change handle type is via V-key menu. Rewrote normal evaluation function to make it deal with new type of handles we support. Now it works in the following way: - Offset the original spline by maximal weight - Calculate vector between corresponding U positions on offset and original spline - Normalize this vector. Seems to be giving more adequate results and doesn't tend to self-intersect as much as old behavior used to, There're still some changes which needed to be done, but which are planned for further patch: - Support colors and handle size via themes. - Make handles color-coded, just the same as done for regular bezier splines in 3D viewport. Additional changes to make roto workflow even better: - Use circles to draw handles - Support AA for handles - Change click-create-drag to change curvature of the spline instead of adjusting point position. Reviewers: campbellbarton CC: sebastian_k, hype, cronk Differential Revision: http://developer.blender.org/D121
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-27Implement clipboard for mask splinesSergey Sharybin
So now it's possible to copy-paste splines between layers. Implementation is pretty much straightforward and duplicates some logic which we've got in sequencer/tracking clipboards. Will work on a common routine for clipboards later, for now it's not so much crucial to have.
2013-12-27Remove TODO. Those args could be useful in the future.Sergey Sharybin
2013-12-20Don't use with_resol suffix for functions which doesn't get resolutionSergey Sharybin
2013-12-20Code cleanup: remove unused functions from mask moduleSergey Sharybin
This functions doesn't seem to be used even from a commented code.
2013-12-03Code Cleanup: remove redundant/misleading NULL checksCampbell Barton
2013-11-25UI: remove unnecessary confirmation popupsEmanuel Claesson
This makes a number of operators no longer ask for confirmation, rather it will show an info message after performing the operation. Ref T37422 for decision. In particular, these were changed: * Delete objects, bones, keyframes, masks, mask curves, motion tracks, markers. * Clear and delete keyframes in the 3D view. * Align bone to parents. * Separate bones from armature. * Group/ungroup metastrips in sequencer. * Copy/paste objects to/from buffer. Reviewed By: brecht, dingto Differential Revision: http://developer.blender.org/D35
2013-11-04code cleanup: typo in function nameCampbell Barton
2013-10-29Code cleanup: more int->bool conversions mask moduleSergey Sharybin
2013-10-29Code cleanup: use bool instead of int in mask moduleSergey Sharybin
2013-09-12code cleanup: headers - doxy comments.Campbell Barton
2013-09-11Fix #36701: Mask pivioting doesnt honor parentingSergey Sharybin
Made mask transformation aware of parent matrix.
2013-08-16Merge plane track feature from tomato branchSergey Sharybin
This commit includes all the changes made for plane tracker in tomato branch. Movie clip editor changes: - Artist might create a plane track out of multiple point tracks which belongs to the same track (minimum amount of point tracks is 4, maximum is not actually limited). When new plane track is added, it's getting "tracked" across all point tracks, which makes it stick to the same plane point tracks belong to. - After plane track was added, it need to be manually adjusted in a way it covers feature one might to mask/replace. General transform tools (G, R, S) or sliding corners with a mouse could be sued for this. Plane corner which corresponds to left bottom image corner has got X/Y axis on it (red is for X axis, green for Y). - Re-adjusting plane corners makes plane to be "re-tracked" for the frames sequence between current frame and next and previous keyframes. - Kayframes might be removed from the plane, using Shit-X (Marker Delete) operator. However, currently manual re-adjustment or "re-track" trigger is needed. Compositor changes: - Added new node called Plane Track Deform. - User selects which plane track to use (for this he need to select movie clip datablock, object and track names). - Node gets an image input, which need to be warped into the plane. - Node outputs: * Input image warped into the plane. * Plane, rasterized to a mask. Masking changes: - Mask points might be parented to a plane track, which makes this point deforming in a way as if it belongs to the tracked plane. Some video tutorials are available: - Coder video: http://www.youtube.com/watch?v=vISEwqNHqe4 - Artist video: https://vimeo.com/71727578 This is mine and Keir's holiday code project :)
2013-06-10Changes to mask evaluationSergey Sharybin
- BKE_mask_update_scene was only used with do_newframe=FALSE, removed this argument. - Made it so BKE_mask_update_scene is able to handle LIB_ID_RECALC_DATA case. Namely, if mask ID is tagged for data update it means shapekeys will be re-evaluated (as if do_newframe=true). If mask id only tagged for LIB_ID_RECALC, then no shapekey evaluation happens (same as it used to behave before). This means, doing DAG_id_tag_update(&mask->id, OB_RECALC_DATA) will lead to shapekeys re-evaluation which is really needed in such operators as clearing shapekeys (and cleaning shapekeys which is in tomato branch yet). This is a bit silly to use OB_RECALC_DATA sine mask is not an OB, but could not see better way to do it now. This fixes missing mask re-evaluation after clearing shapekey, would expect no other functional changes.
2013-05-23Masks api improvementsSergey Sharybin
- Added MaskLayer.splines.new (which creates single spline and returns pointer to it). - Added MaskLayer.splines.remove() to remove given spline. - Added MaskSpline.points.new() which creates new point in the origin and returns pointer to it. - Added MaskSpline.points.remove() to remove given point.
2013-05-08use unsigned int, for mask rasterizer.Campbell Barton
2013-02-05Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashesSergey Sharybin
Issue was caused by couple of circumstances: - Normal Map node requires tesselated faces to compute tangent space - All temporary meshes needed for Cycles export were adding to G.main - Undo pushes would temporary set meshes tessfaces to NULL - Moving node will cause undo push and tree re-evaluate fr preview All this leads to threading conflict between preview render and undo system. Solved it in way that all temporary meshes are adding to that exact Main which was passed to Cycles via BlendData. This required couple of mechanic changes like adding extra parameter to *_add() functions and adding some *_ex() functions to make it possible RNA adds objects to Main passed to new() RNA function. This was tricky to pass Main to RNA function and IMO that's not so nice to pass main to function, so ended up with such decision: - Object.to_mesh() will add temp mesh to G.main - Added Main.meshes.new_from_object() which does the same as to_mesh, but adds temporary mesh to specified Main. So now all temporary meshes needed for preview render would be added to preview_main which does not conflict with undo pushes. Viewport render shall not be an issue because object sync happens from main thread in this case. It could be some issues with final render, but that's not so much likely to happen, so shall be fine. Thanks to Brecht for review!
2012-09-15fix incorrect macro for mask handle selection checking.Campbell Barton
2012-09-15quiet -Wmissing-prototypes warnings, and enable this warning by default for ↵Campbell Barton
C with gcc. helps for finding unused functions and making functions static, also did some minor code cleanup.
2012-09-14fix for 2 crashes freeing masksCampbell Barton
- freeing a mask from RNA BKE_libblock_free() twice on the mask. - loading a new blend file would only free the mask and not unlink it from nodes - it would access freed memory.
2012-09-13fix [#31946] Masking doesn't respect pixel ratioCampbell Barton
2012-09-06code cleanup: remove deprecated defines and some struct membersCampbell Barton
2012-08-26code cleanup: remove dead assignments, gave mask vars clearer names & moved ↵Campbell Barton
some mask evaluation funcs into mask_evaluate.c
2012-08-26code cleanup: split out mask spline evaluation into its own file.Campbell Barton
2012-08-21mask: skip self intersection on drawing when fill is disabled, since it was ↵Campbell Barton
only drawing on one side of an unfilled spline.
2012-08-20fix for mask feather intersection checks not working right for non-filled, ↵Campbell Barton
feathered masks. now do intersection checks for both sides of the feather.
2012-08-06Mask feather self-intersection checkSergey Sharybin
Enable self-intersection check for preview. In own tests average time for this operation on mango files was ~0.0015sec, and it was like 20 splines max which still gives pretty smooth performance on my core quad machine. Would think let's check how it works for now, if it'll give some issues here, would just avoid tessellation on every redraw by storing tessellation in some cache (probably in mask user). Another change is related on a way which loop to collapse. Changed length check with AABB size check. A bit slower but should be a bit more predictable.
2012-08-05resolve some issues with curve resolution calculactionCampbell Barton
- resolution could become so high that it would wrap around to a negative number, now check for small numbers before doing float division. - resolution was being calculated in some cases when it already met the clamp value - now this is skipped.
2012-07-31remove references to raskter from compositor and BKE mask.Campbell Barton
2012-07-31use the same rasterizer as the compositor for the sequencer.Campbell Barton
2012-07-27clamp mask resolution, the occasional crash would happen failing to alloc ↵Campbell Barton
when adding feather points very close together.
2012-07-27copy support for mask datablocksCampbell Barton
2012-07-26mask/image viewer now works with non 1:1 image aspect, editing masks in the ↵Campbell Barton
image viewer should be generally usable now though still some TODO's left.
2012-07-17disable feather collapse during drawing, its very slow.Campbell Barton
2012-07-16use calculated spline resoltion rather then fixed at 32.Campbell Barton
2012-07-16correct own naming error BLI -> BKECampbell Barton
2012-07-14replace masking rasterizer with a more simple geometry based rasterizer (for ↵Campbell Barton
the compositor). notes: - uncomment #define USE_RASKTER in BKE_mask.h to use the previous mask rasterizer. - slightly slower for regular masks but significantly faster for feather. - main benefit is that it threads well so works nice for tile compositor. - feather is lower quality, can use some improvements here. - feather can also use some interpolation enhancements, will do later.
2012-07-13new mask rasterizer written to take advantage of the compositors threading, ↵Campbell Barton
mostly functional but disabled by default (still a little wip).
2012-07-12ability to calculate mask curve and feather with predefined resolution (*_ex ↵Campbell Barton
functions)
2012-07-10some code refactors in raskter.c to sync it with build where mask tiling is ↵Peter Larabell
being developed. Also adds a bit more mask tiling code.
2012-07-04Mask node: create a copy of layers to be rasterized in initExecutionSergey Sharybin
This creates a list of splines to be rasterized in nitExecution which is being called from main thread. This should resolve possible threading issues discovered in tomato branch.
2012-06-22mask re-key feature - mango request. ability to reset selected points shape ↵Campbell Barton
key data. useful if you add many keys to one part of a curve, then later want to key another part - but dont want to continuously make the same corrections.
2012-06-21option to disable feather, since its so slow - for interactively editing ↵Campbell Barton
masks its useful to be able to disable. also rename RNA to 'use_antialiasing'
2012-06-13add Anti-Aliasing (very rough draft algorithm, NOT FINAL version) to raskter ↵Peter Larabell
lib. Code is still quite messy but will be replaced when final algo comes in anyway.
2012-06-13mango requestCampbell Barton
- highlight active mask layers. - remove keyframes when all layer data is removed.
2012-06-12remove input socket of mask node, this wasnt used.Campbell Barton
2012-06-08mask animation keys now editable in the dope sheet (duplicate, transform, ↵Campbell Barton
delete, select- etc).
2012-06-08support for subframe animation evaluation for masks.Campbell Barton