From e241101b5f88102ce31ce87ed5f3d8ea2fbad057 Mon Sep 17 00:00:00 2001 From: Bruno Simon Date: Wed, 24 Jul 2024 20:19:46 +0100 Subject: [PATCH] Examples: Add galaxy (#28955) * Examples: Add galaxy * update screenshot * Examples: Rename TSL Galaxy and use THREE core materials * Examples: TSL Galaxy fix screenshot * update screenshot * Examples: TSL Galaxy fix pow on negative --------- --- examples/files.json | 1 + examples/screenshots/webgpu_tsl_galaxy.jpg | Bin 0 -> 31109 bytes examples/webgpu_tsl_galaxy.html | 159 +++++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 examples/screenshots/webgpu_tsl_galaxy.jpg create mode 100644 examples/webgpu_tsl_galaxy.html diff --git a/examples/files.json b/examples/files.json index ebc77bbc271a6f..b1d6e6be51d6bc 100644 --- a/examples/files.json +++ b/examples/files.json @@ -401,6 +401,7 @@ "webgpu_textures_anisotropy", "webgpu_textures_partialupdate", "webgpu_tsl_editor", + "webgpu_tsl_galaxy", "webgpu_tsl_transpiler", "webgpu_video_panorama", "webgpu_volume_cloud", diff --git a/examples/screenshots/webgpu_tsl_galaxy.jpg b/examples/screenshots/webgpu_tsl_galaxy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f26affeeb2ce6a811d9fc0ae367f5a1d52d1253d GIT binary patch literal 31109 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 VO_99(ABXh699jQMACUc<{2w*K + + + three.js webgpu - galaxy + + + + + + +
+ three.js webgpu - galaxy +
+ Based on Three.js Journey lessons +
+ + + + + +