Week 7: Billboard spheres and implementing interpolators using closures#

What did you do this week?#

  • Restructured the keyframe animation interpolators using closures to be functions instead of classes #647. Now it is easier to implement new interpolators with the help of the functions existing in fury/animation/helpers.py. Also, now unit tests can be added for the latter functions.

  • Added two examples explaining how to implement a custom interpolator that can be used by the Timeline, one using classes and the other using closures.

  • Fixed rotation issue that Shivam discovered while using the Timeline to animate glTF models. So, rotation in VTK is done by rotating first around Z-axis, then X-axis, then finally around Y-axis, which was not the order I was using to convert from quaternions to Euler degrees.

  • Made changes requested by Javier and Filipi on the billboards using geometry shader PR, and made an example of how to use this billboard to show an impostor sphere which looks almost like a real high poly sphere. Also benchmarked using this version of billboard vs using a quad-based billboard, and how they both affect the FPS of the animation.

What is coming up next week?#

  • Document the new closure-based interpolators. And make some slight renaming changes that we discussed in today’s meeting.

  • Add tests to the functions inside fury/animation/helpers.py.

  • Make changes to the geometry-shader-based billboard to make it more like the quad-based billboard actor while maintaining the new features.

  • Integrate the already-implemented shader functionality to the new Timeline in a separate draft or PR.

Did you get stuck anywhere?#

I got stuck trying to get and modify the vertices (centers) of the billboard actor.