Skip to content

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

@Baker7

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions