aboutsummaryrefslogtreecommitdiff
path: root/src/shader/code/stream.glsl
diff options
context:
space:
mode:
authorAdrian Kummerlaender2018-12-17 21:01:53 +0100
committerAdrian Kummerlaender2018-12-17 21:01:53 +0100
commit556f6cea377f6e8620d05081946f8b469b8a1339 (patch)
treece32382779d663224316b5f0ab67e270ba27ec77 /src/shader/code/stream.glsl
parentf465b26a8aeac95cf7e0186a86ab1262dc771fb4 (diff)
downloadcompustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar.gz
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar.bz2
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar.lz
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar.xz
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.tar.zst
compustream-556f6cea377f6e8620d05081946f8b469b8a1339.zip
Clean up stream and collide compute shaders
Diffstat (limited to 'src/shader/code/stream.glsl')
-rw-r--r--src/shader/code/stream.glsl7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shader/code/stream.glsl b/src/shader/code/stream.glsl
index 147b49b..982b207 100644
--- a/src/shader/code/stream.glsl
+++ b/src/shader/code/stream.glsl
@@ -6,11 +6,15 @@ layout (local_size_x = 1, local_size_y = 1) in;
layout (std430, binding=1) buffer bufferCollide{ float collideCells[]; };
layout (std430, binding=2) buffer bufferStream{ float streamCells[]; };
+/// LBM constants
+
uniform uint nX;
uniform uint nY;
const uint q = 9;
+/// Data access
+
float get(uint x, uint y, int i, int j) {
return collideCells[q*nX*y + q*x + (i+1)*3 + j+1];
}
@@ -19,6 +23,8 @@ void set(uint x, uint y, int i, int j, float v) {
streamCells[q*nX*y + q*x + (i+1)*3 + j+1] = v;
}
+/// Actual stream kernel
+
void main() {
const uint x = gl_GlobalInvocationID.x;
const uint y = gl_GlobalInvocationID.y;
@@ -30,6 +36,7 @@ void main() {
}
}
} else {
+ // rudimentary bounce back boundary handling
for ( int i = -1; i <= 1; ++i ) {
for ( int j = -1; j <= 1; ++j ) {
if ( (x > 0 || i >= 0) && x+i <= nX-1 && (y > 0 || j >= 0) && y+j <= nY-1 ) {