Merge branch 'main' of community.rokojori.com:Rokojori/rj-action-library
This commit is contained in:
commit
861ffd1a6d
|
@ -17,6 +17,8 @@ uniform Params
|
|||
float luma;
|
||||
float minBrightness;
|
||||
float saturate;
|
||||
float blur;
|
||||
float blurRange;
|
||||
|
||||
} params;
|
||||
|
||||
|
@ -27,13 +29,25 @@ void main()
|
|||
vec4 currentPixel = imageLoad( currentImage, currentPosition );
|
||||
vec4 lastPixel = imageLoad( lastProcessedImage, currentPosition );
|
||||
|
||||
int blurOffset = int( params.blurRange );
|
||||
vec4 top = imageLoad( lastProcessedImage, currentPosition + ivec2( 0, -blurOffset ) );
|
||||
vec4 left = imageLoad( lastProcessedImage, currentPosition + ivec2( -blurOffset, 0 ) );
|
||||
vec4 bottom = imageLoad( lastProcessedImage, currentPosition + ivec2( 0, blurOffset ) );
|
||||
vec4 right = imageLoad( lastProcessedImage, currentPosition + ivec2( blurOffset, 0 ) );
|
||||
|
||||
vec4 blurred = ( top + left + bottom + right ) / 4.0;
|
||||
|
||||
vec4 blurredLastPixel = mix( lastPixel, blurred, params.blur );
|
||||
|
||||
float luminance = min( 1.0, length( vec3( lastPixel.r, lastPixel.g, lastPixel.b ) ) );
|
||||
float amount = ( luminance - params.minBrightness ) / ( 1.0 - params.minBrightness );
|
||||
amount = min( max( 0.0, amount * params.saturate ), 1.0 ) * params.smearing;
|
||||
amount = mix( 1.0, amount, params.luma );
|
||||
|
||||
vec4 nextPixel = currentPixel + min( 1.0, amount * params.smearing ) * ( lastPixel - currentPixel );
|
||||
vec4 nextPixelBlurred = currentPixel + min( 1.0, amount * params.smearing ) * ( blurredLastPixel - currentPixel );
|
||||
|
||||
|
||||
imageStore( currentImage, currentPosition, mix( currentPixel, nextPixel, params.amount ) );
|
||||
imageStore( currentImage, currentPosition, mix( currentPixel, nextPixelBlurred, params.amount ) );
|
||||
imageStore( lastProcessedImage, currentPosition, nextPixel );
|
||||
}
|
||||
|
|
|
@ -27,6 +27,11 @@ namespace Rokojori
|
|||
[Export( PropertyHint.Range, "0.5,5")]
|
||||
public float lumaSaturate = 1.3f;
|
||||
|
||||
[Export( PropertyHint.Range, "0,1")]
|
||||
public float blur = 0.5f;
|
||||
|
||||
[Export( PropertyHint.Range, "1,30")]
|
||||
public float blurRange = 2f;
|
||||
|
||||
protected override void OnConfigure()
|
||||
{
|
||||
|
@ -43,7 +48,9 @@ namespace Rokojori
|
|||
1.0f - FrameSmoothing.ComputeCoefficient( 1f/60f, smearingFrames ),
|
||||
lumaAmount,
|
||||
lumaTreshold,
|
||||
lumaSaturate
|
||||
lumaSaturate,
|
||||
blur,
|
||||
blurRange
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://c7og674edrsy2"]
|
||||
|
||||
[ext_resource type="Shader" path="res://addons/rokojori_action_library/Runtime/Shading/Shaders/Billboards/QuadBillboard/QuadBillboard.gdshader" id="1_yfe48"]
|
||||
[ext_resource type="Shader" uid="uid://bmyf1o4fx8en2" path="res://addons/rokojori_action_library/Runtime/Shading/Shaders/Billboards/QuadBillboard/QuadBillboard.gdshader" id="1_yfe48"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_cxr4k"]
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1)
|
||||
|
@ -17,11 +17,14 @@ noise = SubResource("FastNoiseLite_vt5xb")
|
|||
render_priority = 0
|
||||
shader = ExtResource("1_yfe48")
|
||||
shader_parameter/size = 0.3
|
||||
shader_parameter/sizeMin = 1.0
|
||||
shader_parameter/sizeMax = 1.0
|
||||
shader_parameter/randomPosition = 0.0
|
||||
shader_parameter/albedo = Color(1, 1, 1, 1)
|
||||
shader_parameter/rotation = 3.22
|
||||
shader_parameter/rotationNoiseAmount = 2.445
|
||||
shader_parameter/rotationNoiseScale = 0.95
|
||||
shader_parameter/texture_albedo = SubResource("NoiseTexture2D_ew55x")
|
||||
shader_parameter/normalBlendAmount = 0.548
|
||||
shader_parameter/normalBlendDirection = Vector3(0, 1, 0)
|
||||
shader_parameter/roughness = 1.0
|
||||
|
@ -29,17 +32,17 @@ shader_parameter/metalness = 1.0
|
|||
shader_parameter/specular = 1.0
|
||||
shader_parameter/alpha_scissor_threshold = 0.176
|
||||
shader_parameter/alpha_antialiasing_edge = 0.09
|
||||
shader_parameter/albedo_texture_size = null
|
||||
shader_parameter/ao_texture_channel = null
|
||||
shader_parameter/albedo_texture_size = Vector2i(0, 0)
|
||||
shader_parameter/ao_texture_channel = Vector4(0, 0, 0, 0)
|
||||
shader_parameter/ao_light_affect = 0.62
|
||||
shader_parameter/yMapStart = null
|
||||
shader_parameter/yMapEnd = null
|
||||
shader_parameter/yMapNoiseAmount = null
|
||||
shader_parameter/yMapNoiseScale = null
|
||||
shader_parameter/yMapStart = 0.0
|
||||
shader_parameter/yMapEnd = 0.0
|
||||
shader_parameter/yMapNoiseAmount = 0.0
|
||||
shader_parameter/yMapNoiseScale = 0.0
|
||||
shader_parameter/discardNoiseScale = 1.0
|
||||
shader_parameter/discardThreshold = 1.0
|
||||
shader_parameter/fresnelNormalSource = 0.5
|
||||
shader_parameter/fresnelColor = null
|
||||
shader_parameter/fresnelColor = Color(0, 0, 0, 1)
|
||||
shader_parameter/fresnelSharpness = 1.0
|
||||
shader_parameter/fresnelScale = 1.0
|
||||
shader_parameter/windAmount = 1.0
|
||||
|
@ -47,4 +50,3 @@ shader_parameter/windSpeed = Vector2(0.1, 0.1)
|
|||
shader_parameter/windNoiseScale = 1.0
|
||||
shader_parameter/windStart = 0.0
|
||||
shader_parameter/windEnd = 1.0
|
||||
shader_parameter/texture_albedo = SubResource("NoiseTexture2D_ew55x")
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue