diff --git a/src/graphics/rendering/settings/default-startup-settings.ts b/src/graphics/rendering/settings/default-startup-settings.ts index 311249b..42ffaa6 100644 --- a/src/graphics/rendering/settings/default-startup-settings.ts +++ b/src/graphics/rendering/settings/default-startup-settings.ts @@ -9,5 +9,6 @@ export const defaultStartupSettings: StartupSettings = { paletteSize: 256, ignoreWebGL2: false, backgroundColor: vec4.fromValues(1, 1, 1, 1), + lightPenetrationRatio: 0.75, enableStopwatch: false, }; diff --git a/src/graphics/rendering/settings/startup-settings.ts b/src/graphics/rendering/settings/startup-settings.ts index 31f6a4c..b5def2d 100644 --- a/src/graphics/rendering/settings/startup-settings.ts +++ b/src/graphics/rendering/settings/startup-settings.ts @@ -24,6 +24,14 @@ export interface StartupSettings { */ shadowTraceCount: number; + /** + * The illumination is multiplied by this constant where + * the distance field is negative (i.e. inside objects). + * + * Should be between 0 and 1, but other values are also permitted. + */ + lightPenetrationRatio: number; + /** * Gives the number of possible object colors for the scene. * diff --git a/src/graphics/rendering/shaders/shading-fs-100.glsl b/src/graphics/rendering/shaders/shading-fs-100.glsl index a277f40..34be6a7 100644 --- a/src/graphics/rendering/shaders/shading-fs-100.glsl +++ b/src/graphics/rendering/shaders/shading-fs-100.glsl @@ -2,7 +2,7 @@ precision lowp float; -#define INTENSITY_INSIDE_RATIO 0.5 +#define INTENSITY_INSIDE_RATIO {intensityInsideRatio} #define SHADOW_TRACE_COUNT {shadowTraceCount} {macroDefinitions} diff --git a/src/graphics/rendering/shaders/shading-fs.glsl b/src/graphics/rendering/shaders/shading-fs.glsl index 3567e28..27d5439 100644 --- a/src/graphics/rendering/shaders/shading-fs.glsl +++ b/src/graphics/rendering/shaders/shading-fs.glsl @@ -2,7 +2,7 @@ precision lowp float; -#define INTENSITY_INSIDE_RATIO 0.5 +#define INTENSITY_INSIDE_RATIO {intensityInsideRatio} #define SHADOW_TRACE_COUNT {shadowTraceCount} {macroDefinitions}