From f08729a402193dec5ebf49a6dee16af26ab48b45 Mon Sep 17 00:00:00 2001
From: Alexander Rose <alexander.rose@weirdbyte.de>
Date: Sat, 25 Mar 2023 23:57:18 -0700
Subject: [PATCH] apply bumpiness as lightness with ignoreLight

---
 CHANGELOG.md                                       | 1 +
 src/mol-gl/shader/chunks/apply-light-color.glsl.ts | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f581a838..12c6a5a28 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ Note that since we don't clearly distinguish between a public and private interf
     - Move or fly around the scene using keys
     - Pointer lock to look around scene
     - Toggle spin/rock animation using keys
+- Apply bumpiness as lightness variation with `ignoreLight`
 
 ## [v3.32.0] - 2023-03-20
 
diff --git a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts
index d4f2dc1f4..4f316d2b0 100644
--- a/src/mol-gl/shader/chunks/apply-light-color.glsl.ts
+++ b/src/mol-gl/shader/chunks/apply-light-color.glsl.ts
@@ -9,6 +9,13 @@
 
 export const apply_light_color = `
 #ifdef dIgnoreLight
+    #ifdef bumpEnabled
+        if (uBumpFrequency > 0.0 && uBumpAmplitude > 0.0 && bumpiness > 0.0) {
+            material.rgb += fbm(vModelPosition * uBumpFrequency) * (uBumpAmplitude * bumpiness) / uBumpFrequency;
+            material.rgb -= bumpiness / (2.0 * uBumpFrequency);
+        }
+    #endif
+
     gl_FragColor = material;
 #else
     #ifdef bumpEnabled
-- 
GitLab