@aidinabedi/playcanvas
Version:
PlayCanvas WebGL game engine
700 lines (675 loc) • 64.4 kB
HTML
<!doctype html>
<html lang="en">
<head>
<title>pc.ParticleSystemComponent | PlayCanvas API Reference</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="images/playcanvas-favicon.png">
<link href="styles/styles.css" rel="stylesheet">
<link href="styles/playcanvas-theme.css" rel="stylesheet">
<script src="scripts/interface.js"></script>
<script src="scripts/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
<header>
<nav class="header-width">
<a href="/" class="header-title"><img src="images/playcanvas-manual.png"></a>
<ul class="header-menu">
<li class="user-manual"><a href="https://developer.playcanvas.com/en/user-manual/">User Manual</a></li>
<li class="tutorials"><a href="https://developer.playcanvas.com/en/tutorials">Tutorials</a></li>
<li class="forum"><a href="https://forum.playcanvas.com/" target="_blank">Forum</a></li>
<li class="api active"><a href="/api/">API Reference</a></li>
</ul>
</nav>
<div class="header-content header-page header-width">
<h1><span class="font-icon"></span>API Reference</h1>
<input id="search" class="search" type="text" placeholder="Search"></input>
</div>
</header>
<div class="container content-width">
<nav class="sidebar">
<div class="sidebarFilter">
<input id="filter-input" type="text" placeholder="Filter">
</div>
<ul>
<li id="nav-pc"><a href="pc.html">pc</a></li>
<li id="nav-pc.callbacks"><a href="pc.callbacks.html">pc.callbacks</a></li>
<li id="nav-pc.guid"><a href="pc.guid.html">pc.guid</a></li>
<li id="nav-pc.math"><a href="pc.math.html">pc.math</a></li>
<li id="nav-pc.path"><a href="pc.path.html">pc.path</a></li>
<li id="nav-pc.platform"><a href="pc.platform.html">pc.platform</a></li>
<li id="nav-pc.script"><a href="pc.script.html">pc.script</a></li>
<li id="nav-pc.string"><a href="pc.string.html">pc.string</a></li>
<li id="nav-pc.Animation"><a href="pc.Animation.html">Animation</a></li>
<li id="nav-pc.AnimationComponent"><a href="pc.AnimationComponent.html">AnimationComponent</a></li>
<li id="nav-pc.AnimationComponentSystem"><a href="pc.AnimationComponentSystem.html">AnimationComponentSystem</a></li>
<li id="nav-pc.AnimationHandler"><a href="pc.AnimationHandler.html">AnimationHandler</a></li>
<li id="nav-pc.AnimCache"><a href="pc.AnimCache.html">AnimCache</a></li>
<li id="nav-pc.AnimClip"><a href="pc.AnimClip.html">AnimClip</a></li>
<li id="nav-pc.AnimController"><a href="pc.AnimController.html">AnimController</a></li>
<li id="nav-pc.AnimCurve"><a href="pc.AnimCurve.html">AnimCurve</a></li>
<li id="nav-pc.AnimData"><a href="pc.AnimData.html">AnimData</a></li>
<li id="nav-pc.AnimSnapshot"><a href="pc.AnimSnapshot.html">AnimSnapshot</a></li>
<li id="nav-pc.AnimTarget"><a href="pc.AnimTarget.html">AnimTarget</a></li>
<li id="nav-pc.AnimTrack"><a href="pc.AnimTrack.html">AnimTrack</a></li>
<li id="nav-pc.Application"><a href="pc.Application.html">Application</a></li>
<li id="nav-pc.Asset"><a href="pc.Asset.html">Asset</a></li>
<li id="nav-pc.AssetReference"><a href="pc.AssetReference.html">AssetReference</a></li>
<li id="nav-pc.AssetRegistry"><a href="pc.AssetRegistry.html">AssetRegistry</a></li>
<li id="nav-pc.AudioHandler"><a href="pc.AudioHandler.html">AudioHandler</a></li>
<li id="nav-pc.AudioListenerComponent"><a href="pc.AudioListenerComponent.html">AudioListenerComponent</a></li>
<li id="nav-pc.AudioListenerComponentSystem"><a href="pc.AudioListenerComponentSystem.html">AudioListenerComponentSystem</a></li>
<li id="nav-pc.BasicMaterial"><a href="pc.BasicMaterial.html">BasicMaterial</a></li>
<li id="nav-pc.Batch"><a href="pc.Batch.html">Batch</a></li>
<li id="nav-pc.BatchGroup"><a href="pc.BatchGroup.html">BatchGroup</a></li>
<li id="nav-pc.BatchManager"><a href="pc.BatchManager.html">BatchManager</a></li>
<li id="nav-pc.BoundingBox"><a href="pc.BoundingBox.html">BoundingBox</a></li>
<li id="nav-pc.BoundingSphere"><a href="pc.BoundingSphere.html">BoundingSphere</a></li>
<li id="nav-pc.ButtonComponent"><a href="pc.ButtonComponent.html">ButtonComponent</a></li>
<li id="nav-pc.ButtonComponentSystem"><a href="pc.ButtonComponentSystem.html">ButtonComponentSystem</a></li>
<li id="nav-pc.CameraComponent"><a href="pc.CameraComponent.html">CameraComponent</a></li>
<li id="nav-pc.CameraComponentSystem"><a href="pc.CameraComponentSystem.html">CameraComponentSystem</a></li>
<li id="nav-pc.CollisionComponent"><a href="pc.CollisionComponent.html">CollisionComponent</a></li>
<li id="nav-pc.CollisionComponentSystem"><a href="pc.CollisionComponentSystem.html">CollisionComponentSystem</a></li>
<li id="nav-pc.Color"><a href="pc.Color.html">Color</a></li>
<li id="nav-pc.Component"><a href="pc.Component.html">Component</a></li>
<li id="nav-pc.ComponentSystem"><a href="pc.ComponentSystem.html">ComponentSystem</a></li>
<li id="nav-pc.ComponentSystemRegistry"><a href="pc.ComponentSystemRegistry.html">ComponentSystemRegistry</a></li>
<li id="nav-pc.ContactPoint"><a href="pc.ContactPoint.html">ContactPoint</a></li>
<li id="nav-pc.ContactResult"><a href="pc.ContactResult.html">ContactResult</a></li>
<li id="nav-pc.ContainerHandler"><a href="pc.ContainerHandler.html">ContainerHandler</a></li>
<li id="nav-pc.ContainerResource"><a href="pc.ContainerResource.html">ContainerResource</a></li>
<li id="nav-pc.Controller"><a href="pc.Controller.html">Controller</a></li>
<li id="nav-pc.CubemapHandler"><a href="pc.CubemapHandler.html">CubemapHandler</a></li>
<li id="nav-pc.Curve"><a href="pc.Curve.html">Curve</a></li>
<li id="nav-pc.CurveSet"><a href="pc.CurveSet.html">CurveSet</a></li>
<li id="nav-pc.ElementComponent"><a href="pc.ElementComponent.html">ElementComponent</a></li>
<li id="nav-pc.ElementComponentSystem"><a href="pc.ElementComponentSystem.html">ElementComponentSystem</a></li>
<li id="nav-pc.ElementDragHelper"><a href="pc.ElementDragHelper.html">ElementDragHelper</a></li>
<li id="nav-pc.ElementInput"><a href="pc.ElementInput.html">ElementInput</a></li>
<li id="nav-pc.ElementInputEvent"><a href="pc.ElementInputEvent.html">ElementInputEvent</a></li>
<li id="nav-pc.ElementMouseEvent"><a href="pc.ElementMouseEvent.html">ElementMouseEvent</a></li>
<li id="nav-pc.ElementTouchEvent"><a href="pc.ElementTouchEvent.html">ElementTouchEvent</a></li>
<li id="nav-pc.Entity"><a href="pc.Entity.html">Entity</a></li>
<li id="nav-pc.EventHandler"><a href="pc.EventHandler.html">EventHandler</a></li>
<li id="nav-pc.Font"><a href="pc.Font.html">Font</a></li>
<li id="nav-pc.FontHandler"><a href="pc.FontHandler.html">FontHandler</a></li>
<li id="nav-pc.ForwardRenderer"><a href="pc.ForwardRenderer.html">ForwardRenderer</a></li>
<li id="nav-pc.Frustum"><a href="pc.Frustum.html">Frustum</a></li>
<li id="nav-pc.GamePads"><a href="pc.GamePads.html">GamePads</a></li>
<li id="nav-pc.GraphicsDevice"><a href="pc.GraphicsDevice.html">GraphicsDevice</a></li>
<li id="nav-pc.GraphNode"><a href="pc.GraphNode.html">GraphNode</a></li>
<li id="nav-pc.Http"><a href="pc.Http.html">Http</a></li>
<li id="nav-pc.I18n"><a href="pc.I18n.html">I18n</a></li>
<li id="nav-pc.IndexBuffer"><a href="pc.IndexBuffer.html">IndexBuffer</a></li>
<li id="nav-pc.Keyboard"><a href="pc.Keyboard.html">Keyboard</a></li>
<li id="nav-pc.KeyboardEvent"><a href="pc.KeyboardEvent.html">KeyboardEvent</a></li>
<li id="nav-pc.Layer"><a href="pc.Layer.html">Layer</a></li>
<li id="nav-pc.LayerComposition"><a href="pc.LayerComposition.html">LayerComposition</a></li>
<li id="nav-pc.LayoutChildComponent"><a href="pc.LayoutChildComponent.html">LayoutChildComponent</a></li>
<li id="nav-pc.LayoutChildComponentSystem"><a href="pc.LayoutChildComponentSystem.html">LayoutChildComponentSystem</a></li>
<li id="nav-pc.LayoutGroupComponent"><a href="pc.LayoutGroupComponent.html">LayoutGroupComponent</a></li>
<li id="nav-pc.LayoutGroupComponentSystem"><a href="pc.LayoutGroupComponentSystem.html">LayoutGroupComponentSystem</a></li>
<li id="nav-pc.LightComponent"><a href="pc.LightComponent.html">LightComponent</a></li>
<li id="nav-pc.LightComponentSystem"><a href="pc.LightComponentSystem.html">LightComponentSystem</a></li>
<li id="nav-pc.Lightmapper"><a href="pc.Lightmapper.html">Lightmapper</a></li>
<li id="nav-pc.Mat3"><a href="pc.Mat3.html">Mat3</a></li>
<li id="nav-pc.Mat4"><a href="pc.Mat4.html">Mat4</a></li>
<li id="nav-pc.Material"><a href="pc.Material.html">Material</a></li>
<li id="nav-pc.MaterialHandler"><a href="pc.MaterialHandler.html">MaterialHandler</a></li>
<li id="nav-pc.Mesh"><a href="pc.Mesh.html">Mesh</a></li>
<li id="nav-pc.MeshInstance"><a href="pc.MeshInstance.html">MeshInstance</a></li>
<li id="nav-pc.Model"><a href="pc.Model.html">Model</a></li>
<li id="nav-pc.ModelComponent"><a href="pc.ModelComponent.html">ModelComponent</a></li>
<li id="nav-pc.ModelComponentSystem"><a href="pc.ModelComponentSystem.html">ModelComponentSystem</a></li>
<li id="nav-pc.ModelHandler"><a href="pc.ModelHandler.html">ModelHandler</a></li>
<li id="nav-pc.Morph"><a href="pc.Morph.html">Morph</a></li>
<li id="nav-pc.MorphInstance"><a href="pc.MorphInstance.html">MorphInstance</a></li>
<li id="nav-pc.MorphTarget"><a href="pc.MorphTarget.html">MorphTarget</a></li>
<li id="nav-pc.Mouse"><a href="pc.Mouse.html">Mouse</a></li>
<li id="nav-pc.MouseEvent"><a href="pc.MouseEvent.html">MouseEvent</a></li>
<li id="nav-pc.Node"><a href="pc.Node.html">Node</a></li>
<li id="nav-pc.OrientedBox"><a href="pc.OrientedBox.html">OrientedBox</a></li>
<li id="nav-pc.ParticleSystemComponent"><a href="pc.ParticleSystemComponent.html">ParticleSystemComponent</a></li>
<li id="nav-pc.ParticleSystemComponentSystem"><a href="pc.ParticleSystemComponentSystem.html">ParticleSystemComponentSystem</a></li>
<li id="nav-pc.Picker"><a href="pc.Picker.html">Picker</a></li>
<li id="nav-pc.PostEffect"><a href="pc.PostEffect.html">PostEffect</a></li>
<li id="nav-pc.PostEffectQueue"><a href="pc.PostEffectQueue.html">PostEffectQueue</a></li>
<li id="nav-pc.Quat"><a href="pc.Quat.html">Quat</a></li>
<li id="nav-pc.Ray"><a href="pc.Ray.html">Ray</a></li>
<li id="nav-pc.RaycastResult"><a href="pc.RaycastResult.html">RaycastResult</a></li>
<li id="nav-pc.RenderTarget"><a href="pc.RenderTarget.html">RenderTarget</a></li>
<li id="nav-pc.ResourceHandler"><a href="pc.ResourceHandler.html">ResourceHandler</a></li>
<li id="nav-pc.ResourceLoader"><a href="pc.ResourceLoader.html">ResourceLoader</a></li>
<li id="nav-pc.RigidBodyComponent"><a href="pc.RigidBodyComponent.html">RigidBodyComponent</a></li>
<li id="nav-pc.RigidBodyComponentSystem"><a href="pc.RigidBodyComponentSystem.html">RigidBodyComponentSystem</a></li>
<li id="nav-pc.Scene"><a href="pc.Scene.html">Scene</a></li>
<li id="nav-pc.SceneHandler"><a href="pc.SceneHandler.html">SceneHandler</a></li>
<li id="nav-pc.ScopeId"><a href="pc.ScopeId.html">ScopeId</a></li>
<li id="nav-pc.ScopeSpace"><a href="pc.ScopeSpace.html">ScopeSpace</a></li>
<li id="nav-pc.ScreenComponent"><a href="pc.ScreenComponent.html">ScreenComponent</a></li>
<li id="nav-pc.ScreenComponentSystem"><a href="pc.ScreenComponentSystem.html">ScreenComponentSystem</a></li>
<li id="nav-pc.ScriptAttributes"><a href="pc.ScriptAttributes.html">ScriptAttributes</a></li>
<li id="nav-pc.ScriptComponent"><a href="pc.ScriptComponent.html">ScriptComponent</a></li>
<li id="nav-pc.ScriptComponentSystem"><a href="pc.ScriptComponentSystem.html">ScriptComponentSystem</a></li>
<li id="nav-pc.ScriptHandler"><a href="pc.ScriptHandler.html">ScriptHandler</a></li>
<li id="nav-pc.ScriptRegistry"><a href="pc.ScriptRegistry.html">ScriptRegistry</a></li>
<li id="nav-pc.ScriptType"><a href="pc.ScriptType.html">ScriptType</a></li>
<li id="nav-pc.ScrollbarComponent"><a href="pc.ScrollbarComponent.html">ScrollbarComponent</a></li>
<li id="nav-pc.ScrollbarComponentSystem"><a href="pc.ScrollbarComponentSystem.html">ScrollbarComponentSystem</a></li>
<li id="nav-pc.ScrollViewComponent"><a href="pc.ScrollViewComponent.html">ScrollViewComponent</a></li>
<li id="nav-pc.ScrollViewComponentSystem"><a href="pc.ScrollViewComponentSystem.html">ScrollViewComponentSystem</a></li>
<li id="nav-pc.Shader"><a href="pc.Shader.html">Shader</a></li>
<li id="nav-pc.SingleContactResult"><a href="pc.SingleContactResult.html">SingleContactResult</a></li>
<li id="nav-pc.Skeleton"><a href="pc.Skeleton.html">Skeleton</a></li>
<li id="nav-pc.Skin"><a href="pc.Skin.html">Skin</a></li>
<li id="nav-pc.SkinInstance"><a href="pc.SkinInstance.html">SkinInstance</a></li>
<li id="nav-pc.Sound"><a href="pc.Sound.html">Sound</a></li>
<li id="nav-pc.SoundComponent"><a href="pc.SoundComponent.html">SoundComponent</a></li>
<li id="nav-pc.SoundComponentSystem"><a href="pc.SoundComponentSystem.html">SoundComponentSystem</a></li>
<li id="nav-pc.SoundInstance"><a href="pc.SoundInstance.html">SoundInstance</a></li>
<li id="nav-pc.SoundInstance3d"><a href="pc.SoundInstance3d.html">SoundInstance3d</a></li>
<li id="nav-pc.SoundManager"><a href="pc.SoundManager.html">SoundManager</a></li>
<li id="nav-pc.SoundSlot"><a href="pc.SoundSlot.html">SoundSlot</a></li>
<li id="nav-pc.Sprite"><a href="pc.Sprite.html">Sprite</a></li>
<li id="nav-pc.SpriteAnimationClip"><a href="pc.SpriteAnimationClip.html">SpriteAnimationClip</a></li>
<li id="nav-pc.SpriteComponent"><a href="pc.SpriteComponent.html">SpriteComponent</a></li>
<li id="nav-pc.SpriteComponentSystem"><a href="pc.SpriteComponentSystem.html">SpriteComponentSystem</a></li>
<li id="nav-pc.SpriteHandler"><a href="pc.SpriteHandler.html">SpriteHandler</a></li>
<li id="nav-pc.StandardMaterial"><a href="pc.StandardMaterial.html">StandardMaterial</a></li>
<li id="nav-pc.StencilParameters"><a href="pc.StencilParameters.html">StencilParameters</a></li>
<li id="nav-pc.Tags"><a href="pc.Tags.html">Tags</a></li>
<li id="nav-pc.Texture"><a href="pc.Texture.html">Texture</a></li>
<li id="nav-pc.TextureAtlas"><a href="pc.TextureAtlas.html">TextureAtlas</a></li>
<li id="nav-pc.TextureAtlasHandler"><a href="pc.TextureAtlasHandler.html">TextureAtlasHandler</a></li>
<li id="nav-pc.TextureHandler"><a href="pc.TextureHandler.html">TextureHandler</a></li>
<li id="nav-pc.Touch"><a href="pc.Touch.html">Touch</a></li>
<li id="nav-pc.TouchDevice"><a href="pc.TouchDevice.html">TouchDevice</a></li>
<li id="nav-pc.TouchEvent"><a href="pc.TouchEvent.html">TouchEvent</a></li>
<li id="nav-pc.TransformFeedback"><a href="pc.TransformFeedback.html">TransformFeedback</a></li>
<li id="nav-pc.Vec2"><a href="pc.Vec2.html">Vec2</a></li>
<li id="nav-pc.Vec3"><a href="pc.Vec3.html">Vec3</a></li>
<li id="nav-pc.Vec4"><a href="pc.Vec4.html">Vec4</a></li>
<li id="nav-pc.VertexAttributeDescription"><a href="pc.VertexAttributeDescription.html">VertexAttributeDescription</a></li>
<li id="nav-pc.VertexAttributeElement"><a href="pc.VertexAttributeElement.html">VertexAttributeElement</a></li>
<li id="nav-pc.VertexBuffer"><a href="pc.VertexBuffer.html">VertexBuffer</a></li>
<li id="nav-pc.VertexFormat"><a href="pc.VertexFormat.html">VertexFormat</a></li>
<li id="nav-pc.VertexIterator"><a href="pc.VertexIterator.html">VertexIterator</a></li>
<li id="nav-pc.VertexIteratorAccessor"><a href="pc.VertexIteratorAccessor.html">VertexIteratorAccessor</a></li>
<li id="nav-pc.XrInput"><a href="pc.XrInput.html">XrInput</a></li>
<li id="nav-pc.XrInputSource"><a href="pc.XrInputSource.html">XrInputSource</a></li>
<li id="nav-pc.XrManager"><a href="pc.XrManager.html">XrManager</a></li>
</ul>
</nav>
<div class='sidebarToggle'><span></span>Class List</div>
<main class="cls">
<h1>pc.ParticleSystemComponent</h1>
<p class="extends">Extends: <a href="pc.Component.html">pc.Component</a></p>
<p><p>Used to simulate particles and produce renderable particle mesh on either CPU or GPU.
GPU simulation is generally much faster than its CPU counterpart, because it avoids slow CPU-GPU synchronization and takes advantage of many GPU cores.
However, it requires client to support reasonable uniform count, reading from multiple textures in vertex shader and OES_texture_float extension, including rendering into float textures.
Most mobile devices fail to satisfy these requirements, so it's not recommended to simulate thousands of particles on them. GPU version also can't sort particles, so enabling sorting forces CPU mode too.
Particle rotation is specified by a single angle parameter: default billboard particles rotate around camera facing axis, while mesh particles rotate around 2 different view-independent axes.
Most of the simulation parameters are specified with pc.Curve or pc.CurveSet. Curves are interpolated based on each particle's lifetime, therefore parameters are able to change over time.
Most of the curve parameters can also be specified by 2 minimum/maximum curves, this way each particle will pick a random value in-between.</p></p>
<!-- summary -->
<h1>Summary</h1>
<!--type definitions-->
<!--static properties-->
<!--static methods-->
<!--properties-->
<h3>Properties</h3>
<table class="properties">
<tr>
<td><a href="#alignToMotion">alignToMotion</a></td><td><p>Orient particles in their direction of motion.</td>
</tr>
<tr>
<td><a href="#alphaGraph">alphaGraph</a></td><td><p>Alpha over lifetime.</td>
</tr>
<tr>
<td><a href="#alphaGraph2">alphaGraph2</a></td><td><p>If not null, particles pick random values between alphaGraph and alphaGraph2.</td>
</tr>
<tr>
<td><a href="#animIndex">animIndex</a></td><td><p>When animNumAnimations is greater than 1, the sprite sheet animation index determines which animation the particle system should play.</td>
</tr>
<tr>
<td><a href="#animLoop">animLoop</a></td><td><p>Controls whether the sprite sheet animation plays once or loops continuously.</td>
</tr>
<tr>
<td><a href="#animNumAnimations">animNumAnimations</a></td><td><p>Number of sprite sheet animations contained within the current sprite sheet.</td>
</tr>
<tr>
<td><a href="#animNumFrames">animNumFrames</a></td><td><p>Number of sprite sheet frames in the current sprite sheet animation.</td>
</tr>
<tr>
<td><a href="#animSpeed">animSpeed</a></td><td><p>Sprite sheet animation speed.</td>
</tr>
<tr>
<td><a href="#animStartFrame">animStartFrame</a></td><td><p>The sprite sheet frame that the animation should begin playing from.</td>
</tr>
<tr>
<td><a href="#animTilesX">animTilesX</a></td><td><p>Number of horizontal tiles in the sprite sheet.</td>
</tr>
<tr>
<td><a href="#animTilesY">animTilesY</a></td><td><p>Number of vertical tiles in the sprite sheet.</td>
</tr>
<tr>
<td><a href="#autoPlay">autoPlay</a></td><td><p>Controls whether the particle system plays automatically on creation.</td>
</tr>
<tr>
<td><a href="#blend">blend</a></td><td><p>Controls how particles are blended when being written to the currently active render target.</td>
</tr>
<tr>
<td><a href="#colorGraph">colorGraph</a></td><td><p>Color over lifetime.</td>
</tr>
<tr>
<td><a href="#colorMap">colorMap</a></td><td><p>The color map texture to apply to all particles in the system.</td>
</tr>
<tr>
<td><a href="#colorMapAsset">colorMapAsset</a></td><td><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the colorMap.</td>
</tr>
<tr>
<td><a href="#depthSoftening">depthSoftening</a></td><td><p>Controls fading of particles near their intersections with scene geometry.</td>
</tr>
<tr>
<td><a href="#depthWrite">depthWrite</a></td><td><p>If enabled, the particles will write to the depth buffer.</td>
</tr>
<tr>
<td><a href="#emitterExtents">emitterExtents</a></td><td><p>(Only for EMITTERSHAPE_BOX) The extents of a local space bounding box within which particles are spawned at random positions.</td>
</tr>
<tr>
<td><a href="#emitterExtentsInner">emitterExtentsInner</a></td><td><p>(Only for EMITTERSHAPE_BOX) The exception of extents of a local space bounding box within which particles are not spawned.</td>
</tr>
<tr>
<td><a href="#emitterRadius">emitterRadius</a></td><td><p>(Only for EMITTERSHAPE_SPHERE) The radius within which particles are spawned at random positions.</td>
</tr>
<tr>
<td><a href="#emitterRadiusInner">emitterRadiusInner</a></td><td><p>(Only for EMITTERSHAPE_SPHERE) The inner radius within which particles are not spawned.</td>
</tr>
<tr>
<td><a href="#emitterShape">emitterShape</a></td><td><p>Shape of the emitter.</td>
</tr>
<tr>
<td><a href="#halfLambert">halfLambert</a></td><td><p>Enabling Half Lambert lighting avoids particles looking too flat in shadowed areas.</td>
</tr>
<tr>
<td><a href="#initialVelocity">initialVelocity</a></td><td><p>Defines magnitude of the initial emitter velocity.</td>
</tr>
<tr>
<td><a href="#intensity">intensity</a></td><td><p>Color multiplier.</td>
</tr>
<tr>
<td><a href="#layers">layers</a></td><td><p>An array of layer IDs (pc.Layer#id) to which this particle system should belong.</td>
</tr>
<tr>
<td><a href="#lifetime">lifetime</a></td><td><p>The length of time in seconds between a particle's birth and its death.</td>
</tr>
<tr>
<td><a href="#lighting">lighting</a></td><td><p>If enabled, particles will be lit by ambient and directional lights.</td>
</tr>
<tr>
<td><a href="#localSpace">localSpace</a></td><td><p>Binds particles to emitter transformation rather then world space.</td>
</tr>
<tr>
<td><a href="#localVelocityGraph">localVelocityGraph</a></td><td><p>Velocity relative to emitter over lifetime.</td>
</tr>
<tr>
<td><a href="#localVelocityGraph2">localVelocityGraph2</a></td><td><p>If not null, particles pick random values between localVelocityGraph and localVelocityGraph2.</td>
</tr>
<tr>
<td><a href="#loop">loop</a></td><td><p>Enables or disables respawning of particles.</td>
</tr>
<tr>
<td><a href="#mesh">mesh</a></td><td><p>Triangular mesh to be used as a particle.</td>
</tr>
<tr>
<td><a href="#meshAsset">meshAsset</a></td><td><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the mesh.</td>
</tr>
<tr>
<td><a href="#noFog">noFog</a></td><td><p>Disable fogging.</td>
</tr>
<tr>
<td><a href="#normalMap">normalMap</a></td><td><p>The normal map texture to apply to all particles in the system.</td>
</tr>
<tr>
<td><a href="#normalMapAsset">normalMapAsset</a></td><td><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the normalMap.</td>
</tr>
<tr>
<td><a href="#numParticles">numParticles</a></td><td><p>Maximum number of simulated particles.</td>
</tr>
<tr>
<td><a href="#orientation">orientation</a></td><td><p>Sorting mode.</td>
</tr>
<tr>
<td><a href="#particleNormal">particleNormal</a></td><td><p>(Only for PARTICLEORIENTATION_WORLD and PARTICLEORIENTATION_EMITTER) The exception of extents of a local space bounding box within which particles are not spawned.</td>
</tr>
<tr>
<td><a href="#preWarm">preWarm</a></td><td><p>If enabled, the particle system will be initialized as though it had already completed a full cycle.</td>
</tr>
<tr>
<td><a href="#radialSpeedGraph">radialSpeedGraph</a></td><td><p>Radial speed over lifetime, velocity vector points from emitter origin to particle pos.</td>
</tr>
<tr>
<td><a href="#radialSpeedGraph2">radialSpeedGraph2</a></td><td><p>If not null, particles pick random values between radialSpeedGraph and radialSpeedGraph2.</td>
</tr>
<tr>
<td><a href="#randomizeAnimIndex">randomizeAnimIndex</a></td><td><p>Each particle emitted by the system will play a random animation from the sprite sheet, up to animNumAnimations.</td>
</tr>
<tr>
<td><a href="#rate">rate</a></td><td><p>Minimal interval in seconds between particle births.</td>
</tr>
<tr>
<td><a href="#rate2">rate2</a></td><td><p>Maximal interval in seconds between particle births.</td>
</tr>
<tr>
<td><a href="#rotationSpeedGraph">rotationSpeedGraph</a></td><td><p>Rotation speed over lifetime.</td>
</tr>
<tr>
<td><a href="#rotationSpeedGraph2">rotationSpeedGraph2</a></td><td><p>If not null, particles pick random values between rotationSpeedGraph and rotationSpeedGraph2.</td>
</tr>
<tr>
<td><a href="#scaleGraph">scaleGraph</a></td><td><p>Scale over lifetime.</td>
</tr>
<tr>
<td><a href="#scaleGraph2">scaleGraph2</a></td><td><p>If not null, particles pick random values between scaleGraph and scaleGraph2.</td>
</tr>
<tr>
<td><a href="#sort">sort</a></td><td><p>Sorting mode.</td>
</tr>
<tr>
<td><a href="#startAngle">startAngle</a></td><td><p>Minimal initial Euler angle of a particle.</td>
</tr>
<tr>
<td><a href="#startAngle2">startAngle2</a></td><td><p>Maximal initial Euler angle of a particle.</td>
</tr>
<tr>
<td><a href="#stretch">stretch</a></td><td><p>A value in world units that controls the amount by which particles are stretched based on their velocity.</td>
</tr>
<tr>
<td><a href="#velocityGraph">velocityGraph</a></td><td><p>World-space velocity over lifetime.</td>
</tr>
<tr>
<td><a href="#velocityGraph2">velocityGraph2</a></td><td><p>If not null, particles pick random values between velocityGraph and velocityGraph2.</td>
</tr>
<tr>
<td><a href="#wrapBounds">wrapBounds</a></td><td><p>The half extents of a world space box volume centered on the owner entity's position.</td>
</tr>
</table>
<!--methods-->
<h3>Methods</h3>
<table class="properties">
<tr>
<td><a href="#isPlaying">isPlaying</a></td><td><p>Checks if simulation is in progress.</td>
</tr>
<tr>
<td><a href="#pause">pause</a></td><td><p>Freezes the simulation.</td>
</tr>
<tr>
<td><a href="#play">play</a></td><td><p>Enables/unfreezes the simulation.</td>
</tr>
<tr>
<td><a href="#reset">reset</a></td><td><p>Resets particle state, doesn't affect playing.</td>
</tr>
<tr>
<td><a href="#stop">stop</a></td><td><p>Disables the emission of new particles, lets existing to finish their simulation.</td>
</tr>
<tr>
<td><a href="#unpause">unpause</a></td><td><p>Unfreezes the simulation.</td>
</tr>
</table>
<!--events-->
<h2>Inherited</h2>
<!--inherited methods-->
<!--inherited properties-->
<h3>Properties</h3>
<table class="properties">
<tr>
<td><a href="#enabled">enabled</a></td><td><p>Enables or disables the component.</td>
</tr>
<tr>
<td><a href="#entity">entity</a></td><td><p>The Entity that this Component is attached to.</td>
</tr>
<tr>
<td><a href="#system">system</a></td><td><p>The ComponentSystem used to create this Component.</td>
</tr>
</table>
<!--inherited static methods-->
<h3>Methods</h3>
<table class="properties">
<tr>
<td><a href="#fire">fire</a></td><td><p>Fire an event, all additional arguments are passed on to the event listener.</td>
</tr>
<tr>
<td><a href="#hasEvent">hasEvent</a></td><td><p>Test if there are any handlers bound to an event name.</td>
</tr>
<tr>
<td><a href="#off">off</a></td><td><p>Detach an event handler from an event.</td>
</tr>
<tr>
<td><a href="#on">on</a></td><td><p>Attach an event handler to an event.</td>
</tr>
<tr>
<td><a href="#once">once</a></td><td><p>Attach an event handler to an event.</td>
</tr>
</table>
<!--inherited events-->
<h1>Details</h1>
<!--type definitions-->
<!--static members-->
<!--static methods-->
<h2>Constructor</h2>
<!-- Constructor -->
<div id="ParticleSystemComponent">
<h3 class="methodname">ParticleSystemComponent(system, entity) <a class="font-icon" href="#ParticleSystemComponent"></a></h3>
<p><p>Create a new ParticleSystemComponent.</p></p>
<h4>Parameters</h4>
<table>
<tr>
<td>system</td><td><a href="pc.ParticleSystemComponentSystem.html">pc.ParticleSystemComponentSystem</a></td><td><p>The ComponentSystem that created this Component.</p></td>
</tr>
<tr>
<td>entity</td><td><a href="pc.Entity.html">pc.Entity</a></td><td><p>The Entity this Component is attached to.</p></td>
</tr>
</table>
</div>
<!--properties-->
<h2>Properties</h2>
<div id="alignToMotion">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">alignToMotion <a class="font-icon" href="#alignToMotion"></a></span>
<p><p>Orient particles in their direction of motion.</p></p>
</div>
<div id="alphaGraph">
<span class="property"><a href="pc.Curve.html">pc.Curve</a></span><span class="property">alphaGraph <a class="font-icon" href="#alphaGraph"></a></span>
<p><p>Alpha over lifetime.</p></p>
</div>
<div id="alphaGraph2">
<span class="property"><a href="pc.Curve.html">pc.Curve</a></span><span class="property">alphaGraph2 <a class="font-icon" href="#alphaGraph2"></a></span>
<p><p>If not null, particles pick random values between alphaGraph and alphaGraph2.</p></p>
</div>
<div id="animIndex">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animIndex <a class="font-icon" href="#animIndex"></a></span>
<p><p>When animNumAnimations is greater than 1, the sprite sheet animation index determines which animation the particle system should play.</p></p>
</div>
<div id="animLoop">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">animLoop <a class="font-icon" href="#animLoop"></a></span>
<p><p>Controls whether the sprite sheet animation plays once or loops continuously.</p></p>
</div>
<div id="animNumAnimations">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animNumAnimations <a class="font-icon" href="#animNumAnimations"></a></span>
<p><p>Number of sprite sheet animations contained within the current sprite sheet. The number of animations multiplied by number of frames should be a value less than animTilesX multiplied by animTilesY.</p></p>
</div>
<div id="animNumFrames">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animNumFrames <a class="font-icon" href="#animNumFrames"></a></span>
<p><p>Number of sprite sheet frames in the current sprite sheet animation. The number of animations multiplied by number of frames should be a value less than animTilesX multiplied by animTilesY.</p></p>
</div>
<div id="animSpeed">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animSpeed <a class="font-icon" href="#animSpeed"></a></span>
<p><p>Sprite sheet animation speed. 1 = particle lifetime, 2 = twice during lifetime etc...</p></p>
</div>
<div id="animStartFrame">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animStartFrame <a class="font-icon" href="#animStartFrame"></a></span>
<p><p>The sprite sheet frame that the animation should begin playing from. Indexed from the start of the current animation.</p></p>
</div>
<div id="animTilesX">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animTilesX <a class="font-icon" href="#animTilesX"></a></span>
<p><p>Number of horizontal tiles in the sprite sheet.</p></p>
</div>
<div id="animTilesY">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">animTilesY <a class="font-icon" href="#animTilesY"></a></span>
<p><p>Number of vertical tiles in the sprite sheet.</p></p>
</div>
<div id="autoPlay">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">autoPlay <a class="font-icon" href="#autoPlay"></a></span>
<p><p>Controls whether the particle system plays automatically on creation. If set to false, it is necessary to call <a href="pc.ParticleSystemComponent.html#play">pc.ParticleSystemComponent#play</a> for the particle system to play. Defaults to true.</p></p>
</div>
<div id="blend">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">blend <a class="font-icon" href="#blend"></a></span>
<p><p>Controls how particles are blended when being written to the currently active render target.
Can be:</p>
<ul>
<li><a href="pc.html#BLEND_SUBTRACTIVE">pc.BLEND_SUBTRACTIVE</a>: Subtract the color of the source fragment from the destination fragment and write the result to the frame buffer.</li>
<li><a href="pc.html#BLEND_ADDITIVE">pc.BLEND_ADDITIVE</a>: Add the color of the source fragment to the destination fragment and write the result to the frame buffer.</li>
<li><a href="pc.html#BLEND_NORMAL">pc.BLEND_NORMAL</a>: Enable simple translucency for materials such as glass. This is equivalent to enabling a source blend mode of pc.BLENDMODE_SRC_ALPHA and a destination blend mode of pc.BLENDMODE_ONE_MINUS_SRC_ALPHA.</li>
<li><a href="pc.html#BLEND_NONE">pc.BLEND_NONE</a>: Disable blending.</li>
<li><a href="pc.html#BLEND_PREMULTIPLIED">pc.BLEND_PREMULTIPLIED</a>: Similar to pc.BLEND_NORMAL expect the source fragment is assumed to have already been multiplied by the source alpha value.</li>
<li><a href="pc.html#BLEND_MULTIPLICATIVE">pc.BLEND_MULTIPLICATIVE</a>: Multiply the color of the source fragment by the color of the destination fragment and write the result to the frame buffer.</li>
<li><a href="pc.html#BLEND_ADDITIVEALPHA">pc.BLEND_ADDITIVEALPHA</a>: Same as pc.BLEND_ADDITIVE except the source RGB is multiplied by the source alpha.</li>
</ul></p>
</div>
<div id="colorGraph">
<span class="property"><a href="pc.CurveSet.html">pc.CurveSet</a></span><span class="property">colorGraph <a class="font-icon" href="#colorGraph"></a></span>
<p><p>Color over lifetime.</p></p>
</div>
<div id="colorMap">
<span class="property"><a href="pc.Texture.html">pc.Texture</a></span><span class="property">colorMap <a class="font-icon" href="#colorMap"></a></span>
<p><p>The color map texture to apply to all particles in the system. If no texture is assigned, a default spot texture is used.</p></p>
</div>
<div id="colorMapAsset">
<span class="property"><a href="pc.Asset.html">pc.Asset</a></span><span class="property">colorMapAsset <a class="font-icon" href="#colorMapAsset"></a></span>
<p><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the colorMap.</p></p>
</div>
<div id="depthSoftening">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">depthSoftening <a class="font-icon" href="#depthSoftening"></a></span>
<p><p>Controls fading of particles near their intersections with scene geometry. This effect, when it's non-zero, requires scene depth map to be rendered. Multiple depth-dependent effects can share the same map, but if you only use it for particles, bear in mind that it can double engine draw calls.</p></p>
</div>
<div id="depthWrite">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">depthWrite <a class="font-icon" href="#depthWrite"></a></span>
<p><p>If enabled, the particles will write to the depth buffer. If disabled, the depth buffer is left unchanged and particles will be guaranteed to overwrite one another in the order in which they are rendered.</p></p>
</div>
<div id="emitterExtents">
<span class="property"><a href="pc.Vec3.html">pc.Vec3</a></span><span class="property">emitterExtents <a class="font-icon" href="#emitterExtents"></a></span>
<p><p>(Only for EMITTERSHAPE_BOX) The extents of a local space bounding box within which particles are spawned at random positions.</p></p>
</div>
<div id="emitterExtentsInner">
<span class="property"><a href="pc.Vec3.html">pc.Vec3</a></span><span class="property">emitterExtentsInner <a class="font-icon" href="#emitterExtentsInner"></a></span>
<p><p>(Only for EMITTERSHAPE_BOX) The exception of extents of a local space bounding box within which particles are not spawned. Aligned to the center of EmitterExtents.</p></p>
</div>
<div id="emitterRadius">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">emitterRadius <a class="font-icon" href="#emitterRadius"></a></span>
<p><p>(Only for EMITTERSHAPE_SPHERE) The radius within which particles are spawned at random positions.</p></p>
</div>
<div id="emitterRadiusInner">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">emitterRadiusInner <a class="font-icon" href="#emitterRadiusInner"></a></span>
<p><p>(Only for EMITTERSHAPE_SPHERE) The inner radius within which particles are not spawned.</p></p>
</div>
<div id="emitterShape">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">emitterShape <a class="font-icon" href="#emitterShape"></a></span>
<p><p>Shape of the emitter. Defines the bounds inside which particles are spawned. Also affects the direction of initial velocity.</p>
<ul>
<li><a href="pc.html#EMITTERSHAPE_BOX">pc.EMITTERSHAPE_BOX</a>: Box shape parameterized by emitterExtents. Initial velocity is directed towards local Z axis.</li>
<li><a href="pc.html#EMITTERSHAPE_SPHERE">pc.EMITTERSHAPE_SPHERE</a>: Sphere shape parameterized by emitterRadius. Initial velocity is directed outwards from the center.</li>
</ul></p>
</div>
<div id="halfLambert">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">halfLambert <a class="font-icon" href="#halfLambert"></a></span>
<p><p>Enabling Half Lambert lighting avoids particles looking too flat in shadowed areas. It is a completely non-physical lighting model but can give more pleasing visual results.</p></p>
</div>
<div id="initialVelocity">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">initialVelocity <a class="font-icon" href="#initialVelocity"></a></span>
<p><p>Defines magnitude of the initial emitter velocity. Direction is given by emitter shape.</p></p>
</div>
<div id="intensity">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">intensity <a class="font-icon" href="#intensity"></a></span>
<p><p>Color multiplier.</p></p>
</div>
<div id="layers">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number[]</a></span><span class="property">layers <a class="font-icon" href="#layers"></a></span>
<p><p>An array of layer IDs (pc.Layer#id) to which this particle system should belong.
Don't push/pop/splice or modify this array, if you want to change it - set a new one instead.</p></p>
</div>
<div id="lifetime">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">lifetime <a class="font-icon" href="#lifetime"></a></span>
<p><p>The length of time in seconds between a particle's birth and its death.</p></p>
</div>
<div id="lighting">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">lighting <a class="font-icon" href="#lighting"></a></span>
<p><p>If enabled, particles will be lit by ambient and directional lights.</p></p>
</div>
<div id="localSpace">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">localSpace <a class="font-icon" href="#localSpace"></a></span>
<p><p>Binds particles to emitter transformation rather then world space.</p></p>
</div>
<div id="localVelocityGraph">
<span class="property"><a href="pc.CurveSet.html">pc.CurveSet</a></span><span class="property">localVelocityGraph <a class="font-icon" href="#localVelocityGraph"></a></span>
<p><p>Velocity relative to emitter over lifetime.</p></p>
</div>
<div id="localVelocityGraph2">
<span class="property"><a href="pc.CurveSet.html">pc.CurveSet</a></span><span class="property">localVelocityGraph2 <a class="font-icon" href="#localVelocityGraph2"></a></span>
<p><p>If not null, particles pick random values between localVelocityGraph and localVelocityGraph2.</p></p>
</div>
<div id="loop">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">loop <a class="font-icon" href="#loop"></a></span>
<p><p>Enables or disables respawning of particles.</p></p>
</div>
<div id="mesh">
<span class="property"><a href="pc.Mesh.html">pc.Mesh</a></span><span class="property">mesh <a class="font-icon" href="#mesh"></a></span>
<p><p>Triangular mesh to be used as a particle. Only first vertex/index buffer is used. Vertex buffer must contain local position at first 3 floats of each vertex.</p></p>
</div>
<div id="meshAsset">
<span class="property"><a href="pc.Asset.html">pc.Asset</a></span><span class="property">meshAsset <a class="font-icon" href="#meshAsset"></a></span>
<p><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the mesh.</p></p>
</div>
<div id="noFog">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">noFog <a class="font-icon" href="#noFog"></a></span>
<p><p>Disable fogging.</p></p>
</div>
<div id="normalMap">
<span class="property"><a href="pc.Texture.html">pc.Texture</a></span><span class="property">normalMap <a class="font-icon" href="#normalMap"></a></span>
<p><p>The normal map texture to apply to all particles in the system. If no texture is assigned, an approximate spherical normal is calculated for each vertex.</p></p>
</div>
<div id="normalMapAsset">
<span class="property"><a href="pc.Asset.html">pc.Asset</a></span><span class="property">normalMapAsset <a class="font-icon" href="#normalMapAsset"></a></span>
<p><p>The <a href="pc.Asset.html">pc.Asset</a> used to set the normalMap.</p></p>
</div>
<div id="numParticles">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">numParticles <a class="font-icon" href="#numParticles"></a></span>
<p><p>Maximum number of simulated particles.</p></p>
</div>
<div id="orientation">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">orientation <a class="font-icon" href="#orientation"></a></span>
<p><p>Sorting mode. Forces CPU simulation, so be careful.</p>
<ul>
<li><a href="pc.html#PARTICLEORIENTATION_SCREEN">pc.PARTICLEORIENTATION_SCREEN</a>: Particles are facing camera.</li>
<li><a href="pc.html#PARTICLEORIENTATION_WORLD">pc.PARTICLEORIENTATION_WORLD</a>: User defines world space normal (particleNormal) to set planes orientation.</li>
<li><a href="pc.html#PARTICLEORIENTATION_EMITTER">pc.PARTICLEORIENTATION_EMITTER</a>: Similar to previous, but the normal is affected by emitter(entity) transformation.</li>
</ul></p>
</div>
<div id="particleNormal">
<span class="property"><a href="pc.Vec3.html">pc.Vec3</a></span><span class="property">particleNormal <a class="font-icon" href="#particleNormal"></a></span>
<p><p>(Only for PARTICLEORIENTATION_WORLD and PARTICLEORIENTATION_EMITTER) The exception of extents of a local space bounding box within which particles are not spawned. Aligned to the center of EmitterExtents.</p></p>
</div>
<div id="preWarm">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></span><span class="property">preWarm <a class="font-icon" href="#preWarm"></a></span>
<p><p>If enabled, the particle system will be initialized as though it had already completed a full cycle. This only works with looping particle systems.</p></p>
</div>
<div id="radialSpeedGraph">
<span class="property"><a href="pc.Curve.html">pc.Curve</a></span><span class="property">radialSpeedGraph <a class="font-icon" href="#radialSpeedGraph"></a></span>
<p><p>Radial speed over lifetime, velocity vector points from emitter origin to particle pos.</p></p>
</div>
<div id="radialSpeedGraph2">
<span class="property"><a href="pc.Curve.html">pc.Curve</a></span><span class="property">radialSpeedGraph2 <a class="font-icon" href="#radialSpeedGraph2"></a></span>
<p><p>If not null, particles pick random values between radialSpeedGraph and radialSpeedGraph2.</p></p>
</div>
<div id="randomizeAnimIndex">
<span class="property"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></span><span class="property">randomizeAnimIndex <a class="font-icon" href="#randomizeAnimIndex"></a></span>
<p><p>Each particle emitted by the system will play a random animation from the