Controlled "random" values for procedural shading

Hello all,

I am currently working on a laser effect, and am looking for a way to “randomize” the emission value of the laser, similar to the wiggle expression in after effects. The current node setup I have is very simple, just a ColorRamp from my darkest to brightest value connected to the strength of the emission. I have tried a few methods to get a random 0 to 1 value for the factor of the ColorRamp but have ran into an issue. The issue is that with purely random values, the strength will skip around from the darkest to brightest within a frame or two. Rather than pure random values, I would like the value to essentially slide around “randomly” between 0 and 1. This way there will be more gradual dips and spikes in the brightness of the laser, but will also not just be pulsing on a linear path from 0 to 1 and back to 0 again. Is there any way to make this happen procedurally or with minimal keyframing?

Thanks so much, all thoughts would be appreciated,


Feeding the current frame value into a 1D noise texture (with a scale that is not an integer…) gives you a smoothly varying output between 0 and 1. the map range node can be used to sharpen or smoothen the variation.

If you want linear fading at random times, you can use a 1D voronoi node:

laser_random_fade.blend (155.0 KB)

1 Like

Hey thank you so much. Some kinds of magic but both do exactly what I was hoping they would

Have a good one,


Also if anyone else is reading this you can make more rapid and sharp flickering by turning the scale of the noise and voronoi up and vice versa. Or so it seems at least.