Orbital Laser: seeking feedback

Latest version of the effect:
(Thank you @Valentin for the suggestions!)
Original version:

Hey, all! I’m looking for feedback on this effect. I am going for a high quality realistic style.
Advice on timing, feel and performance optimization is greatly appreciated!

Better quality: :point_right: https://i.imgur.com/aJHuWzu.mp4

This is a screenshot from the “shader complexity” view at its worst. How bad is this? and is this the right way to profile rendering performance?


Hey there ! this is a very promising effect! Given the result you’re looking for, I would eventually suggest more build-up rays, making them spawn at different (although quick) intervals, and make them rotate towards the center of impact. A lingering aftermath of the main impact oculd be also very cool.

Here’s a video from the GDI Ion Cannon from Command & Conquer that illustrates this :

All the best!

1 Like

Hi, to answer or talk about the Profiling question;
It is usually best to do both cases when Profiling, the Effect on its own so you can look at the Profiler and get as much clear view data as possible, and also profile the effect within the environment it will be used in even if you only have a proxy yet.
As an example your game may have a ton of Transparancy and overdraw running just within the bounds of the target FPS however adding your effect trows the FPS below Target. Now you can Scan the entire scene and optimize some other static environmental items if you are really attached to your effect (Or its a hero FX).

Generally Profile lots, and at best build yourself a test environment that has all the bells and whistles you usually would want behind your fx.
Hope this helps.

PS:I agree already looking great!

1 Like

All depends on your platform and your project. Performance is never a straightforward answer.
The amount of overdraw doesn’t look crazy to me, if we are talking PC,Consoles.
Overdraw in general is also less of an issue in current gen hardware as it used to be. (On mobile & VR still a much bigger concern).

Profiling rendering performance is also not as straightforward. First you need to find your bottleneck (CPU or GPU), then profile accordingly. Assuming you are GPU bottlenecked, here is the GPU profiling documentation:

The simplest (but not most accurate) way is to just use ‘stat GPU’ and look at Translucency cost (for overdraw):

There are many other factors however, that could affect performance. Niagara system cost, shadows/lights, collisions etc.

Having said all that, your effect looks perfectly reasonable to me.
One easy save is to enable AlphaCutout on your smoke: You should be able cut away all the edges and save a tiny bit of overdraw.



Maybe you can use temporalAA in your project, hope it helps!


I was away for a couple of days but wow guys I’m blown away by the feedback thank you so much! :smiling_face_with_three_hearts:
I will experiment with these suggestions and will report back!

That looks really good! I tried TemporalAA but without pluging anything into the random(s) input and it didn’t look good. I can see a black outline around the edges of the smoke here and I wonder if adjusting that input could fix that or make it softer without the AA artifacts being too obvious…
Thank you this is definitely something I want to investigate!

I just rushed to demonstrate an alternative. You can control the alpha to the result you want, you can even change the noise in the function to get better results.
The softer example is below.



Thank you this is great feedback! The way I create my build-up rays is a little cumbersome for many rays and I’m looking for a better way. I currently have 5 emitters starting at manually entered positions relative to the simulation position, lerping them to (0,0,0) based on loop age.

Ideally, I think I should want the entire effect to be a single Niagara system, and the build-up rays to be a single emitter but I can’t get multiple beams to work with one emitter.
If I can’t find a solution to that I think I’ll have to use multiple blueprints components which seems more complicated to control, though I haven’t tried it yet.

Thank you @Ganishka and @TobiasTobasco for the enlightening response!
My main goal is to show potential employers that I am aware and careful about keeping my fx performant. I wonder what the best way is to show that at a glance, say in a reel or portfolio. Am I overthinking this? :sweat_smile:

This is neat! I thought this was a masked material feature only and I had to change the smoke material (for the worse) to optimize coverage.

One of the treacherous things about Masked materials and the Shader Complexity viewmode is the fact that it does not show the overdraw correctly.
Masked materials are only cheaper where the opacity is > 0. These pixels are treated as opaque. For opacity = 0, the opacity is treated as translucent, hence has overdraw. But this is not being shown in the shader complexity view at all.

That’s great! Way too many people put in a million sprites without thought :slight_smile: Showing off a screenshot/gif of shader complexity is definitely appreciated.


This looks a lot better! I can see the artifacts because I’m looking for them but I bet they aren’t that visible in game. Now I feel recreating those explosions! :smile:

1 Like