-
Notifications
You must be signed in to change notification settings - Fork 0
/
glcommon.comp
51 lines (49 loc) · 888 Bytes
/
glcommon.comp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#define Q 4
#define N0 (Q * Q)
#define G0 Q
#define N1 512
#define G1 32
#define N (N0 * N1)
#define G (G0 * G1)
#ifndef _HOST
#define dx (1.0 / G)
#if Q <= 4
#define dt 2e-4
#elif Q <= 8
#define dt 1e-4
#else
#define dt 4e-5
#endif
#define p_rho 1.0
#define p_vol sqr(dx * 0.5)
#define p_mass (p_vol * p_rho)
#define E 400.0
#define bound 3
#define gravity 9.8
layout (std430, binding = 0) buffer b0 {
vec2 x[];
};
layout (std430, binding = 1) buffer b1 {
vec2 v[];
};
layout (std430, binding = 2) buffer b2 {
mat2 C[];
};
layout (std430, binding = 3) buffer b3 {
float J[];
};
layout (std430, binding = 4) buffer b4 {
vec2 grid_v[];
};
layout (std430, binding = 5) buffer b5 {
float grid_m[];
};
#ifndef GL_NV_shader_atomic_float
layout (std430, binding = 4) buffer b4i {
ivec2 grid_v_i[];
};
layout (std430, binding = 5) buffer b5i {
int grid_m_i[];
};
#endif
#endif