Game Development Community

Particle Problems in 1.7.0

by Bill Vee · in Torque Game Engine Advanced · 05/11/2008 (1:55 pm) · 5 replies

I am not sure if this is a bug yet.
While migrating my project to 1.7.0 from 1.3.0 I am running into a big problem with some vehicle contrails.

The following images are from 1.0.3
dayofwar.net/images/Contrail_1_0_3-1.pngdayofwar.net/images/Contrail_1_0_3-2.pngdayofwar.net/images/Contrail_1_0_3-3.png

And these are from 1.7.0
dayofwar.net/images/Contrail_1_7_0-0.pngdayofwar.net/images/Contrail_1_7_0-1.pngdayofwar.net/images/Contrail_1_7_0-2.png
This is the datablock for the particle.
datablock ParticleData(DropShip1TrailParticle)
{
  dragCoefficient      = 1.5;
  gravityCoefficient   = 0;
  inheritedVelFactor   = 0.2;
  constantAcceleration = 0.0;
  lifetimeMS           = 3000;
  lifetimeVarianceMS   = 0;
  textureName          = "~/data/shapes/dropship1/contrail";
  colors[0]     = "0.6 0.6 0.6 0.5";
  colors[1]     = "0.2 0.2 0.2 0";
  sizes[0]      = 0.6;
  sizes[1]      = 5;
};

datablock ParticleEmitterData(DropShip1TrailEmitter)
{
  ejectionPeriodMS = 5;
  periodVarianceMS = 0;
  ejectionVelocity = 1;
  velocityVariance = 0.0;
  ejectionOffset   = 0.0;
  thetaMin         = 0;
  thetaMax         = 10;
  phiReferenceVel  = 0;
  phiVariance      = 360;
  overrideAdvances = true;
  particles = "DropShip1TrailParticle";
};

Is there something different in 1.7.0 that I missed.

#1
05/11/2008 (3:45 pm)
Are you certain that you have the same setting for "overrideAdvance" in both cases. (In your example code, you've misspelled it as "overrideAdvances", with an extra s.) This setting makes a difference in very dense particle streams with a narrow path like you have here. Your 1.0.3 shots look like they were made with overrideAdvance=false and the 1.7.0 with overrideAdvance=true.

With overrideAdvance=false, multiple particles emitted in the same frame have their positions adjusted. With overrideAdvance=true the adjustment is skipped and this causes the particles to clump together in a frame dependent manner.
#2
05/11/2008 (5:10 pm)
@ Jeff Faust - Nice catch. Unfortunately the typo doesn't seem to make a difference.
I tried it every way I could;
overrideAdvance = 0;
overrideAdvance = 1;

overrideAdvance = true;
overrideAdvance = false;

The odd thing is that the script in question was copied from 1.0.3 as is.
It was exactly the same in both versions typo and all.

Looks fine in 1.0.3 but not 1.7.0.

There are moments in 1.7.0 that it seems to spit out a good stream of particles then starts clumping again.
I noticed after I press "ctl p" for a screen shot after a small hiccup it spits out a good stream for about a second then clumps up again.

On a side not the current release of 1.7.0 references overrideAdvances instead of overrideAdvance in crossbow.cs.
#3
05/14/2008 (9:43 am)
Theres a bug in 1.7 if alot of objects from one datablock are being called to draw on screen at once then the engine will stop drawing them at random. We have a chain gun style weapon doing the same thing with its tracer rounds.
#4
05/14/2008 (10:47 am)
Well thats inconvenient :)
#5
05/16/2008 (2:58 pm)
Ok I finally tracked down my problem.
My GPU is a ATI Technologies Inc. Radeon X1300/X1550 Series
With driver Version: '67.15'

Just upgraded to version 67.83
The difference is night and day.
What gave it away was I was doing some coding at work on my laptop and I noticed the vehicle contrails were working fine.

@ Jesse McKinney - This may be the problem your having as well. Outdated drivers?