1
This commit is contained in:
62
utils/particle_test/particle_test.cpp
Normal file
62
utils/particle_test/particle_test.cpp
Normal file
@ -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
|
||||
|
||||
}
|
Reference in New Issue
Block a user