| All posts |
  • v2.0 feature showcase - Transitions

    published on 9/30/2013 8:26 PM

    Last year while waiting for Qt 5.0 to be released I managed to add scene transitions. This was a feature I had planned for a future release but seemed like a fun thing to add while waiting for Qt 5.0. In v1.x you just get a abrupt scene change when moving from scene to scene. The issue with this is that you don't get any form of continuation between the scenes. The scenes will always be independent so creating a workable continuation is difficult. For example if you create a normal demoscene production you can follow a object as it goes from scene to scene or at the very least keep the same color scheme. This makes it feel like everything belong together. With completely independent scenes this is a lot more difficult. However the new transitions scenes helps quite a bit.

    It's a very simple but powerful system that at it's core is just a normal scene with a transition node that outputs two textures. One texture is the current scene and the other texture is the next scene we want to move to. The only imposing limits are that at time 0.0 the from scene should cover the whole screen and at time 1.0 the to scene should cover the whole screen. It's then up to the transition scene to create some interesting way to move from one to the other. It can be as simple as just a cross fade (return lerp(tex1, text2, time)) or using 3d and wrapping it onto a 3d cube that rotates around to reveal the new scene as in the following screenshot that shows off the Cube Switch Transition.

    Cube Switch Transition Since it's just two texture the possibilities are just about endless

    Of course rendering what can be up to 7 scenes (Two 3 layered scenes and the transition scene) can be quite taxing. To speed this up you can tell the visualizer to render the scene texture in lower resolution. Normally rendering the original from scene at 100% and the scene we want to go to at 50% seem to be enough and you don't notice too much of this lower resolution. As soon as the transition is done the new scene will be rendered at it's full resolution.

    This new system greatly helps the visualizer to be something that you can just start at a party and let it run while continuously creating something that you want to see what comes next.

    So far there are a bit over 30 transition scenes in v2.0 that should provide a bit of a variety, for example the Random Circle transition is one of them. Random Circle transition