zeffii / bpy_script

a minimal declarative language for Blender Addon Scripts
2 stars 1 forks source link

VSFM to Blender #3

Open soniquev8 opened 10 years ago

soniquev8 commented 10 years ago

@stansellb here.

Thanks for letting me bounce this off of you. The add-on/script I'm attempting to modify is meant for the bundler software as created by Konrad Kölzer found here - http://koelzk.crispy-cow.de/article/9/importing-bundler-scenes-to-blender (also available by digging through the Blender Add-on repository). It works fairly well with scenes exported from Visual SFM, as long as the files and directory structure are altered beforehand:

VSFM produces a directory structure similar to: -Directories.../ -->Subdirectories.../ --->dense.nvm.cmp/ ---->00/ ----->data/ ------undistorted images -----bundle.rd.out (camera data - position, orientation, focal length, etc) -----list.txt (list of undistorted images in data subdirectory)

However the script requires a specific structure: /selected directory/ -bundle/ --bundle.out (same as bundle.rd.out, except renamed) -list.txt (items in original file are prefixed with 'visualize\' for some reason, the script requires the images be in the 'root' of the selected directory. Using a text editor, I can replace 'visualize\' with './' and it works [at least in a Mac/Unix environment], but I'd rather edit the script so this isn't necessary) -images (concordant with list.txt)

The import script does a good job with the point cloud, however has the disadvantage of creating a new camera and one textured plane for every image in the list. While seemingly accurate, it has the disadvantages of lagging the display (especially when there are large numbers of images) and switching active cameras can be a pain, as I'm sure you know.

I have a theory that perhaps importing the images as a movie clip (one image per frame) then using either a driver or subsequent keyframes to control the position, rotation, focal length, and even distortion of the lens of a single camera would be more efficient. One would then just set the movie clip as a background image of the camera and be free to model by cycling through the images and camera positions. If multiple cameras were desired, they could be easily achieved using a dupliframes modifier (I think).

Just to be clear, I'm not attempting camera tracking (inserting objects into footage), but photogrammetry (reconstructing real places/items in the 3D space). I've found other methods, but they seem to be either out of my direct control (123D Catch), obtuse (Meshlabs), more complicated than they should be (python photogrammetry toolbox), or way more effort than I care to invest (ArcheOS).

'My' idea was actually inspired by this tutorial: http://youtu.be/xjjW2yKjUDM and I think it could be a viable workflow if I can get all of the details fleshed out. I'm making some progress, but haven't produced a working plugin yet as I have some python experience but am new to the Blender API. I would sincerely appreciate any advice/assistance you could provide.

soniquev8 commented 10 years ago

I'm actually attempting to reconstruct the inside of the church where my wife and I were married (not for any useful purpose, I just like creating things in Blender) and would not be averse to sending the data I have to you if it could illustrate what I'm talking about.

zeffii commented 10 years ago

no guarantees! I should also mention that I have zero practical automated experience in this area.

Editing the script

I can replace 'visualize\' with './' and it works [at least in a Mac/Unix environment], but I'd rather edit the script so this isn't necessary)

That doesn't seem like a difficult thing to do, but the rest requires time, dedication and most importantly curiosity to figure out. I'll be of limited assistance because of the afore-mentioned lack of working knowledge of the system. Currently my free time is pumped into Sverchok.

Seems to me the supreme person to contact about this would be Konrad himself? at least you would be speaking in terms that each of you would grasp.

SBCV commented 6 years ago

I'm a bit late to the party, however I wrote recently a blender addon to import nvm files. I'm using it extensively and it works for Blender 2.78 and above. (Maybe it works also for older versions)

https://github.com/SBCV/Blender-Import-NVM-Addon

Cheers