Download Latest Version XNA_Particles_V1.1_InstallerEXE.zip (386.9 kB)
Email in envelope

Get an email when there's a new version of XNA HLSL Particles

Home
Name Modified Size InfoDownloads / Week
XNA_Particles_V1.1_InstallerEXE.zip 2012-11-06 386.9 kB
README.txt 2012-11-06 4.1 kB
XNA_Particles_V1.1_Installer.zip 2012-11-03 240.3 kB
XNA_Particles_V1.0_Installer.zip 2012-01-08 255.3 kB
Version_1.0.zip 2011-12-29 80.9 kB
Totals: 5 Items   967.5 kB 0
===== Welcome to Particle Simulator =====
Project: ParticleTest2
Author: Cody Duncan
Date: 
    December 28th, 2011 v1.0
        Intial Project Development
    November 3rd 2012   v1.1
        - Fixed redundant matrix calculations in physics simulation pixel shader.
        - Added ability to toggle the core gravity mode to reset particles with
            initial velocities that make them spiral or orbit.
        - Added Command Line arguments to adjust particle count, pull strength,
            and core gravity constants.
        - Massively Increased performance by switching particle texture with a smaller texture.
        - Added more notes in code.
        - Updated Readme
Requirements: Visual Studio 2008, XNA 3.1, ShaderModel 3.0 on Graphics Card
Description: Stateful particle system that includes collision with walls, not with other particles.

References:
http://www.gamasutra.com/view/feature/2122/building_a_millionparticle_system.php
borrows some source:  http://www.catalinzima.com/tutorials/4-uses-of-vtf/particle-systems/
credit for Particle Physics.fx and Particle.fx shaders also goes to Catalin Zima,though several
modifications were made to allow for attractors and gravitation.

inspired by:  http://www.youtube.com/watch?v=ACHJ2rGyP10  (dhscaresme) and  http://www.youtube.com/watch?v=CyAZ2Y7nOTw  (GearGOD)

===== Help =====
using command line argument 
--help
will print much of the information below to the console.

===== Command Line Arguments ===== 
To use args:
     description -> example format  
   dash  before argName, value in next arg  -> -arg value
   slash before argName, value in next arg  -> /arg value 
   colon  after Argname, followed by value  -> -arg:value 
   equals after Argname, followed by value  -> -arg=value 
   Argnames can be full name or first letter, noted in 
   Args section of each parameter listed below. 

   particleCount: particleCount^2 is the number of particles rendered.
        Default: 512 (262144 total particles) 
        Args:   -particles /particles -p /p 

   pullStrength : Power of Mouse-click gravity(left)/antigravity(right).
        Default: 100 
        Note: Pull power weakens linearly over greater distance, rather 
              than exponentially, like gravity  
        Args:   -mousePull /mousePull -m /m 

   CoreGravity  : Power of Gravity in Center of space (mode 3).
        Default: 45000  
        Args:   -gravity /gravity -g /g  

===== Controls ===== 
Modes (number corresponds to key to press)
   1: No Gravity
      press 1 to set to this mode  

   2: Downward Gravity: gravity pulls down to bottom of window
      press 2 to set to this mode 

   3: Core Gravity: gravity pulls toward center of window 
      press 3 to set to this mode 

Keyboard Controls 
   Enter       - Reset particles
   Shift(left) - Toggle mouse gravity power
                  Default: Normal
                  Normal: Pull power = pullStrength(default 100)
                  Boost : Pull power = 5 * pullStrength, for extra pull
   4           - Toggle Orbit/Spiral on Core Gravity Reset
                  Default: Spiral
                  Spiral - particles slowly spiral toward center.
                  Orbit  - particles orbit center, don't get closer or futher
                  Note: This change shows when you reset the particles,
                  and only on Core Gravity Mode. Example:
                    1. hit 3 to get to core gravity mode
                    2. hit Enter to reset particles to spiral velocities
                    3. hit 4 toggle to orbital reset velocities
                    4. hit Enter to reset with orbital velocities
                    5. hit 4 then Enter to toggle back to spiral velocities
Mouse Controls
   Left-click  - attract to cursor
   Right-click - repel from cursor

Camera Controls
   up,down,left,right,z,x 
      Note: using these throws off the mapping of clicks to attraction/repel points.
            probably need to fix that later, but it's fine for a proof of concept.
Source: README.txt, updated 2012-11-06