diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f581a838c154e7cac9f6ced2e9c813faae51d2b..12c6a5a28055c0878ea411f861f39e497e429d64 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 d4f2dc1f432299f85475af8cd791dd33336c161f..4f316d2b0a16edf18bd60093219345c8f2a588b0 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