From ddd3a28c7fc083285938415254962bc44d45cb60 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Tue, 27 Jun 2023 21:45:52 -0400 Subject: [PATCH 1/2] feat(examples): Add alpha hash example. --- examples/files.json | 1 + examples/webgl_materials_alphahash.html | 226 ++++++++++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 examples/webgl_materials_alphahash.html diff --git a/examples/files.json b/examples/files.json index 61f77bf47cbec5..f168e098946270 100644 --- a/examples/files.json +++ b/examples/files.json @@ -132,6 +132,7 @@ "webgl_loader_xyz", "webgl_lod", "webgl_marchingcubes", + "webgl_materials_alphahash", "webgl_materials_blending", "webgl_materials_blending_custom", "webgl_materials_bumpmap", diff --git a/examples/webgl_materials_alphahash.html b/examples/webgl_materials_alphahash.html new file mode 100644 index 00000000000000..771d5a41c72e2d --- /dev/null +++ b/examples/webgl_materials_alphahash.html @@ -0,0 +1,226 @@ + + + + three.js webgl - materials - alpha hash + + + + + + + + + + + + + + From 1290d55ee03c6c8e4e236073d4155852aa0355c3 Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Wed, 28 Jun 2023 10:27:30 +0200 Subject: [PATCH 2/2] Update screenshots. --- .../screenshots/webgl_materials_alphahash.jpg | Bin 0 -> 26689 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/screenshots/webgl_materials_alphahash.jpg diff --git a/examples/screenshots/webgl_materials_alphahash.jpg b/examples/screenshots/webgl_materials_alphahash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bbb42c52fba3a4c9b02a19ebb6fe56dd21b5a2f9 GIT binary patch literal 26689 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