-
-
Notifications
You must be signed in to change notification settings - Fork 447
Description
Smooth preset transitions were broken for a long time now, and before that, they weren't really pretty. With the renderer rewrite now done, it has become way easier to blend two presets in new ways. This issue will track progress on implementing a new transition effect, which uses randomly selected shaders to blend from the old to the new preset.
These shaders will be static in the first iteration, but a later projectM versions will get new API functions to load user-defined transition shaders and possibly callbacks to select each transition on the application side. This would, for example, allow users to create preset playlists with specific transitions after each preset.
The transition shaders will have the following properties:
- Written in GLSL, so we don't need to translate them via hlslparser.
- Independent from the preset effects - they're run on top of the final image of both presets.
- Ideally cheap calculations only, as they will run on top of two full preset rendering steps.
- Support for ShaderToy syntax/variables to make it easier to test and then copy & paste the shaders for use with projectM.
The shader will receive a number of uniforms which contain different values which might be interesting to the transition. Some of these are:
- The linear transition progress from 0.0 to 1.0
- Additional progress values calculated with non-linear easing functions
- Audio analyzer data like bass/mid/treb values, as used in preset shaders
- Random values
- Possibly texture samplers with the same selection mechanism used in preset shaders
Any suggestions, wishes or ideas on this topic are highly appreciated - please leave a comment if you have some input on this!
Metadata
Metadata
Assignees
Labels
Type
Projects
Status