diff options
Diffstat (limited to 'addons/visualization.vortex/resources/Presets/CubeRain.vtx')
-rw-r--r-- | addons/visualization.vortex/resources/Presets/CubeRain.vtx | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/addons/visualization.vortex/resources/Presets/CubeRain.vtx b/addons/visualization.vortex/resources/Presets/CubeRain.vtx new file mode 100644 index 0000000000..5ddbae8e55 --- /dev/null +++ b/addons/visualization.vortex/resources/Presets/CubeRain.vtx @@ -0,0 +1,70 @@ +// CubeRain.vtx +// Author - MrC +// Based on CubeRain.r4 By Gordon Williams +int x,y; +float c,tm,tn,td; +float[] c_x(256),c_y(256),c_z(256),c_vz(256),c_rx(256),c_ry(256),c_sx(256),c_sy(256),c_sz(256); + +float counter; +Texture envTexture; + +void MakeNew(int n) +{ + c_x[n]=c_y[n]=0; + while (Mag(c_x[n],c_y[n])<1) + { + c_x[n] = (Rand()*8.0)-4.0; + c_y[n] = (Rand()*8.0)-4.0; + } + + c_z[n] = 10; + c_vz[n] = (1.0+Rand())*4; + c_rx[n] = (1.0+Rand())*80; + c_ry[n] = (1.0+Rand())*80; + c_sx[n] = (0.5+Rand())*0.15; + c_sy[n] = (0.5+Rand())*0.15; + c_sz[n] = (0.5+Rand())*0.15; +} + +void Init() +{ + envTexture.LoadTexture("env2.jpg"); + counter = 0; + + for (x=0;x<256;x=x+1) + { + MakeNew(x); + c_z[x] = Rand()*10; + } + tm = tn = 0; +} + +void Render() +{ + td = ((TREBLE+1.0f)*TIMEPASS); + tm = tm + td; + tn = tn + ((BASS+1.5)*TIMEPASS*2); + + gfxTranslate(Cos(tn * 1.23f) * 0.5f, Sin(tn) * 0.5f, 0.0f); + gfxRotate(Cos(tn*0.6734f)*20.0f, 1.0f, 0.0f, 0.0f); + gfxRotate(Sin(tn*0.2143f)*20.0f, 0.0f, 1.0f, 0.0f); + + gfxSetEnvTexture(envTexture); + + for (x=0;x<256;x=x+1) + { + c_z[x] = c_z[x] - (td*c_vz[x]); + if (c_z[x]<0) + { + MakeNew(x); + } + c = Cos(c_z[x]*0.05*3.1416); + gfxColour(c,c,c,1); + gfxPushMatrix(); + gfxTranslate(c_x[x],c_y[x],c_z[x]); + gfxRotate(c_rx[x]*tm, 1, 0, 0); + gfxRotate(c_ry[x]*tm, 0, 1, 0); + gfxCube(-c_sx[x],-c_sy[x],-c_sz[x],c_sx[x],c_sy[x],c_sz[x]); + gfxPopMatrix(); + } +} |