Oh yeah quick question does a replace replace EL suck fps?
Each effect list has a separate buffer. Given the fact that AVS is not very optimized, a Replace/Replace FxList probably copies the image back and forth at the beginning resp. end, even though this is unnecessary.
However, unless it is triggered onbeat, you can just remove the Replace/Replace FxList and put all the components outside (be careful of the dragging-order bug though).
Btw Raz, could you put your nick in front of your presets? It's a common practice and makes it easier both now ('Raz made a preset... load -> Raz*') and later on ('I know someone made something similar a while ago...hmmm...who was it? I have this Neon Wilderness sitting here').
I'm not a big fan of the constant wobbling and the preset is weird because the lights get dark up close.
As far as distance shortening goes, you should jump the camera at the position as close as possible to the intersection without it looking odd. For the beginning of the jump, pick the position where the camera passes through the clipped out plane:
| |
__| ^ |__ _ _ _ _ when the camera passes through here,
. move it back 'down'.
__ . __
| . |
| . |
You can do it slightly lower if you want (depending on the projection angle and rotation around the camera's velocity vector).
Oh and you still need to get rid of that bad convokernel. Change the divisor from 3 to 4 and watch the FPS soar. To keep the overbright effect, change the center pixel's coefficient to 1.
More optimizations (DM):
z1=if(below((ax+xsx)/xxx,0),-10,((ax+xsx)/xxx));
-> Most of the time this is a no-no. Put the subexpression in a variable and change to:
z1=if(below(var,0),-1,var);
y=y*(h/w);
-> Put h/w into a variable once per frame rather than calculating it per point. You'll be replacing 32x32=1024 divisions perframe by 1.
xxx=xax*cy-(yay*sx+1*cx)*sy;
zzz=xax*sy+(yay*sx+1*cx)*cy;
-> I know you're probably still experimenting with the viewing angle, but by removing the '1*' you'll get rid of 2048 multiplications perframe.