- Home /
Warrants extended discussion in the Support forum.
Optimizing large numbers of trail renderers
Hi all,
The game that I'm working on needs a large amount of trail renderers - things like spaceship engine trails, weapon trails, that kinda thing. The slow addition of most of this FX to the game has started to cause performance issues when large amounts of ships start launching tons of missiles and blasting away at each other.
I'm already running a pooling manager, and am culling a good portion of the effects - I have mostly tracked the slowdown to the trail renderers present on projectiles, disabling them all nets me a 10-20 fps boost and saves me 50-200 draw calls. I'm wondering what kind of things I might be able to use to optimize things.
Things I'm doing right now with my trails:
Culling trails after a certain distance from camera (the lowest I can get away with)
Fiddling with the min vertex distance tons to get the best look with the least vertices
Using only simple additive shaders on the trails
Using only tiny 8x8 textures for any fast trails
Minimizing shader and texture complexity for even slow, infrequent trails
Any ideas? Oh, I've tried the OptimizedTrailRenderer on the wiki with no noticeable improvements.
A solution I thought of is to develop a trail batching system to batch all trails of a certain material (or an atlased material) into a single draw call (again, in a medium sized battle I can get up to 200 extra draw calls just from trails). Any thoughts on this - would it help much? Doing it would be quite involved and would be curious to know opinions before I attempt it.
Follow this Question
Related Questions
Unskinned meshes of the same material won't batch 1 Answer
Why can't I batch some draw calls? 0 Answers
SetPass calls - important to keep this number low? 5 Answers
Handle Many Characters that have skinned mesh renderer 0 Answers
Batching draw calls? 2 Answers