The plopping you get with smoke for example, is not because the alpha doesn't fade gradually. It does, but there are many billboards being spawned, many billboards behind each other.
When their life is pretty much the same, they'll also die at pretty much the same time, causing the plopping.
The fact that all these billboards are behind each other creates a performance penalty due to all of the alpha blending. Especially when the particles fill the screen.
This can be avoided somewhat by limiting the size (or growth). Of course, some still look better when they are large.
Here's the list of all particles.ini options (some might not yet be available in the beta 0.89 build, so please be patient while work is being done on a new build).
Note that the turbulence influence is not available, you can get some "randomness" by setting a startvelocity_var
Code:
particleSystemName
{
; Max nr Of Particles
max=10
particles_per_spawn=1
max_spawns_per_second=30
; velocity out of the emitter in m/s
startvelocity=0 0 -1
; variance in m/s
startvelocity_var=0 0 0.2
; lifetime in seconds
life=3
; variance in seconds
life_var=1
; size of a particle in meters
size=0.5
size_var=0.2
; grow or shrink particles
growth=0
growth_var=0
; max alpha=1 = fully opaque at start.
max_alpha=1
; Alphafade determines how fading will happen
; linear is the default, no or none will have max_alpha for the entire life of the particle
alphafade=no
texture=data/images/texturename.tga
; Other shaders can be applied. The defaults are particles_v.cg and particles_f.cg
; Use other shaders when you don't want certain functions like lighting,
; or when you want to add new non-standards
vertex_shader=particles_spark_v.cg
fragment_shader=particles_spark_f.cg
influences
{
; name of an existing particleInfluence (in c++)
; value: 1=default, 0-1= less influence, 1-inf=more influence
airfriction=0.1
wind=0
gravity=1
}
}
You can define your own collision particles in particles.ini.
In the upcoming version, you'll be able to add a few (or at least one) particlesystem(s) to materialpairs in data/physics/materials.ini. Spawning happens when you scratch against something anyway, so just make sure the car's collision model gets a material property.
Sparks are the default collision particle system, but if you're not happy with that, it is interchangeable.