skybrush-io / studio-blender

Skybrush Studio for Blender - a Blender addon for designing and validating drone shows
https://skybrush.io
GNU General Public License v3.0
43 stars 30 forks source link

[feature request] - loops on temporal Output x #18

Open NelloF opened 5 months ago

NelloF commented 5 months ago

about the light effects: temporal Output x mapping could have a "loop x number of times" option during the total duration of the effect. So the color change could repeat with different speed depending on the number of loops value
(1 = no loops)

image

ntamas commented 5 months ago

This should be generalized a bit; the current proposal is specific to the temporal mapping, but similar concepts could be applied to other mappings as well. The idea is that the "Output X" and the "Output Y" parameters are simply values in the [0, 1] range that are then used to pick a color, either by looking it up based on "Output X" from the color ramp, or by looking it up based on both the "Output X" and "Output Y" values from the associated image. I guess what you really want is a scalar multiplier to "Output X" and "Output Y". So, for instance, "Output X" = "Temporal" would make the X value go from 0 to 1 according to the passing of time during the light effect. However, if you multiply this by 10 with a newly introduced "Scale X" parameter, and then take the result modulo 1, you effectively speeded up the passage of time by 10x, looping over the color ramp 10 times during the duration of the light effect. The advantage is that the same concept could be used to alter the result of any output function, not only "Temporal".

How does that sound?

NelloF commented 5 months ago

sounds great! this way you could also scale the xyz mapped gradients and repeat them multiple times over the formation space

ntamas commented 5 months ago

I was thinking about this a bit during the night and I can't get rid of the feeling that instead of implementing a linear mapping ourselves, we should somehow jsut make it possible for the user to associate an F-curve to the light effect and then the F-curve will map the raw output to a new value. The new value will then be taken modulo 1 (or clamped to the [0;1] interval) to determine the position to evaluate on the color ramp. This would make the feature even more powerful.

I need to figure out whether it's possible to create F-curves "on their own" so that they are not attached to the animation data of a mesh.

NelloF commented 5 months ago

with an f-curve would be even more useful, allowing acceleration ad deceleration in the speed for example