Hello!
I am running into a significant issue while trying to implement a realistic engine flame/thruster effect for my spaceship using GPUParticles2D.
Technical Details:
Godot Version: Godot 4.5
Parent Node (Ship): RigidBody2D
Particle Node: GPUParticles2D
Operating System: Linux Mint 22.2 Cinnamon
Problem Description
When the ship is moving, especially at high speeds, the particles spawning from it become streaked, elongated, and “sheared” in the direction of the ship’s movement.
Default Behavior (Local Coords: Off): The particles are clearly streaked/sheared, resulting in an unnatural look for a flame or exhaust.
Attempt 1: Enabling Local Coords:
The particles are rigidly attached to the ship. The flame effect does not bend or lag behind the movement, which completely breaks the sense of dynamic motion.
Attempt 2: Using Speed Scale parameter:
Setting Speed Scale to maximum gives a result similar to Local Coords (rigid flame). Intermediate values do not fully eliminate the problem and introduce secondary artifacts, such as a doubled particle trail.
Particle settings
amount = 250
speed_scale = 4.0
spread = 0.0
initial_velocity_min = 19.47
initial_velocity_max = 19.47
gravity = Vector3(0, 0, 0)
linear_accel_min = 0
linear_accel_max = 100
Question
How can I solve the “shearing/streaking” particle problem caused by the moving parent node.