<div class="gmail_quote">On Mon, May 9, 2011 at 10:47 AM, Ton Roosendaal <span dir="ltr">&lt;<a href="mailto:ton@blender.org">ton@blender.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
Here&#39;s notes I wrote in gsoc review days, suggestion for Blender work<br>
Sergey can do. There&#39;s no libmv specific info, this is (was) unknown<br>
for now. Dark matter, but fits in design :)<br></blockquote><div><br></div><div>Most of the blender matchmoving code should be libmv-independent. That&#39;s just good engineering!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
(Note: in Blender we separate ID data from &#39;indirect&#39; data. The first<br>
has option to be linked and used everywhere, appended/linked from<br>
files, used in nodes, etc).<br>
<br>
Tracker integration<br>
<br>
1) New ID: MovieClip<br></blockquote><div><br></div><div>Sorry to be stupid, but what&#39;s a &quot;New ID&quot;? Is this a new object type like Camera or Mesh?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

- better definition of how sequence of images works<br></blockquote><div><br></div><div>I&#39;m not sure what this means. Are you suggesting fleshing out the concept of a MovieClip is? For example, resolution, number of frames, file name, etc?</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- ffmpg movie file support<br></blockquote><div><br></div><div>Doesn&#39;t blender already have a nice system for accessing movie sequences? I remember using this some 4 years ago for my thesis.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

- proxy level support (like 4k -&gt; HD)<br>
- proxy level with files as well as making levels in memory<br></blockquote><div> </div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>While proxying is great, I&#39;m not sure we&#39;ll need it for the first version. I will ensure the design does not preclude adding this in the future.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- optimized for real time playback<br></blockquote><div><br></div><div><meta http-equiv="content-type" content="text/html; charset=utf-8"> We definitely want realtime playback!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Here tracking points (markers) can be stored, track paths, fcurves,<br>
whatever structs needed for libmv refining as well<br></blockquote><div><br></div><div>Yes, this is reasonable.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

- 3d camera info stored? Lens (un)deform info<br></blockquote><div><br></div><div>Sounds reasonable. We likely don&#39;t want to support solving for a single camera across multiple shots.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

- Need good mapping from marker results to blender scene data<br>
(objects, drivers?)<br></blockquote><div><br></div><div>This is where an hour or so of quality design time from the core blender devs will save us time. Can you suggest either a reasonable approach here or at least a couple paths to investigate? There are some challenges here since the libmv side has limited experience with the blender internals. If you can be overly explicit in your descriptions of blender internals that would be fantastic!</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Solve how to work with masks here<br></blockquote><div><br></div><div>I propose entirely punting on masks for now. Secretly I hope we will deliver the most-basic-tracker-ever ahead of schedule (October?), and in that case, we can work on masking. However, I think it will be a distraction otherwise.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">(reasoning why markers are not &quot;ID&quot;: mostly because it&#39;s fully tied to<br>
a movie clip itself, no sharing is required. Via MovieClip ID markers<br>
can be addressed and used).<br></blockquote><div><br></div><div>I&#39;m not entirely convinced about this. How will the markers positions be stored? I would prefer if they used blender&#39;s internal fcurves system, but doesn&#39;t that already suggest that they should be full objects themselves?</div>
<div><br></div><div>Does blender have a way of grouping objects such that the MovieClip &quot;owns&quot; the markers / bundles but that they are still full fledged objects?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Future:<br>
- allow MovieClips in sequencer<br>
- MovieClip node in compositor<br></blockquote><div><br></div><div>This is required. At the least, there must be a way to render out the composited scene and render. It&#39;s hard for me to imagine a practical system that doesn&#39;t have this feature.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Allow type &quot;From composite tree&quot;<br>
   (stores or links node tree)<br></blockquote><div><br></div><div>Sounds great, for next year :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">2) New editor: SpaceClip<br>

<br>
- links to MovieClips<br></blockquote><div><br></div><div>By links do you mean has a dropdown that lets you select a movieclip? What about a &quot;add movie...&quot; button?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

- allow realtime playback of clips<br>
   (could become &quot;Render -&gt; Play Anim&quot; as well)<br></blockquote><div><br></div><div>This will require a &quot;scrubber&quot; so that you can scrub back and forth. This is a simple but necessary feature for practical semi-manual tracking.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Design region UI for libmv options, track point editing, solving,<br>
filters, etc<br></blockquote><div><br></div><div>Yes, and this will be some work.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Manage &amp; edit markers, masks<br></blockquote><div><br></div><div>Let&#39;s punt on masks.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
- Various display options, like to see 3d scene in back blended/<br>
overlayed </blockquote><div><br></div><div>The view-3D-scene-over-clip is required. Otherwise it will be difficult to asses the quality of a solve within the matchmoving window.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Future:<br>
- Color grading options!<br>
   - extract pixel-masks from movieclip (various color formulas)<br>
   - use such masks for effects... via nodes? layers?<br>
<br>
To think over:<br>
- Painting here, or in Image window?<br>
   How to manage paint-on-sequence (fast)<br>
   Tracking paint strokes...<br>
<br>
(reasoning why new editor: more practical for this experimental stage,<br>
also allows to create a full tracker-workflow unique UI layout without<br>
ugly modes in other editors).<br></blockquote><div><br></div><div>I agree that we want a new editor. Gluing tracking functionality into existing ones will just make a mess of both.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
3) New Image options:<br>
- Procedural image type &quot;video stream&quot; -&gt; allow playback of connected<br>
video device (video texture)<br>
   (no paint allowed, not for textures in render)<br>
- Allow image type &quot;From composite tree&quot;<br>
   (stores or links node tree)<br>
<br>
4) new ID type CurveMask<br>
- 2D in unified 0-1 space, so it maps everywhere<br>
- editing allowed in compositor, spaceClip, etc<br>
- curveMask compo nodes, texture, sequence strips...<br></blockquote><div><br></div><div>Can you expand on what this CurveMask is and is for? Perhaps I&#39;m not understanding.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
5) Depsgraph<br>
- need a way to solve all dependencies on nodes, images, movies,<br>
sequence.<br></blockquote><div><br></div><div>Can you expand on what this means? I know what solve means in the context of a 3D reconstruction, but it&#39;s less clear in this case.</div><div><br>Keir</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
<br>
-Ton-<br>
<br>
------------------------------------------------------------------------<br>
Ton Roosendaal  Blender Foundation   <a href="mailto:ton@blender.org">ton@blender.org</a>    <a href="http://www.blender.org" target="_blank">www.blender.org</a><br>
Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands<br>
<br>
_______________________________________________<br>
Bf-vfx mailing list<br>
<a href="mailto:Bf-vfx@blender.org">Bf-vfx@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-vfx" target="_blank">http://lists.blender.org/mailman/listinfo/bf-vfx</a><br>
</blockquote></div><br>