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
12{
13 glm::vec3 pos;
14 float size;
15 glm::vec4 color;
16 glm::vec3 vel;
17 float lifetime;
18};
19static_assert(sizeof(BillboardParticle) == 48);
20
23{
24 glm::vec3 tip;
25 float radius;
26 glm::vec3 tail;
27 float brightness;
28 glm::vec4 coreColor;
29 glm::vec4 edgeColor;
30 float lifetime;
31 float _pad[3];
32};
33static_assert(sizeof(TracerParticle) == 80);
34
37{
38 glm::vec3 pos;
39 float _p;
40 glm::vec4 color;
41};
42static_assert(sizeof(RibbonVertex) == 32);
43
46{
47 glm::vec3 origin;
48 float radius;
49 glm::vec3 hitPos;
50 float lifetime;
51 glm::vec4 coreColor;
52 glm::vec4 edgeColor;
53};
54static_assert(sizeof(HitscanBeam) == 64);
55
58{
59 glm::vec3 pos;
60 float edge;
61 glm::vec4 color;
62};
63static_assert(sizeof(ArcVertex) == 32);
64
67{
68 glm::vec3 pos;
69 float size;
70 glm::vec4 color;
71 float rotation;
74 float _pad;
75};
76static_assert(sizeof(SmokeParticle) == 48);
77
80{
81 glm::vec3 pos;
82 float size;
83 glm::vec3 right;
84 float _p0;
85 glm::vec3 up;
86 float opacity;
87 glm::vec2 uvMin;
88 glm::vec2 uvMax;
89};
90static_assert(sizeof(DecalInstance) == 64);
91
94{
95 glm::vec3 worldPos;
96 float size;
97 glm::vec2 uvMin;
98 glm::vec2 uvMax;
99 glm::vec4 color;
100 glm::vec3 right;
101 float _p0;
102 glm::vec3 up;
103 float _p1;
104};
105static_assert(sizeof(SdfGlyphGPU) == 80);
Lightning arc vertex (pre-expanded triangle strip, uploaded as flat stream).
Definition ParticleTypes.hpp:58
float edge
0 = centerline, ±1 = outer edge (drives glow falloff).
Definition ParticleTypes.hpp:60
glm::vec3 pos
Definition ParticleTypes.hpp:59
glm::vec4 color
Definition ParticleTypes.hpp:61
Single billboard particle (sparks, impact flash, shockwave ring).
Definition ParticleTypes.hpp:12
glm::vec3 vel
CPU-simulated velocity (gravity applied per frame).
Definition ParticleTypes.hpp:16
float lifetime
Seconds remaining (particle dies when <= 0).
Definition ParticleTypes.hpp:17
glm::vec4 color
RGBA; alpha used by additive blend for brightness.
Definition ParticleTypes.hpp:15
float size
Half-extent of the camera-facing quad.
Definition ParticleTypes.hpp:14
glm::vec3 pos
Definition ParticleTypes.hpp:13
World-space decal instance (bullet hole, scorch mark).
Definition ParticleTypes.hpp:80
float _p0
Definition ParticleTypes.hpp:84
glm::vec2 uvMax
Atlas UV max.
Definition ParticleTypes.hpp:88
glm::vec3 up
World-space bitangent.
Definition ParticleTypes.hpp:85
float opacity
Fades 1.0→0.0 over ~15 s.
Definition ParticleTypes.hpp:86
glm::vec2 uvMin
Atlas UV min.
Definition ParticleTypes.hpp:87
glm::vec3 right
World-space tangent (derived from hit normal).
Definition ParticleTypes.hpp:83
float size
Half-extent in world units (~4).
Definition ParticleTypes.hpp:82
glm::vec3 pos
World-space centre.
Definition ParticleTypes.hpp:81
Hitscan energy beam (main glowing quad).
Definition ParticleTypes.hpp:46
float radius
Half-width (~1.5 units).
Definition ParticleTypes.hpp:48
glm::vec3 origin
Muzzle world position.
Definition ParticleTypes.hpp:47
glm::vec3 hitPos
Impact world position.
Definition ParticleTypes.hpp:49
glm::vec4 coreColor
Cyan-white: {0.5, 0.9, 1.0, 1.0}.
Definition ParticleTypes.hpp:51
float lifetime
Fades quadratically over ~0.12 s.
Definition ParticleTypes.hpp:50
glm::vec4 edgeColor
Deep blue: {0.0, 0.3, 0.8, 0.0}.
Definition ParticleTypes.hpp:52
Ribbon vertex (pre-expanded on CPU, uploaded as flat vertex stream).
Definition ParticleTypes.hpp:37
float _p
Definition ParticleTypes.hpp:39
glm::vec4 color
Pre-multiplied alpha.
Definition ParticleTypes.hpp:40
glm::vec3 pos
Definition ParticleTypes.hpp:38
SDF glyph quad (world-space or screen-space HUD).
Definition ParticleTypes.hpp:94
float _p1
Definition ParticleTypes.hpp:103
glm::vec3 right
World-space right (camRight for world, {1,0,0} for HUD).
Definition ParticleTypes.hpp:100
float _p0
Definition ParticleTypes.hpp:101
glm::vec3 worldPos
Bottom-left corner (world or pixel space).
Definition ParticleTypes.hpp:95
glm::vec2 uvMin
Definition ParticleTypes.hpp:97
glm::vec3 up
World-space up (camUp for world, {0,1,0} for HUD).
Definition ParticleTypes.hpp:102
glm::vec2 uvMax
Definition ParticleTypes.hpp:98
glm::vec4 color
Definition ParticleTypes.hpp:99
float size
Glyph height in world units / pixels.
Definition ParticleTypes.hpp:96
Smoke / fire billboard (uses noise texture for volumetric look).
Definition ParticleTypes.hpp:67
glm::vec4 color
Pre-multiplied alpha; fades 0→0.35→0.
Definition ParticleTypes.hpp:70
float size
Grows from 30 → 120 units over lifetime.
Definition ParticleTypes.hpp:69
float rotation
Slow random spin (0.1–0.3 rad/s).
Definition ParticleTypes.hpp:71
float normalizedAge
0 (just spawned) → 1 (about to die).
Definition ParticleTypes.hpp:72
glm::vec3 pos
Definition ParticleTypes.hpp:68
float maxLifetime
3–5 s.
Definition ParticleTypes.hpp:73
float _pad
Definition ParticleTypes.hpp:74
Oriented capsule streak for fast-bullet tracers (R301 style).
Definition ParticleTypes.hpp:23
float lifetime
Definition ParticleTypes.hpp:30
glm::vec3 tip
World-space front of streak (current bullet pos).
Definition ParticleTypes.hpp:24
float brightness
1.0→0.0 fade at end of life.
Definition ParticleTypes.hpp:27
float _pad[3]
Definition ParticleTypes.hpp:31
glm::vec4 edgeColor
Orange, alpha=0 at edge.
Definition ParticleTypes.hpp:29
float radius
Cross-section half-width (~0.6 units).
Definition ParticleTypes.hpp:25
glm::vec4 coreColor
Bright yellow-white.
Definition ParticleTypes.hpp:28
glm::vec3 tail
World-space back (tip - normalize(vel) * streakLen).
Definition ParticleTypes.hpp:26