Quote:
I think it looks pretty cool. How much fps would this cost on a decent system, 1-3 fps?


This is really variable on each system, background software and of course every other thing in the level. First you have to pick a target fps , a max fps and a min fps. I use fps_max =60; and try to keep everything at 60 fps. To do so your whole scene must render in 16 milliseconds or less. Checking your render time for levels, ents, and script will give you a total. Subtract that from 16 milliseconds and the remainder is your head room for more actions. I personal can render 1000 particles in 1 millisecond, leaving 15 milliseconds for other actions.

Quote:
Except if it could be still optimized a lot of course.

It can be a lot more optimized for sure. First with changing the curve algorithm. I currently use a simple 3 point curve causing the need for two separate for_loops for each wing line. Using a better curve solution can reduce this. Next there is the step size. Small steps make smoother curves but finding a good balance is smarter.Because with smaller steps comes more particles and draws. Also I wouldn't render the wing surface at all or as transparent. I'd ignore it in the render stage. I just want it's vertex positions. However, loading a vector map of the them and there animation changes into memory could save the cost of loading the ent , animating it and doing the look-ups for the vertex positions.