diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/particle_test/particle_test.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'utils/particle_test/particle_test.cpp')
| -rw-r--r-- | utils/particle_test/particle_test.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/utils/particle_test/particle_test.cpp b/utils/particle_test/particle_test.cpp new file mode 100644 index 0000000..ce1f236 --- /dev/null +++ b/utils/particle_test/particle_test.cpp @@ -0,0 +1,62 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//===========================================================================// + +#include "tier0/platform.h" +#include "mathlib/mathlib.h" +#include "mathlib/ssemath.h" +#include "particles.h" +#include "tier2/tier2.h" +#include "tier0/memdbgon.h" + +void main(int argc,char **argv) +{ + InitCommandLineProgram( argc, argv ); + + + // test sse noise + FourVectors start; + start.LoadAndSwizzle(Vector(-1,4,3),Vector(0,7,8),Vector(8,1,2),Vector(0,0,0)); + FourVectors delta; + delta.LoadAndSwizzle(Vector(.1,-.1,.05),Vector(.1,.1,.1),Vector(0,-.1,0),Vector(.1,0,0)); +#ifdef TIME_IT + float start_time=Plat_FloatTime(); + for(int sim=0;sim<1000*1000*10;sim++) + { + __m128 n=SSENoise( start ); + start+=delta; + } + printf("n/s=%f\n",(4*1000*1000*10.0)/(Plat_FloatTime()-start_time)); +#endif + for(int i=0;i<130;i++) + { + __m128 noise=SSENoise( start ); +// printf(" noise(x=%f)=%f\t%f\t%f\t%f\n", + printf(" %f,%f,%f,%f,%f\n", + start.X(0),noise.m128_f32[0], + noise.m128_f32[1], + noise.m128_f32[2], + noise.m128_f32[3]); + start+=delta; + } + +#if 0 + ReadParticleConfigFile("particles.cfg"); + ParticleCollection lots_o_particles( "fireball" ); + lots_o_particles.SetNActiveParticles( 1000000 ); + // kick the particles up into the air + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_XCOORD, 0.0 ); + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_YCOORD, 0.0 ); + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_ZCOORD, 10.0 ); + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_XCOORD, 0.0 ); + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_YCOORD, 0.0 ); + lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_ZCOORD, 0.0 ); + float start=Plat_FloatTime(); + for(int sim=0;sim<1000;sim++) + lots_o_particles.Simulate( 0.01 ); + printf("p/s=%f\n",(100.0*1000000)/(Plat_FloatTime()-start)); +#endif + +} |