User Tools

Site Tools


hpl3:tools:particleeditor

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hpl3:tools:particleeditor [2012/07/02 17:52]
luis
hpl3:tools:particleeditor [2013/10/10 12:56] (current)
ian.thomas
Line 1: Line 1:
-====== ​Material ​Editor ======+====== ​Particle ​Editor ====== 
 +The Particle Editor is used to create Particle Systems to be used in maps or entities.
  
 +===== Foreword =====
  
-The Material Editor helps out in creating new materials to be used in games. It can be run as standalone app or can be invoked from file inputs in other editors ​when pressing ​the '​+'​ button.+==== Min and Max values ==== 
 +A lot of values ​in this editor have both min and max. This means that when the value is applied to a particle a value between min and max is randomly selected.
  
  
-===== Overview =====+==== Fading ​==== 
 +Fading can be used to fade in and/or out some property like size or colour. The fading works like this. There are three relative values that are relative to the start value of the particle. The names for these values are start, middle and end and are used in that order. There are also two times that are relative to the life of the particle, for example if a particle has 2 seconds life time and the middle time is 0.5 then this occurs after 1 second (0.5 * 2). The first time is called middle time and this is when the start value is entirely faded from start to middle. The middle length is how long the middle value lasts. After middle time + middle length the middle value is faded to the end value.
  
  
 +===== Overview =====
 When run, the first screen we get to see is like this: When run, the first screen we get to see is like this:
  
 +{{ :​hpl3:​tools:​particle_editor.png?​nolink |}}
  
-[[materialeditoroverview.jpg]] ​+Each part of the screen has a specific function, as follows:
  
 +===== Main Menu =====
 +This is a menu bar, just like in any other windowed application. Available options for this particular editor are as follows:
  
-Each part of the screen has a specific function, as follows:+  * **File** 
 +    * **New**: This command will reset the Particle System to an empty oneand the editor to a default state as well. 
 +    * **Open**This will load a Particle System file (.ps) in the editor. 
 +    * **Save**: Use this to save your work to a file in disk. Will ask for a file name when no file has been created. 
 +    * **Save As**: This will also save your work, but will ask for a file name everytime it is called. 
 +    * **Open Recent**: This will show a list of up to 10 files that have been recently loaded or saved. 
 +    * **Quit**: This will exit the program. 
 +  * **Edit** 
 +  * **View**
  
 +===== Emitter management controls =====
 +These controls help to add, duplicate and remove particle emitters. The Add button will create a new particle emitter and select it (i.e. pick it in the combo box), the Copy button will create a copy emitter out of the selected one, and the Delete button will delete the selected emitter.
  
-===== Main Menu =====+When a particle emitter is selected, all its parameters will be shown in the tab frame below.
  
 +===== Emitter parameters tab frame =====
 +
 +==== General ====
 +
 +  * **Name**: The name of the emitter currently selected.
 +  * **Max Particles**:​ The maximum number of particles that can be alive at once. When this limit is reached no more particles will be created.
 +  * **Particles per Second**: The number of particles per second that will be created.
 +  * **Start time offset**: Time offset in seconds before the emitter starts.
 +  * **Respawn dead particles**:​ If dead particles should be respawned.
 +  * **Warm up time**: Time that the emitter gets to warm up. This is useful when doing a a stream of something (like a fire or waterfall) and the particles should not be shown “starting up”.
 +  * **Pause**: A pause is a break during which no particles are created. Particles are updated though.
 +  * **Pause Length**: The length of the pauses, 0 and 0 means that there are no pauses.
 +  * **Pause Interval**: The length between pauses. 0 and 0 means that there are no pauses.
 +  * **Offset position**: How the emitter is offset relative to its starting position.
 +  * **Offset angle**: How the particle system is offset relative to its start angles.
  
-This is a menu bar, just like in any other windowed application. Available options for this particular editor are as follows: 
  
 +==== Start ====
  
-    ​* **File** +  ​* **Start type**: Sets what method to use to generate the start position of the particles in the emitter. 
-      * **New**: This command will reset the material to an empty one, and the editor to default state as well+  * **Box start**: A box start is created using an xand z min and max value. The collection of particles will get the shape of box
-      * **Open**: This will load map file in the editor. +  * **Sphere start**: The positions are generated using an angle interval and the min and max value for the radius. You can think of it like this; an arrow start pointing up. This arrow is then rotated around the X axis (red) using value between min and max. After that the arrow is rotated by the y axis (blue)The arrow will now be pointing in specific direction and in this direction ​position is created ​at distance from center according to a number generated from min/max radius
-      * **Save**: Use this to save your work to file in disk. Will ask for file name when no file has been created+{{ :hpl2:​tools:​editors:​spherestart.jpg?nolink |}}
-      * **Save As**: This will also save your work, but will ask for file name everytime it is called+
-      * **Quit**This will exit the program. +
-===== General Settings =====+
  
 +==== Movement ====
  
-This group contains inputs ​to control basic properties ​for the currently edited material.+  * **Velocity type**: The way in which the starting velocity is generated. 
 +  * **Box velocity**: The same as box start but with velocity instead. 
 +  * **Sphere Velocity**: The same as sphere start but with velocity instead. 
 +  * **Coord system**: The way in which the particles are related ​to the world and the object the system is attached to (if any). In world all the particles have an individual postion that does change depending on the parent object. In local however the particle position is dependant on the parent object so if that the particle moves and turns along with the parent. 
 +  * **Uses direction**:​ If the direction of the start velocity depends on the way the particle system is “facing” (with no rotation it faces up). This is useful ​for systems like steam where the system has a direction. 
 +  * **Gravity Type**: The type of gravity being applied to the particles. 
 +    * **None**: No gravity it applied. 
 +    * **Vector**: The gravity acceleration is applied. 
 +    * **Centre**: The particles are drawn towards the centre of the particle system with Gravity Acceleration Y as acceleration. 
 +  * **Gravity Acceleration**:​ Used differently according by the gravity type. 
 +  * **Acceleration**:​ Acceleration applied to all bodies. 
 +  * **Speed multiplier**:​ How much the speed is multiplied by each second. For example, 0.5 means that the speed halfed each second. 2 means it is doubled each second. 
 +  * **Maximum speed**: The maximum speed that the particles can reach.
  
 +==== Rendering ====
  
-    ​* **Material ​Type**: ​This combo box will show the available engine material types. Currently these are "​decal",​ "​soliddifuse",​ "​translucent"​ and "​water"​+  ​* **Draw Type**: ​The different ways in which the particles can be draw to screen
-    * **Depth Test**: if the material should ​be affected by depth test+    * **Point**: The particle is a point and will always ​be pointing towards the camera
-    * **Blend mode**: blending mode to be used by the material+    * **Line**: The particle is aligned in the direction in which the particle is travelling
-    * **Physics Material**: the physics material that will be associated to this material. For example, if you create a metallic looking material, ​it should ​be logical ​to associate it to a metal physics material (these being defined in the materials.cfg file located ​in the redist folder) +  * **Multiply RGB with Alpha**: Some materials does not fade out the image when alpha is decreased (for example ​Additive) in this case it can be good to check this. 
-===== UV Animation Settings =====+  * **Size**: The size of the particleThis is the value used in the fading. 
 +  * **Size Fading**: See 1.2 for instructions on fading.
  
  
-This group contains controls to add and edit UV texture coordinate animations. Displacements,​ rotations, etc can be done using these.+==== Color ====
  
 +**NOTE**: all of the color channels have values from 0 -1.
  
-    ​* **UV Animation**: currently selected animation. Any edition will be done on this particular one. +  ​* **Color**: This sets the color of the particle
-    * **Create** ​ / **Delete**buttons:​ will add a new animation / remove ​the currently selected one. +  * **Fading**: Settings ​for fading ​the color. See foreword for fading.
-    * **Anim Type**: animation type for the current animationPossible values are: +
-      * **Translate**:​ will perform a linear displacement over the texture along the given axis and at the given speed. +
-      * **Sin**: will add an oscillating movement over the texture along the given axis, with the given amplitude and at the given speed. +
-      * **Rotate**: will rotate the texture around the selected axis and at the given speed. +
-    * **Axis** ​ **Speed**  / **Amplitude**: used to set the parameters used for the previously explained setting. +
-===== Texture Units =====+
  
 +==== Life ====
  
-This group is one vital part of the material edition processAll texture data that is going to be used by the material in the engine will be set hereIt is divided in two different parts:+  * **Lifespan**:​ Time in seconds that the particle will live. 
 +  * **Death Type**: type of death for the particlesCurrently only age can be selected. 
 +  * **PS created at death**: Particle system ​to be spawned when the particle dies.
  
  
-    * **Available Texture Units**: here we will see a list of the texture units that this material can use. If you want a material to use a determinate unit, you need to enable it in this list. To do so, just check the box right at the side of it. Each type of material will have its own set of units, that should be a subset of the following:​ +==== Material ​====
-      * **Diffuse**:​ base color data for the material. +
-      * **NMap**: Normal Map, per-texel surface normal data. When enabled, the surface will get shaded according to the normal info. +
-      * **Alpha**: this layer will mask any result using the alpha value (0 not visible - 1 fully visible) +
-      * **Specular**:​ this unit will mask specular highlights. +
-      * **Height**: this unit will store a map of height levels across the material. SolidDiffuse requires this unit to be enabled in order for Parallax Mapping to work. +
-      * **Illumination**:​ the texture in this unit will be used as a self illumination pattern. +
-      * **DissolveAlpha**:​ this unit will be looked up at by the mesh dissolve effect. +
-      * **CubeMap**:​ this unit will make the material look as if reflecting an environment given by a cubemap texture. +
-      * **CubeMapAlpha**:​ just like Alpha, but this unit will only mask the cubemap reflection. +
-    * **Texture Unit Panels**: here we will see details for every texture unit that we have enabled from the available units listing. Along with a thumbnail, we will have the following inputs: +
-      * **File**: texture file for the unit. Must be in a valid format (jpg, png, bmp…) +
-      * **Wrap Mode**: this will set the texture behaviour when the surface it is applied onto has texture coordinates that exceed the 0.0-1.0 range. Available modes are +
-        * **Repeat** +
-        * **Clamp** +
-        * **ClampToEdge** +
-        * **ClampToBorder** +
-      * **Use Mip Maps**: sets if MipMapping should be enabled for the texture. +
-      * **Animation Mode**: sets if the texture data should be loaded as an animation. A special formatting on file names is required for this to work. Available modes are: +
-        * **None**: no animation at all. +
-        * **Loop**: the animation will show over and over, "​rewinding"​ itself everytime the end is reached. +
-        * **Oscillate**:​ the animation will play forward and then backwards when the end is reached. +
-      * **Frame Time**: time in seconds that frames will be displayed. +
-===== Preview Window =====+
  
 +  * **File**: The material file to use.
 +  * **Number of Files**:The number of material files used. Normally this should just be one, but in some cases an animation needed is spread out over several material files. When using several material files these must be name “[name]01.mat”,​ “[name]02.mat”,​ etc. Also the file text must be just “[name]”. So if the files are called “test01.mat”,​ “test02.mat”,​ etc it must say “test” in the file field.
 +  * **Animation length**: The number of seconds the animation lasts, if the particle lives longer than this time, the animation is looped.
 +  * **Sub Division**: This is used in order to animate individual particles (when using several files, the material for all particles are changed at the same time). It can also be used for more variety among particles. The material already includes splitting info, so the only thing we need here is to specify how we want to use that setup:
 +    * **Sub Division Type**: How the subdivisions are assigned to the particles.
 +      * **Random**: A division is randomly picked.
 +      * **Animation**:​ During the life time of an object it has all the subdivisions. Starting in the upper left corning and ending in the lower right.
  
-This window ​will show a realtime preview of how the material would look ingameFollowing there is a description of each control:+==== Rotation ==== 
 +  * **Use Particle Spinning**: If enabled, particles ​will rotate around themselves. 
 +  * **Spin Type**: Type for the particle spinningCan be: 
 +    * **Constant**:​ A value will be picked from the spin velocity range at random. 
 +    * **Movement**:​ The rotation will be linked to how fast the particle ​is moving. 
 +  * **Particle spin velocity range (rad/s)**Spin velocity for constant spin type. 
 +  * **Use Revolution**:​ If enabled, particles will rotate around some axis. 
 +  * **Revolution speed**: 3D Vector that will determine the axis and rotation speed for particles.
  
 +==== Collision ====
  
-    ​* **Viewport**: the actual material showcase. It should ​show a simple model using the material, a background and two lights. The current point of view can be controlled with the mouse. Left mouse button + movement will orbit the camera around the model, scrolling wheel up and down will zoom in and out respectively. Pressing the right mouse button + movement will move one of the lights around+  ​* **Use Collision**: If collision detection ​should be used
-    * **Model**: this combobox will show set of preview models that you can select. Currently available there is a Box, a Cylinder, a Sphere and a Plane+  * **Update Rate**: How many times second collision ​is check for each particle
-    * **Rotate Model**: when checked, the model will rotate around its own Y axis (upward one)+  * **Maximum Collisions**: The maximum amount of collisions can have before dying
-    * **Background Type**: use this to select a cubemapped background or a flat colored one. +  * **Bounce Amount**: How much of the speed is retained ​when bouncing0.5 means half of the speed2 means that the speed doubles when bouncing.
-    * **Cubemap File**: background file that will be shown when the cubemap background type is selected. +
-    * **Background Color**: color that will be shown when the flat background type is selected. +
-    * **Fixed Light Color**: diffuse color for the non-movable light. +
-    * **Movable Light Color**: diffuse color for the moveable light. +
-===== Material Specific Variables =====+
  
  
-This group will show controls that are specific to a material type. Descriptions for them should show when moving the mouse over them.+===== Preview viewport =====
  
 +Here we will see the currently edited particle system in a preview fashion. Every time the user changes a parameter value, the particle system is reset.
hpl3/tools/particleeditor.1341251561.txt.gz · Last modified: 2012/07/02 17:52 by luis