/////////////////////////////////////////////////////////////////////////// // // Realistic rain real-time simulation program // // Pierre Rousseau // /////////////////////////////////////////////////////////////////////////// // // Global definitions // /////////////////////////////////////////////////////////////////////////// #ifndef __COMMON_RAIN__ #define __COMMON_RAIN__ //////////////////////////////////////////////////////////// /// determine what the program will look like //////////////////////////////////////////////////////////// // currently incompatible with STREAKS or LIGHT_EXTENSION : //#define SNOW #ifndef SNOW #define STREAKS //#define LIGHT_EXTENSION #endif //////////////////////////////////////////////////////////// /// this constant defines the size (in pixels) of the /// position texture. /// There will be (BILLBOARD_POS_TEX_SIZE) ² /// particles in the system. //////////////////////////////////////////////////////////// #define BILLBOARD_POS_TEX_SIZE 64 //////////////////////////////////////////////////////////// /// Constants for the program //////////////////////////////////////////////////////////// // size of the "render to texture" : if using frame buffer copy, must be less than the frame buffer size #define RTTSIZE 512 #define _PI 3.1415926535 #define FOVyCam (_PI/3.0) #define FOVyRtt (15.0 * _PI / 18.0) // arbitrary unit = 0.1m #define HAUTEUR_OBSERVATEUR 18.0 //////////////////////////////////////////////////////////// /// Values for the hardware implementation /// of the particle system //////////////////////////////////////////////////////////// #define PARTICLE_POSITION_TEXTURE_NAME "floating_point_RTT_ping" #define PARTICLE_POSITION_BACKUP_TEXTURE_NAME "floating_point_RTT_pong" #define PARTICLE_POSITION_INIT_TEXTURE_NAME "floating_point_initializer" #define STATIC_GEOMETRY_NAME "billboards_in_vertex_buffer" #define LIGHT_INFO_TEXTURE_NAME "light_information_texture" #define BILLBOARD_MESH_NAME "cloned_manual_mesh" #define RAIN_MATERIAL_NAME "rain_system_material" #define REFRACT_RTT_NAME "refract_rtt" #define PARTICLES_MIN_X -2000 #define PARTICLES_MAX_X 2000 #define PARTICLES_MIN_Y -10 #define PARTICLES_MAX_Y 100 #define PARTICLES_MIN_Z -2000 #define PARTICLES_MAX_Z 2000 #define VIS_PARTICLE_BOX_MIN_X -50 #define VIS_PARTICLE_BOX_MAX_X 50 #define VIS_PARTICLE_BOX_MIN_Y -20 #define VIS_PARTICLE_BOX_MAX_Y 80 #define VIS_PARTICLE_BOX_MIN_Z -50 #define VIS_PARTICLE_BOX_MAX_Z 50 #endif // __COMMON_RAIN__