Page 1 of 4
Animation Plugin Developed
Posted: Wed Aug 19, 2015 9:00 pm
by rwicks
Hello,
I've developed a plugin that allows you to take multiple views of a cloud, and generate a series of of images that interpolate smoothly between the different views. This was developed in response to the request for an animation plugin on the users/plugins board (
http://www.danielgm.net/cc/forum/viewto ... =17&t=1113) (I work for the person who made the request originally).
The plugin works by creating a series of time stamped images that can be post-processed into a movie using a tool like mplayer or ffmpeg. To use the plugin, create a series of views of the cloud you want to animate. Then select the views you want to animate, and run the plugin. The window that comes up each pair of views as a single entity. Adjust the overall frame rate and the time to interpolate over each set of views. You can preview the end result, although it runs a little slowly. Choose a directory to save the files into and then output the files.
Here's an example video (this ones a little jerky, it can be made smoother with practice, or if someone wants to improve the interpolation algorithm):
https://www.youtube.com/watch?v=JFlj8rXycWs
This plugin has been built under Linux and Windows 7 and works in both.
I've attached a .zip file containing the plugin.
One known bug is that it only works with an Orthographic projection. It isn't working right now with an Object-centered perspective.
-Ryan Wicks
Re: Animation Plugin Developed
Posted: Thu Aug 20, 2015 7:02 am
by daniel
That's great!
I'll look at the code asap.
Can I add this to the official repository? Maybe you'll want to do a 'pull request' yourself on github so as to be clearly tracked as the 'first author'?
P.S.: do you need help to fix the 'perspective' mode issue?
Re: Animation Plugin Developed
Posted: Thu Aug 20, 2015 4:42 pm
by rwicks
You can add it to the repository. I'm not too concerned about first authorship.
I haven't looked at the perspective mode problem yet. I'll take a look and see if I can fix it first. It's probably something simple.
Re: Animation Plugin Developed
Posted: Fri Aug 21, 2015 9:01 am
by daniel
Ok, so before pushing the code I fixed several things:
- to be more compliant with the equivalent tools in other applications, I renamed 'qVideo' in 'qAnimation'
- I also renamed several files accordingly
- I fixed the headers (so as to clearly make always the same copyright appear: "COPYRIGHT: Ryan Wicks, 2G Robotics Inc., 2015")
- I fixed some parts of the code to be a little more compliant with CC's coding rules
- I fixed the CMake script (you don't need to import the ui files and process them - CMake takes care of them)
- I'm not sure why but the last selected viewport was ignored
- and more importantly I fixed the way the 4x4 matrix interpolation was conducted (you can't interpolate each value separately - you have to use quaternions or equivalent methods otherwise you generate non-normal rotation matrices - otherwise the cloud was 'skewed' sometimes during the animation ;)
Anyway thanks for this great contribution. I'll surely continue to modify the code (in particular I'd like to set the frame rate as a constant displacement speed instead of a number of steps between each viewpoints). And I'll try to add support for the creation of videos files (without the need to use an external tool - maybe with
https://code.google.com/p/qtffmpegwrapper/).
Can you continue to work with the online version from now on?
The code is in
https://github.com/cloudcompare/trunk/t ... qAnimation
Re: Animation Plugin Developed
Posted: Fri Aug 21, 2015 1:45 pm
by rwicks
Thanks for making those changes and getting it into the repo. I'll update my copy and work from there if I need to make any changes.
I'll take a look at what you've done with the interpolation. I'm interested to see how you interpolate using quaternions.
I'm glad to be able to help out. I use Cloud Compare all the time at work, and recommend it to all of our customers.
Re: Animation Plugin Developed
Posted: Fri Aug 21, 2015 3:08 pm
by Dimitri
Thanks a lot Ryan for your contribution. I can' wait to try it !
Cheers
Dimitri
Re: Animation Plugin Developed
Posted: Fri Aug 21, 2015 8:47 pm
by daniel
Okay I've finished the first update. A new icon, a dialog reorganized and lots of the code syntax fixed.
But more importantly, I added an optional support in CMake for FFmpeg (
https://www.ffmpeg.org/) to generate movies instead of a series of images.
Simply check the 'WITH_FFMPEG_SUPPORT' option in CMake then set the required fields. I only tested it on Windows for now:
- cc_cmake_ffmpeg.jpg (112.88 KiB) Viewed 41567 times
(for Windows, the FFmpeg binaries can be downloaded from
http://ffmpeg.zeranoe.com/builds/)
Next steps:
[*] let the user set a constant speed (and only a speed modifier for each step)
[*] display the total length/duration of the movie
[*] find a way to save/remember those settings
[*] show the trajectory in 3D
Re: Animation Plugin Developed
Posted: Fri Aug 21, 2015 9:31 pm
by daniel
I just added progress bars (and "Cancel" buttons ;).
And here is a first shot of what can be done with this new plugin:
https://youtu.be/TZpsOP0uW6s
Re: Animation Plugin Developed
Posted: Sat Aug 22, 2015 3:19 am
by rwicks
I tried the plugin with FFMPEG under Arch linux, and it works great. The only change I had to make was to switch the FFMPEG linking to dynamic from static.
I also noticed that the perspective problems seems to have disappeared, in linux at least (the person who reported it was working in Windows). My guess is that this has something to do with the non-normal rotation in the first version.
Re: Animation Plugin Developed
Posted: Sat Aug 29, 2015 7:20 pm
by daniel
I've just uploaded a first version of the plugin with the latest beta (2.7.2).
It can be downloaded from the 'Download' page of the website:
http://www.cloudcompare.org/release/