Add noise grain option to viewport preferences

This commit is contained in:
luboslenco
2023-08-07 10:42:53 +02:00
parent c021e88e52
commit 9b8ea6a04a
6 changed files with 11 additions and 1 deletions
Binary file not shown.
+2 -1
View File
@@ -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);
+1
View File
@@ -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;
+1
View File
@@ -24,6 +24,7 @@ package arm;
@:optional public var rp_motionblur: Null<Bool>;
@:optional public var rp_gi: Null<Bool>;
@:optional public var rp_vignette: Null<Float>;
@:optional public var rp_grain: Null<Float>;
// Application
@:optional public var version: String;
@:optional public var sha: String; // Commit id
+3
View File
@@ -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;
}
+4
View File
@@ -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;