Skip to content

Particles Bounce Performance (MOVE_NORMAL vs. 2014 used MOVE_NOMONSTERS) #291

Description

@Baker7

cl_particles.c:R_DrawParticles

DarkPlaces 2014 and Xonotic 2017 has MOVE_NOMONSTERS_1 for particle collision with bounce, DarkPlaces Beta has MOVE_NORMAL.

MOVE_NOMONSTERS collides against SOLID_BSP == the world, doors, platforms, func_wall. MOVE_NORMAL collides against anything SOLID.

			if (p->bounce && cl_particles_collisions.integer && VectorLength(p->vel))
				{
					trace = CL_TraceLine(oldorg, p->org, MOVE_NORMAL, NULL, SUPERCONTENTS_SOLID | ((p->typeindex == pt_rain || p->typeindex == pt_snow) ? SUPERCONTENTS_LIQUIDSMASK : 0), 0, 0, collision_extendmovelength.value, true, false, &hitent, false, false);
					// if the trace started in or hit something of SUPERCONTENTS_NODROP
					// or if the trace hit something flagged as NOIMPACT
					// then remove the particle

Now offhand, bounce is off by default for most particles (in the engine).

But in practice, in a typical effectinfo.txt it looks TE_EXPLOSION, TE_GUNSHOT, TE_SPIKE seem have some of it with bounce


		effect TE_GUNSHOT
		underwater
		count 32
		type bubble
		tex 62 62
		color 0x404040 0x808080
		size 3 3
		alpha 128 256 64
		gravity -0.125
		bounce 1.5 // <-------------------------------------
		liquidfriction 0.25
		originjitter 16 16 16
		velocityjitter 96 96 96

I haven't yet done any testing to see how much this matters.

But when I saw this difference between 2014/2017 DarkPlaces and DarkPlaces Beta in cl_particles.c -- it did make me think.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions