PDA

View Full Version : Check my math...


unchained
27th October 2001, 21:33
Still with me, Krash? :)

====================
A Hard Man To Kill
====================
[preset00]
fRating=3.000000
fGammaAdj=2.000000
fDecay=0.980000
fVideoEchoZoom=1.006594
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=3
nWaveMode=1
bAdditiveWaves=0
bWaveDots=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bMotionVectorsOn=0
bRedBlueStereo=0
nMotionVectorsX=15
nMotionVectorsY=6
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.876469
fWaveScale=0.773890
fWaveSmoothing=0.000000
fWaveParam=0.000000
fModWaveAlphaStart=1.150000
fModWaveAlphaEnd=0.750000
fWarpAnimSpeed=1.530000
fWarpScale=1.731000
fZoomExponent=1.003424
fShader=0.000000
zoom=1.000223
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.140100
sx=1.006000
sy=0.999900
wave_r=0.500000
wave_g=0.500000
wave_b=0.500000
wave_x=0.500000
wave_y=0.500000
ob_size=0.010000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=0.000000
ib_size=0.010000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
per_frame_1=warp=0;
per_frame_2=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);
per_frame_3=bass_flop=abs(bass_flop-equal(bass_thresh,2));
per_frame_4=treb_thresh=above(treb_att,treb_thresh)*2 + (1-above(treb_att,treb_thresh))*((treb_thresh-1.3)*0.96+1.3);
per_frame_5=treb_flop=abs(treb_flop-equal(treb_thresh,2));
per_frame_6=mid_thresh=above(mid_att,mid_thresh)*2 + (1-above(mid_att,mid_thresh))*((mid_thresh-1.3)*0.96+1.3);
per_frame_7=mid_flop=abs(mid_flop-equal(mid_thresh,2));
per_frame_8=wave_r=if(equal(treb_flop,1),0+.2*sin(time*.6),if(equal(bass_flop,1),.8+.2*sin(time),.6+.08*sin(time)));
per_frame_9=wave_g=if(equal(treb_flop,1),0,if(equal(mid_flop,1),0,.49));
per_frame_10=wave_b=if(equal(treb_flop,1),.8+.2*sin(time*.7),0);
per_frame_11=sx=1;
per_frame_12=sy=1;
per_frame_13=timer1=sin(time*.2);
per_frame_14=timer2=sin(time*.4);
per_frame_15=timer3=sin(time*.8);
per_frame_16=effect_1=2*bass_flop;
per_frame_17=effect_2=3*bass_flop*above(sin(time),0);
per_frame_18=effect_3=5*bass_flop*mid_flop;
per_frame_19=effect_4=7*bass_flop*treb_flop;
per_frame_20=effect_5=11*bass_flop*treb_flop*mid_flop;
per_frame_21=effect_6=13*bass_flop*mid_flop*above(sin(time),0);
per_frame_22=effect_7=17*bass_flop*treb_flop*above(sin(time),0);
per_frame_23=effect_8=19*bass_flop*treb_flop*mid_flop*above(sin(time),0);
per_frame_24=state=1*effect_1*effect_2*effect_3*effect_4*effect_5*effect_6*effect_7*effect_8;
per_frame_25=q1=timer1*equal(bass_flop,1)+timer2*equal(treb_flop,1)+timer3*equal(mid_flop,1);
per_frame_26=q2=timer1*equal(treb_flop,1)+timer2*equal(mid_flop,1)+timer3*equal(bass_flop,1);
per_frame_27=q3=timer1*equal(mid_flop,1)+timer2*equal(bass_flop,1)+timer3*equal(treb_flop,1);
per_frame_28=q4=state;
per_frame_29=wave_mystery=.5*q1;
per_pixel_1=state=q4;
per_pixel_2=center = 0.5+bnot(state%3)*.5*q1;
per_pixel_3=brick_dx = bor(bnot(state%5)*dx,sin(pow(x,2)*time+rad)*.02);
per_pixel_4=brick_dy = bor(bnot(state%2)*dy,sin(pow(y,2)*time+rad)*.02);
per_pixel_5=shifted_rad=0.5+0.5*sin(rad*12.0 + time*0.7)*bnot(state%6);
per_pixel_6=radical_dx=0.01*cos(shifted_rad+time*0.5);
per_pixel_7=radical_dy=0.01*sin(shifted_rad+time*0.5);
per_pixel_8=bend = cos(x*10*q1-rad*10*q2*bnot(state%7));
per_pixel_9=crad = abs((x-.5)*(y-.5))*10 + bass_att*.1*bnot(state%10);
per_pixel_10=checker_dx = bor(bnot(state%7)*dx,if(above(x,center),(dx - (crad - center))*0.1,(dx + (crad - center))*0.1));
per_pixel_11=checker_dy = bor(bnot(state%11)*dy,if(above(y,center),(dy - (crad - center))*0.1,(dy + (crad - center))*0.1));
per_pixel_12=zoom = zoom+bend*.05*q3*bnot(state%13);
per_pixel_13=pre_dx=brick_dx*q1+checker_dx*q2+radical_dx*q3;
per_pixel_14=pre_dy=brick_dy*q2+checker_dy*q3+radical_dy*q1;
per_pixel_15=dx=bor(bnot(state%14)*acos(pre_dx),asin(dx));
per_pixel_16=dy=bor(bnot(state%15)*sin(pre_dy),cos(pre_dy));
per_pixel_17=grid=abs(x*10-5)%2 + abs(y*10-5)%2;
per_pixel_18=sx=sx-if(equal(grid,bnot(state%17)),bnot(state%19)*q1,0);

unchained
27th October 2001, 22:51
Gah!

It works, but for the wrong reasons.
bor() doesn't work the way I thought it did, and the per_frame stuff is all wrong. I'll post a fix in a little while, gotta find some food

unchained
28th October 2001, 01:42
Ok, this one works correctly, but looks butt.

==========
[preset00]
fRating=3.000000
fGammaAdj=2.000000
fDecay=0.980000
fVideoEchoZoom=1.006500
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=3
nWaveMode=1
bAdditiveWaves=0
bWaveDots=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=0
bTexWrap=1
bDarkenCenter=0
bMotionVectorsOn=0
bRedBlueStereo=0
nMotionVectorsX=15
nMotionVectorsY=6
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.876469
fWaveScale=0.773890
fWaveSmoothing=0.000000
fWaveParam=0.000000
fModWaveAlphaStart=1.150000
fModWaveAlphaEnd=0.750000
fWarpAnimSpeed=1.530000
fWarpScale=1.731000
fZoomExponent=1.003424
fShader=0.500000
zoom=1.000223
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=0.140100
sx=1.006000
sy=0.999900
wave_r=0.500000
wave_g=0.500000
wave_b=0.500000
wave_x=0.500000
wave_y=0.500000
ob_size=0.010000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=0.000000
ib_size=0.010000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
per_frame_1=warp=0;
per_frame_2=bass_thresh = above(bass_att,bass_thresh)*2 + (1-above(bass_att,bass_thresh))*((bass_thresh-1.3)*0.96+1.3);
per_frame_3=bass_flop=abs(bass_flop-equal(bass_thresh,2));
per_frame_4=treb_thresh=above(treb_att,treb_thresh)*2 + (1-above(treb_att,treb_thresh))*((treb_thresh-1.3)*0.96+1.3);
per_frame_5=treb_flop=abs(treb_flop-equal(treb_thresh,2));
per_frame_6=mid_thresh=above(mid_att,mid_thresh)*2 + (1-above(mid_att,mid_thresh))*((mid_thresh-1.3)*0.96+1.3);
per_frame_7=mid_flop=abs(mid_flop-equal(mid_thresh,2));
per_frame_8=wave_r=if(equal(treb_flop,1),0+.2*sin(time*.6),if(equal(bass_flop,1),.8+.2*sin(time),.6+.08*sin(time)));
per_frame_9=wave_g=if(equal(treb_flop,1),0,if(equal(mid_flop,1),0,.49));
per_frame_10=wave_b=if(equal(treb_flop,1),.8+.2*sin(time*.7),0);
per_frame_11=sx=1;
per_frame_12=sy=1;
per_frame_13=dx=1;
per_frame_14=dy=1;
per_frame_15=timer1=sin(time*.2);
per_frame_16=timer2=sin(time*.4);
per_frame_17=timer3=sin(time*.8);
per_frame_18=effect_1=1+1*bor(bass_flop,mid_flop)*above(sin(time*.2),0);
per_frame_19=effect_2=1+2*bor(treb_flop,above(sin(time*.5),0));
per_frame_20=effect_3=1+4*bass_flop*mid_flop*above(sin(time*.8),0);
per_frame_21=effect_4=1+6*bass_flop*treb_flop;
per_frame_22=effect_5=1+10*bass_flop*treb_flop*mid_flop;
per_frame_23=effect_6=1+12*mid_flop*below(sin(time),0);
per_frame_24=effect_7=1+16*treb_flop*above(sin(time),0);
per_frame_25=effect_8=1+18*treb_flop*mid_flop;
per_frame_26=state=effect_1*effect_2*effect_3*effect_4*effect_5*effect_6*effect_7*effect_8;
per_frame_27=q1=timer1*equal(bass_flop,1)+timer2*equal(treb_flop,1)+timer3*equal(mid_flop,1);
per_frame_28=q2=timer1*equal(treb_flop,1)+timer2*equal(mid_flop,1)+timer3*equal(bass_flop,1);
per_frame_29=q3=timer1*equal(mid_flop,1)+timer2*equal(bass_flop,1)+timer3*equal(treb_flop,1);
per_frame_30=q4=state;
per_frame_31=wave_mystery=bnot(effect_7)*.5-bnot(effect_8)*.5+.5*timer1;
per_frame_32=cx=cx+.5*timer2*bnot(effect_3)*bnot(effect_4);
per_frame_33=cy=cy+.5*timer3*bnot(effect_5)*bnot(effect_6);
per_pixel_1=state=q4;
per_pixel_2=center = 0.5+bnot(state%7)*.5*q1;
per_pixel_3=brick_dx = if(bnot(state%5),dx,sin(pow(x,2)*time+rad)*.02);
per_pixel_4=brick_dy = if(bnot(state%2),dy,sin(pow(y,2)*time+rad)*.02);
per_pixel_5=shifted_rad=0.5+0.5*sin(rad*12.0 + time*0.7)*bnot(state%17);
per_pixel_6=radical_dx=0.01*cos(shifted_rad+time*0.5);
per_pixel_7=radical_dy=0.01*sin(shifted_rad+time*0.5);
per_pixel_8=bend = cos(x*10*q1-rad*10*q2*bnot(state%7));
per_pixel_9=crad = abs((x-.5)*(y-.5))*10 + bass_att*.1*bnot(state%10);
per_pixel_10=checker_dx = if(bnot(state%3),dx,if(above(x,center),(dx - (crad - center))*0.1,(dx + (crad - center))*0.1));
per_pixel_11=checker_dy = if(bnot(state%11),dy,if(above(y,center),(dy - (crad - center))*0.1,(dy + (crad - center))*0.1));
per_pixel_12=zoom = zoom+bend*.05*q3*bnot(state%13);
per_pixel_13=pre_dx=brick_dx*q1+checker_dx*q2+radical_dx*q3;
per_pixel_14=pre_dy=brick_dy*q2+checker_dy*q3+radical_dy*q1;
per_pixel_15=dx=if(bnot(state%26),asin(pre_dx),sin(pre_dx));
per_pixel_16=dy=if(bnot(state%15),sin(pre_dy),cos(pre_dy));
per_pixel_17=grid=abs(x*10-5)%2 + abs(y*10-5)%2;
per_pixel_18=sx=sx-if(equal(grid,bnot(state%6)),bnot(state%19)*q1,0);


It's mostly a matter of tuning the effect_x lines, to determine which effects should be more common.

Rovastar
28th October 2001, 01:12
Unchained nice stuff there is loads going on in this one

Krash
28th October 2001, 04:45
I think you start easing off on the number of calculations going on here - this one drops my fps to below 15. =]
Good work though.

This preset crashed my computer =]

- Krash

unchained
28th October 2001, 08:16
There's some per_pixel stuff that doesn't really need to be there...I'm just slapping stuff in as it makes sense during development. I'm more concerned now that what I'm doing with assigning a prime to each effect makes sense. I'd much rather convert it all to bit-wise ops, but that part of the preset authoring doc seems to be just a cut-n-paste from the mathlib ryan uses, and not quite 100% accurate in milkdrop's case.