August 6, 2013, 04:16 (GMT) |
August 6, 2013, 00:39 (GMT) |
August 3, 2013, 20:19 (GMT) |
Code cleanup: made function name consistemt |
August 3, 2013, 19:54 (GMT) |
Remove downsample operation It didn't work too much nice, and finishing it is not so high priority for now. Files would be in svn history anyway, so if someone would like to look into the code, he's welcome to do this. |
August 3, 2013, 19:53 (GMT) |
Remove plane track mask warping operation After some thoughts, it's not needed actually. As soon as mask is parented to a plane, Mask input node would give you warped mask already. |
August 3, 2013, 19:53 (GMT) |
Made corner sliding more convenient Now it's possible to slide corner roughly, then press Shift to switch to accurate positioning. Before this change corner used to jump when one presses shift, which wasn't too much convenient. |
August 3, 2013, 19:53 (GMT) |
Fix wrong usage of mul_v3_m3v3. You couldn't use the same vector as input and output. |
August 3, 2013, 19:53 (GMT) |
Use a proper depending are of interest for image warping Instead of requesting the whole frame to be evaluated before plane warping could be invoked, warp tile into original image space and use it's bounding box as area of interest. There're some tricks with margins going on still, but without them some tiles are missing. Quick tests seems to be working fine, we could solve possible remaining issue later. |
August 3, 2013, 19:53 (GMT) |
Replace crappy custom sampler with EWA one Our sampler could be useful for more general usage, like simpler downsampling in scale node, but it needs to be improved before it's really useful. It was giving lots of jittering artifacts which isn't good for motion tracking. So now image wrap operation used EWA filtering. For now, it uses copy-pasted dx/dy calculation which came from MapUV operation. Ideally we need to get rid of duplicated code, but it's not so trivial for now because of UV coordinates are calculating in different ways. Not a big deal to have duplicated code for a while. |
August 3, 2013, 19:53 (GMT) |
Initial code layout for plane track deform node Idea of this is: - User selects which plane track to use (for this he need to select movie clip datablock, object and track names). - Node gets an image and mask inputs (both are optional). - Node outputs: * Input image warped into the plane. * Input mask warped by the plane. * Plane, rasterized to a mask. Warping image is done by computing reverse bilinear coordinates, and getting pixel from corresponding position. This requires some tricks with downsampling to make warped image looks smooth. Currently compositor doesn't support downsampling, so we needed to implement our own operation for this. Currently idea is dead simple: value of output pixel equals to an average of neighborhood of corresponding pixel in input image. Size of neighborhood is defined by ratio between input and output resolutions. This operation doesn't give perfect results and works only for downsampling. But it's totally internal operation not exposed to the interface, so it's easy to replace it with smarter bi-directional sampler with nicer filtering. Limitations: - Node currently only warps image and outputs mask created out of plane, warping input mask is not implemented yet. - Image warping doesn't report proper depending area of interest yet, meaning interactivity might be not so much great, - There's no anti-aliasing applied on the edges of warped image and plane mask, so they look really sharp at this moment. |
August 3, 2013, 19:46 (GMT) |
August 2, 2013, 08:50 (GMT) |
Compute homographies when creating new plane tracker When new plane tracker is creating, blender will go over tracked sequence of point tracks, compute homography between neighbor frames and deform plane rectangle using this homography. This makes rectangle plane follow tracked plane quite nicely. But as an additional homographies will be updated after corners were slided with a mouse. Additional changes: - Display keyframed/tracked information in the cache line for plane tracks (the same way as it's done for point tracks). - Fix couple of buys in homography C-API. |
August 2, 2013, 07:59 (GMT) |
Add Procrustes PNP ("PPnP") resection algorithm to libmv This adds a new Euclidean resection method, used to create the initial reconstruction in the motion tracker, to libmv. The method is based on the Procrustes PNP algorithm (aka "PPnP"). Currently the algorithm is not connected with the motion tracker, but it will be eventually since it supports initialization. Having an initial guess when doing resection is important for ambiguous cases where potentially the user could offer extra guidance to the solver, in the form of "this point is in front of that point". |
August 2, 2013, 05:45 (GMT) |
Initial code layout for real plane tracker This commit includes: - DNA structures layout. It's not completely finished yet, and at some point files could become broken, but we'll try to avoid this as much as we can. - Basic RNA code layout for new data structures. Not completely finished in terms it's not possible to define plane tracks from Python just yet. - Operator to define the plane. - Deletion and selection operators are aware of planes. - Plane marker's corners could be slided with mouse. Still lots of thing to be done, but we need to commit at some point so we could share the code work. |
August 1, 2013, 00:34 (GMT) |
Fix compilation error after recent merge. |
July 31, 2013, 22:34 (GMT) |
June 10, 2013, 15:11 (GMT) |
Remove files which were actually removed form trunk already. |
June 10, 2013, 15:11 (GMT) |
Remove workarounds for mask depsraph issue, They're not needed after recent trunk merge. |
June 10, 2013, 14:28 (GMT) |
June 10, 2013, 12:33 (GMT) |
|