Page MenuHomeFeedback Tracker

Particles stop updating screenspace size when too many exist
New, NormalPublic

Description

When too many particles exist at once, newer particles stop updating their size based on the camera position and zoom.
They correctly change size based on the ParticleArray size values, but will no longer take into account where they are being viewed from.

I'm assuming there is an engine per-frame threshold on the number of particles that will update their size, starting with the oldest.
This threshold will change depending on the particle quality.
From the example below, that threshold seems to be about 50 particles for High (which seems extremely low if this a performance optimisation).

Found when adding a permanent particle effect that emits a lot of particles over a long period of time.

Details

Severity
Minor
Resolution
Open
Reproducibility
Always
Operating System
Windows 7
Category
Particles
Steps To Reproduce

Run the following code
Test by moving around, and also by zooming in/out with RMB

All particles should change size as you move or zoom, but only the first ones spawned will.

The issue appears to start when _i gets to around 50 at High particle quality

[] spawn {
	private _spawnOffset = [[0, 20, 3], -(getDir player)] call BIS_fnc_rotateVector2D;
	private _spawnPosition = (getPosASL player) vectorAdd _spawnOffset;
	private _obj = "#particlesource" createVehicleLocal (ASLToAGL _spawnPosition);

	for "_i" from 0 to 200 do {
		drop [
			[
				"\A3\data_f\ParticleEffects\Universal\Universal",
				16, 15, 1, 0
			],
			"", "Billboard",
			1, 5,
			[0, 0, 0], [0, 0, 0],
			0, 1.0, 0.8, 0.0,
			[10],
			[
				[0, 0, 0, 0],
				[0, 0, 0, 0.124],
				[0, 0, 0, 0]
			],
			[1000],
			0.0, 0.0,
			"", "", _obj
		];
		sleep 0.02;
	};

	deleteVehicle _obj;
};
Additional Information

Inner particles are not resizing when zooming in

Event Timeline