[Bf-vfx] Blender data, big picture

Sergey I. Sharybin g.ulairi at gmail.com
Tue May 10 17:49:41 CEST 2011


  Hi everybody,

If somebody still not sure, i'm exactly that student who'll be working 
under integrating libmv to Blender.

After all discussions, i could imagine workflow we want to reach (all 
this pre-/post-processing and so on). But let's be sequentially. We 
still got nothing implemented but arguing about place of workflow where 
undistortion should happen.

I'd prefer to stick to initial proposal with new editor type and new 
data ID named MovieClip. I'll describe why i prefer this a bit later.

So, proposal with working under tracker is the following:

- Switch to "Tracking" scene layout where there'll be SpaceClip editor 
opened. Also, there'll be timeline for searching/bplayback-ing image 
sequence.
Initially, implement tools-ish approach of working with this 
sequence/tracker data. No nodes at all for first time and working with 
such editor would be "iterative" -- you'll be working under 
clearing/refining/resolving sequence until you've got good result.
- In this SpaceClip you'll open (or choose already opened) video/image 
sequence and start working with it.
- There'll be Toolshelf with panels like "Lens tools", "Marker tools", 
"Solver tools" (i hope meaning of this panels is clear)roperties region 
to set such parameters, as marker's search area and so on.
   So to change marker's properties, i.e. you'll simply select it in 
SpaceClip, open Peoperties panel (if it's stil lclosed) and input some 
parameters there. The same approach could be user for other objects in 
clip (camera or whatever else).
- It was useful for me to see tracker points (i could be a bit wrong 
here with terminology, but i mean representation of markers in 3d 
world). I think displaying them (as set of empties or bones, i.e.) in 3d 
view would be what we need. Ofcourse we'll need selection 
synchronization between markers and trackers. I don't think it's an issue.

This should be enough for first-generation tracker in Blender. It'll be 
already big step forward if it'll be working. Ofcource more cool things 
would be implemenetd after this.

Now a bit about internal side.

Data structure overview. There were some discussions about where all 
this markers/lens/etc data would be stored and how it'll be applied. One 
of variants was to use modifiers' like approach -- modifier for 
tracking, modifier for solving.. Well, it's a bit complicated due to 
there'll be almost always auto tracking+manual tracks+solving, But i 
like idea of separating data from VideoClip and keeping data outside of 
VideoClip could help with mosing to node-based design. I can't give 
exact image of this structures, but i'd prefer keep it separatelly (not 
"hardcoded" to clip). Something like

     struct VideoClip*{
         ...
         struct TrackerData *tracker_data;
         ...
     }
     struct TrackerData {
         ...
         struct MarkersData *markers_data;
         struct LensData *lens_data;
         struct WhateverelseData *...;
         ...
     }

This MarkersData/LensData/etc could be easily stored in nodes in the 
future. And ofcourse all this things related to RNA..

But there's some issues i can't solve here myself. They are related to 
data types and API which are required/acceptable by libmv. I hope Keir 
would help me with this issues. So, questions are:

- I suppose we should sotre some kind of libmv context, right?
- How/where markers should be stored? How their "animation" should be 
stored?
- The same question about trackers.
- How would we pass image sequence to libmv? Also it'll be cool to know 
which API Blender should use (functions and so on).
- Not sure if it's time for such questions, but it'll be nice if 
tracking/solving woudl happen in separated thread and displaying kind 
progress bar. Some kind of "special" libmv API could be needed for this, 
not sure.
- And ofcourse issues related to cache. Would be nice to know if there's 
some cache in libmv already and whar it supports/would support.

If we'll decide that there would be nicer to have tracker ID as initial 
entity (this could happen because of different issues -- tracking from 
multiplie sources, i.e.), there wouldn't be much changes in DNA -- we'll 
just move VIdeoClip inside TrackerData and make TrackerData "root" of 
tracking stuff. Also, after such switch we coudl use Image instead of 
Clip (we've been discussing it today in IRC).

Note: do not treat this data structures as something finished, i just 
wanted to show it'll be better to keep data "separated" and not keeping 
all markers/lens/trackers data in the single structure. I've got feeling 
it'll help to make design more easily adaptable for nodes.

A bit about tools. Tools (like auto-track, solve, so on) would be 
implemented in SpaceClip to deal with very basic tracking. In the 
future, new tools would be added or even moved to other editors -- it 
shouldn't be difficult. I think we could start from auto 
track/markers/solving tools and extend them when very basic workflow 
would work.

Now a bit about that new ID and editor we've been arguing about this 
afternoon. Yep, i'l lagree it could be some duplicated work, but we'll 
never know which of changes are really necessery and which not (before 
we'll try ofcourse) and such kind of "experiment" could have negative 
result on existing tools. And i'm also warrying about further support of 
code -- fixing bug in tracker could break texture stuff (and main reason 
of it would be that there're different developers who works for textures 
and tarcker and they can't predict if their change would breac something 
in other place). It will also help to keep UI clear and logical. 
There'll be no paiting/UV tools while match-moving. This looks like an 
advantage. And.. never of us was really working under tracking software, 
so why not accept this plan as initial? It could be easult changed in 
the future (if we'll decide it's necessery).

And one more question mostly to Keir. Last time we've been talking in 
IRC he proposed to contentrate on 2d stuff without touching 3d/solving. 
But i've been able to use SfM from libmv (reconstruct_video) which gave 
me quite good result on some sequences from lessons for other tracker's 
software. So maybe it's not too much to be finished there to be useful 
from Bledner?

-- 
With best regards, Sergey I. Sharybin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-vfx/attachments/20110510/a2aacccd/attachment.htm 


More information about the Bf-vfx mailing list