From 044f84c7695ae2d94f5040da13b9adc813943fc8 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Mon, 19 Oct 2020 11:43:40 +0200 Subject: [PATCH] Add lightPenetrationRatio option --- .../rendering/settings/default-startup-settings.ts | 1 + src/graphics/rendering/settings/startup-settings.ts | 8 ++++++++ src/graphics/rendering/shaders/shading-fs-100.glsl | 2 +- src/graphics/rendering/shaders/shading-fs.glsl | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) 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}