group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
ParticleTypes.hpp
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <glm/glm.hpp>
9
11enum class ExplosionVfxKind : uint32_t
12{
17};
18
21{
22 glm::vec3 pos;
23 float size;
24 glm::vec4 color;
25 glm::vec3 vel;
26 float lifetime;
27};
28static_assert(sizeof(BillboardParticle) == 48);
29
32{
33 glm::vec3 tip;
34 float radius;
35 glm::vec3 tail;
36 float brightness;
37 glm::vec4 coreColor;
38 glm::vec4 edgeColor;
39 float lifetime;
40 float _pad[3];
41};
42static_assert(sizeof(TracerParticle) == 80);
43
46{
47 glm::vec3 pos;
48 float _p;
49 glm::vec4 color;
50};
51static_assert(sizeof(RibbonVertex) == 32);
52
55{
56 glm::vec3 origin;
57 float radius;
58 glm::vec3 hitPos;
59 float lifetime;
60 glm::vec4 coreColor;
61 glm::vec4 edgeColor;
62};
63static_assert(sizeof(HitscanBeam) == 64);
64
67{
68 glm::vec3 pos;
69 float edge;
70 glm::vec4 color;
71};
72static_assert(sizeof(ArcVertex) == 32);
73
76{
77 glm::vec3 pos;
78 float size;
79 glm::vec4 color;
80 float rotation;
83 float kind;
84};
85static_assert(sizeof(SmokeParticle) == 48);
86
91{
92 glm::vec3 pos;
93 float size;
94 glm::vec3 vel;
95 float rotation;
96 glm::vec4 color;
97 glm::vec4 age;
98 glm::vec4 anim;
99 glm::vec4 shape;
100};
101static_assert(sizeof(VfxSpriteParticle) == 96);
102
107{
108 glm::vec3 pos;
109 float size;
110 glm::vec3 vel;
111 float stretch;
112 glm::vec4 color;
113 glm::vec4 sim;
114};
115static_assert(sizeof(VfxDebrisParticle) == 64);
116
119{
120 glm::vec3 pos;
121 float size;
122 glm::vec3 right;
123 float _p0;
124 glm::vec3 up;
125 float opacity;
126 glm::vec2 uvMin;
127 glm::vec2 uvMax;
128};
129static_assert(sizeof(DecalInstance) == 64);
130
133{
134 glm::vec3 worldPos;
135 float size;
136 glm::vec2 uvMin;
137 glm::vec2 uvMax;
138 glm::vec4 color;
139 glm::vec3 right;
140 float _p0;
141 glm::vec3 up;
142 float _p1;
143};
144static_assert(sizeof(SdfGlyphGPU) == 80);
ExplosionVfxKind
Distinct explosion VFX profiles authored by weapon family.
Definition ParticleTypes.hpp:12
@ Rocket
Definition ParticleTypes.hpp:13
@ Frag
Definition ParticleTypes.hpp:14
@ Sticky
Definition ParticleTypes.hpp:15
@ Molotov
Definition ParticleTypes.hpp:16
Lightning arc vertex (pre-expanded triangle strip, uploaded as flat stream).
Definition ParticleTypes.hpp:67
float edge
0 = centerline, ±1 = outer edge (drives glow falloff).
Definition ParticleTypes.hpp:69
glm::vec3 pos
Definition ParticleTypes.hpp:68
glm::vec4 color
Definition ParticleTypes.hpp:70
Single billboard particle (sparks, impact flash, shockwave ring).
Definition ParticleTypes.hpp:21
glm::vec3 vel
CPU-simulated velocity (gravity applied per frame).
Definition ParticleTypes.hpp:25
float lifetime
Seconds remaining (particle dies when <= 0).
Definition ParticleTypes.hpp:26
glm::vec4 color
RGBA; alpha used by additive blend for brightness.
Definition ParticleTypes.hpp:24
float size
Half-extent of the camera-facing quad.
Definition ParticleTypes.hpp:23
glm::vec3 pos
Definition ParticleTypes.hpp:22
World-space decal instance (bullet hole, scorch mark).
Definition ParticleTypes.hpp:119
float _p0
Definition ParticleTypes.hpp:123
glm::vec2 uvMax
Atlas UV max.
Definition ParticleTypes.hpp:127
glm::vec3 up
World-space bitangent.
Definition ParticleTypes.hpp:124
float opacity
Fades 1.0→0.0 over ~15 s.
Definition ParticleTypes.hpp:125
glm::vec2 uvMin
Atlas UV min.
Definition ParticleTypes.hpp:126
glm::vec3 right
World-space tangent (derived from hit normal).
Definition ParticleTypes.hpp:122
float size
Half-extent in world units (~4).
Definition ParticleTypes.hpp:121
glm::vec3 pos
World-space centre.
Definition ParticleTypes.hpp:120
Hitscan energy beam (main glowing quad).
Definition ParticleTypes.hpp:55
float radius
Half-width (~1.5 units).
Definition ParticleTypes.hpp:57
glm::vec3 origin
Muzzle world position.
Definition ParticleTypes.hpp:56
glm::vec3 hitPos
Impact world position.
Definition ParticleTypes.hpp:58
glm::vec4 coreColor
Cyan-white: {0.5, 0.9, 1.0, 1.0}.
Definition ParticleTypes.hpp:60
float lifetime
Fades quadratically over ~0.12 s.
Definition ParticleTypes.hpp:59
glm::vec4 edgeColor
Deep blue: {0.0, 0.3, 0.8, 0.0}.
Definition ParticleTypes.hpp:61
Ribbon vertex (pre-expanded on CPU, uploaded as flat vertex stream).
Definition ParticleTypes.hpp:46
float _p
Definition ParticleTypes.hpp:48
glm::vec4 color
Pre-multiplied alpha.
Definition ParticleTypes.hpp:49
glm::vec3 pos
Definition ParticleTypes.hpp:47
SDF glyph quad (world-space or screen-space HUD).
Definition ParticleTypes.hpp:133
float _p1
Definition ParticleTypes.hpp:142
glm::vec3 right
World-space right (camRight for world, {1,0,0} for HUD).
Definition ParticleTypes.hpp:139
float _p0
Definition ParticleTypes.hpp:140
glm::vec3 worldPos
Bottom-left corner (world or pixel space).
Definition ParticleTypes.hpp:134
glm::vec2 uvMin
Definition ParticleTypes.hpp:136
glm::vec3 up
World-space up (camUp for world, {0,1,0} for HUD).
Definition ParticleTypes.hpp:141
glm::vec2 uvMax
Definition ParticleTypes.hpp:137
glm::vec4 color
Definition ParticleTypes.hpp:138
float size
Glyph height in world units / pixels.
Definition ParticleTypes.hpp:135
Smoke / fire billboard (uses noise texture for volumetric look).
Definition ParticleTypes.hpp:76
glm::vec4 color
Pre-multiplied alpha; fades 0→0.35→0.
Definition ParticleTypes.hpp:79
float size
Grows from 30 → 120 units over lifetime.
Definition ParticleTypes.hpp:78
float rotation
Slow random spin (0.1–0.3 rad/s).
Definition ParticleTypes.hpp:80
float normalizedAge
0 (just spawned) → 1 (about to die).
Definition ParticleTypes.hpp:81
glm::vec3 pos
Definition ParticleTypes.hpp:77
float kind
CPU-side only: 0 = smoke, 1 = fire; shader ignores it.
Definition ParticleTypes.hpp:83
float maxLifetime
3–5 s.
Definition ParticleTypes.hpp:82
Oriented capsule streak for fast-bullet tracers (R301 style).
Definition ParticleTypes.hpp:32
float lifetime
Definition ParticleTypes.hpp:39
glm::vec3 tip
World-space front of streak (current bullet pos).
Definition ParticleTypes.hpp:33
float brightness
1.0→0.0 fade at end of life.
Definition ParticleTypes.hpp:36
float _pad[3]
Definition ParticleTypes.hpp:40
glm::vec4 edgeColor
Orange, alpha=0 at edge.
Definition ParticleTypes.hpp:38
float radius
Cross-section half-width (~0.6 units).
Definition ParticleTypes.hpp:34
glm::vec4 coreColor
Bright yellow-white.
Definition ParticleTypes.hpp:37
glm::vec3 tail
World-space back (tip - normalize(vel) * streakLen).
Definition ParticleTypes.hpp:35
Tiny shard/spark particle used by explosion debris and embers.
Definition ParticleTypes.hpp:107
glm::vec3 pos
Definition ParticleTypes.hpp:108
float stretch
Definition ParticleTypes.hpp:111
glm::vec3 vel
Definition ParticleTypes.hpp:110
glm::vec4 sim
x=age, y=maxLifetime, z=gravity, w=drag.
Definition ParticleTypes.hpp:113
glm::vec4 color
Definition ParticleTypes.hpp:112
float size
Definition ParticleTypes.hpp:109
Animated textured sprite used by the fresh explosion VFX path.
Definition ParticleTypes.hpp:91
glm::vec4 age
x=age, y=maxLifetime, z=growthRate, w=spinRate.
Definition ParticleTypes.hpp:97
glm::vec4 shape
x=stretch, y=seed, z=softness, w=priority.
Definition ParticleTypes.hpp:99
float rotation
Definition ParticleTypes.hpp:95
glm::vec3 pos
Definition ParticleTypes.hpp:92
glm::vec4 color
Definition ParticleTypes.hpp:96
glm::vec3 vel
Definition ParticleTypes.hpp:94
float size
Definition ParticleTypes.hpp:93
glm::vec4 anim
x=startFrame, y=frameCount, z=fps, w=material mode.
Definition ParticleTypes.hpp:98