From 9b8ea6a04ad30933a77e2970fcde266905ab8f8c Mon Sep 17 00:00:00 2001 From: luboslenco Date: Mon, 7 Aug 2023 10:42:53 +0200 Subject: [PATCH] Add noise grain option to viewport preferences --- base/Assets/shader_datas.arm | Bin 17175 -> 17254 bytes base/Shaders/compositor_pass.frag.glsl | 3 ++- base/Sources/arm/Config.hx | 1 + base/Sources/arm/ConfigFormat.hx | 1 + base/Sources/arm/render/Uniforms.hx | 3 +++ base/Sources/arm/ui/BoxPreferences.hx | 4 ++++ 6 files changed, 11 insertions(+), 1 deletion(-) diff --git a/base/Assets/shader_datas.arm b/base/Assets/shader_datas.arm index 9a26767cfee00aaa90a0ba784a698f8bfd086f7e..766fa113125660903b09f52b82a8d557ece47b2e 100644 GIT binary patch delta 65 zcmbQ<#`vs_aYDmneiq@$|MZ0?E;F9|USCO-mw|yHy(lp=FSw*AH7~s+<2DOWBquX3 Q`!*kt5f7Hzc+t%X00Wa2=Kufz delta 24 gcmaFX#yGu=aYDo72~5J1eGP;sE;HV&!D#0M0D0>Oy#N3J diff --git a/base/Shaders/compositor_pass.frag.glsl b/base/Shaders/compositor_pass.frag.glsl index 3e450d2b..b9adfe5b 100644 --- a/base/Shaders/compositor_pass.frag.glsl +++ b/base/Shaders/compositor_pass.frag.glsl @@ -3,6 +3,7 @@ uniform sampler2D tex; // uniform sampler2D histogram; uniform float vignetteStrength; +uniform float grainStrength; in vec2 texCoord; out vec4 fragColor; @@ -18,7 +19,7 @@ void main() { // Static grain float x = (texCoord.x + 4.0) * (texCoord.y + 4.0) * 10.0; - fragColor.rgb += vec3(mod((mod(x, 13.0) + 1.0) * (mod(x, 123.0) + 1.0), 0.01) - 0.005) * 0.09; + fragColor.rgb += vec3(mod((mod(x, 13.0) + 1.0) * (mod(x, 123.0) + 1.0), 0.01) - 0.005) * grainStrength; fragColor.rgb *= (1.0 - vignetteStrength) + vignetteStrength * pow(16.0 * texCoord.x * texCoord.y * (1.0 - texCoord.x) * (1.0 - texCoord.y), 0.2); diff --git a/base/Sources/arm/Config.hx b/base/Sources/arm/Config.hx index 28ea17fe..badb3dff 100644 --- a/base/Sources/arm/Config.hx +++ b/base/Sources/arm/Config.hx @@ -92,6 +92,7 @@ class Config { raw.rp_bloom = false; raw.rp_gi = false; raw.rp_vignette = 0.2; + raw.rp_grain = 0.09; raw.rp_motionblur = false; #if (krom_android || krom_ios) raw.rp_ssao = false; diff --git a/base/Sources/arm/ConfigFormat.hx b/base/Sources/arm/ConfigFormat.hx index 6c8f7dc9..7c214d14 100644 --- a/base/Sources/arm/ConfigFormat.hx +++ b/base/Sources/arm/ConfigFormat.hx @@ -24,6 +24,7 @@ package arm; @:optional public var rp_motionblur: Null; @:optional public var rp_gi: Null; @:optional public var rp_vignette: Null; + @:optional public var rp_grain: Null; // Application @:optional public var version: String; @:optional public var sha: String; // Commit id diff --git a/base/Sources/arm/render/Uniforms.hx b/base/Sources/arm/render/Uniforms.hx index 3fca7f1b..0038dfd3 100644 --- a/base/Sources/arm/render/Uniforms.hx +++ b/base/Sources/arm/render/Uniforms.hx @@ -75,6 +75,9 @@ class Uniforms { case "_vignetteStrength": { return Config.raw.rp_vignette; } + case "_grainStrength": { + return Config.raw.rp_grain; + } case "_coneOffset": { return Context.raw.vxaoOffset; } diff --git a/base/Sources/arm/ui/BoxPreferences.hx b/base/Sources/arm/ui/BoxPreferences.hx index dc31f56a..73a876b9 100644 --- a/base/Sources/arm/ui/BoxPreferences.hx +++ b/base/Sources/arm/ui/BoxPreferences.hx @@ -469,6 +469,10 @@ class BoxPreferences { Config.raw.rp_vignette = ui.slider(h, tr("Vignette"), 0.0, 1.0, true); if (h.changed) Context.raw.ddirty = 2; + var h = Id.handle({ value: Config.raw.rp_grain }); + Config.raw.rp_grain = ui.slider(h, tr("Noise Grain"), 0.0, 1.0, true); + if (h.changed) Context.raw.ddirty = 2; + // var h = Id.handle({ value: Context.raw.autoExposureStrength }); // Context.raw.autoExposureStrength = ui.slider(h, "Auto Exposure", 0.0, 2.0, true); // if (h.changed) Context.raw.ddirty = 2;