Creating a strong beam effect

Hello. I’m a vfx artist at a small indie studio. We are making a arcade style shooter with a top down view using unity.

A few days ago i hit a brick wall while trying to construct a beam effect. I tryed a few things. I made a sprite sheet texture of a looping beam in after effects and used it on a quad, but the texture got streached and lost a lot of quality, for an alternative i used quite a few bilboard particles to get the effect to look similar to what i wanted but it didnt feel good enough.

I would appreciate any help. What is your approach to constructing a beam effect?

i could some hints on how i made these effects for raid HQ, if these are the type of thing you are after?

The beam and lightning effects look nice. I’m sorry i didn’t properly explain. I’m looking for some tips on how to make a solid looping core of the beam that can be as long as I like. Were your beams made as a single texture? Can they be streached out to infinity and not lose quality?

This is what i have right now.

Your beam looks like it has the basic shapes to it, but not the volume and grunt.

I don’t know what your method for the beam is, but I would make use of a 2 point line renderer in Unity (So it can be scaled dynamically to any length) and a shader that pans textures along that line renderer.

With a bit of shader magic (panning textures at different rates with math blending them together)

Add bloom and you’ve got a laser beam.

If you want a bit more grunt, I like to add a thicker orb to the texture as it pans which helps the laser pulse, giving it a bit more life.

Hope it helps :slight_smile:

1 Like

I ran into a problem with paning textures becaus i was using a sprite sheet so i wasnt able to pan the textures. Were you using a simple texture (single image) for the paning texture?

If you use sprite sheets, instead of panning try adding an X or Y offset to it in the animator component. But the problem with that is you’ll have to manually adjust it for each different render. That’s how I did it when learning from the chinese CGjoy tutorials posted by Jason and Luos. :slight_smile:

These are all simple texture with offset increased on Y in the animation component. It Increases from 0 to 1 over a time period of 5 seconds.

The other textures are also done the same way. Should work for real time movement as long as its one solid mesh … but if the laser beam “bends” like Agilethief’s Mercy overwatch beam then you’d have to do shader math like he mentioned earlier using renderers.

Cheers. :upside_down:

Thank you a lot. I’ll try it out with a simplr texture and paning and see how it goes. :slight_smile:

1 Like

Let me know how it goes, also I forgot to mention make sure your UVs for your cylindrical beam are correct. They’re supposed to be a “certain” way if you wanna make them pan along that particular way. Or else they’ll pan “globally” if that’s the right term. I still haven’t gotten my head around UVs and I hope someone more experienced can explain them to me if they happen to come across my post. :smiley:

Yes I would use a singular texture.

This is a texture I used for the Mercy healing beam @veer mentioned.
Note I would not use such a large texture in actual production.

For a beam effcet I would likely use at least two textures,
One central “Beam texture” to define the overall shape.
And one noise texture to break up the beam and add some variation to it.