From b54c591aaa5171c19df91aed6e53cd4315f4e470 Mon Sep 17 00:00:00 2001 From: Mathis Date: Wed, 17 Sep 2025 13:52:31 +0200 Subject: [PATCH 1/2] First commit --- examples/files.json | 1 + .../webgpu_compute_texture_fluid.jpg | Bin 0 -> 19662 bytes examples/tags.json | 1 + examples/webgpu_compute_texture_fluid.html | 601 ++++++++++++++++++ 4 files changed, 603 insertions(+) create mode 100644 examples/screenshots/webgpu_compute_texture_fluid.jpg create mode 100644 examples/webgpu_compute_texture_fluid.html diff --git a/examples/files.json b/examples/files.json index 367fe7fa194501..e14f9ceb1b389f 100644 --- a/examples/files.json +++ b/examples/files.json @@ -319,6 +319,7 @@ "webgpu_compute_sort_bitonic", "webgpu_compute_texture", "webgpu_compute_texture_3d", + "webgpu_compute_texture_fluid", "webgpu_compute_texture_pingpong", "webgpu_compute_water", "webgpu_cubemap_adjustments", diff --git a/examples/screenshots/webgpu_compute_texture_fluid.jpg b/examples/screenshots/webgpu_compute_texture_fluid.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5eee10b0bb43ddb8748dbe9497a1f5c4bdf267bd GIT binary patch literal 19662 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 + + three.js - WebGPU - Compute Ping/Pong Textures Fluid simulation + + + + + + +
+ three.js WebGPU - Compute Ping/Pong Textures Fluid simulation +
Based on shaders by Pavel Dobryakov and OGL Fluid Distortion example +
+ + + + + + \ No newline at end of file From 61a98b8b2c54a03d8f249fffd63cce3c14c3e93a Mon Sep 17 00:00:00 2001 From: Mathis Date: Fri, 19 Sep 2025 11:21:55 +0200 Subject: [PATCH 2/2] unit tests --- examples/webgpu_compute_texture_fluid.html | 9 ++++----- test/e2e/puppeteer.js | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/webgpu_compute_texture_fluid.html b/examples/webgpu_compute_texture_fluid.html index b900548c74f2ab..2430d8337a6a35 100644 --- a/examples/webgpu_compute_texture_fluid.html +++ b/examples/webgpu_compute_texture_fluid.html @@ -1,6 +1,6 @@ - three.js - WebGPU - Compute Ping/Pong Textures Fluid simulation + three.js - WebGPU - Compute Ping/Pong Textures Fluid simulation with TSL @@ -8,8 +8,9 @@
- three.js WebGPU - Compute Ping/Pong Textures Fluid simulation + three.js WebGPU - Compute Ping/Pong Textures Fluid simulation with TSL
Based on shaders by Pavel Dobryakov and OGL Fluid Distortion example +
By Mathis Biabiany