Coder Social home page Coder Social logo

3D motion vectors about flownet2 HOT 3 CLOSED

huatson avatar huatson commented on May 23, 2024
3D motion vectors

from flownet2.

Comments (3)

huatson avatar huatson commented on May 23, 2024 1

thank you very much for the detailed answer!, definetly will try those, at least the blender options (2,4) since is the tool that i have knowledge,

from flownet2.

nikolausmayer avatar nikolausmayer commented on May 23, 2024

Hi,
good question and I have thought about it a little. I see 4 general possible paths to take to get to 3D vectors:

  1. Use a renderer that produces 3D vectors (well, obviously). I don't have a great overview (it's been a while since we did our dataset) but I heard RenderMan may support this better than others.
  2. Do as we did and hack support for 3D position outputs into a renderer of your choice. We used Blender Internal which is not a great choice otherwise, but it was possible to add custom render passes and data storage without blowing up the entire engine. This renderer's ability to shift the scene time index independently of its own render data storage was key; we needed to be able to re-identify each vertex over time.
  3. You can bake a "3D position" texture for every surface, then render different time frames with that texture. This concept is a ton of overhead because you basically need to re-bake every texture for every object in every time frame, and the texture resolution directly affects your data accuracy. On the upside, it is a universal concept that should be independent of the renderer.
  4. Use the builtin 2D speed vector and Z passes of a renderer, then postprocess to get 3D vectors. This is limited to surface points which are visible in both the source and target frames, and bears risks of "false positive" matches, but at least in Blender this works out of the box (given that the 2D pass output is accurate) and is fast (you don't need multiple renders).

(2.) is a lot of effort and probably doesn't work for every renderer. (3.) is inefficient and numerically not perfect. (4.) is limited to non-occlusion areas.

from flownet2.

nikolausmayer avatar nikolausmayer commented on May 23, 2024

If you find other options or run into interesting Blender problems, I'm always interested in details! ;)

from flownet2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.