diff --git a/Assets/Material/CRTBlit.mat b/Assets/Material/CRTBlit.mat index 7e59da5..d0b02ec 100644 --- a/Assets/Material/CRTBlit.mat +++ b/Assets/Material/CRTBlit.mat @@ -117,21 +117,26 @@ Material: - _Surface: 0 - _WorkflowMode: 1 - _ZWrite: 1 - - u_bend: 1.32 - - u_noise_amount: 0.96 - - u_noise_size: 246.53 - - u_scanline_amount: -2.9 - - u_scanline_size_1: 1.09 - - u_scanline_size_2: 1.69 - - u_scanline_speed_1: 0.08 - - u_scanline_speed_2: 1.28 - - u_time: 15.02 - - u_vignette_edge_round: 0.44 - - u_vignette_size: 0.41 - - u_vignette_smoothness: 0.28 + - u_bend: 2.21 + - u_noise_amount: 0.012 + - u_noise_size: 337 + - u_scanlin_transparence1: 0.38 + - u_scanlin_transparence2: 0.098 + - u_scanline_amount: 0.019 + - u_scanline_size_1: 308 + - u_scanline_size_2: 521 + - u_scanline_speed_1: 94.13 + - u_scanline_speed_2: 14.83 + - u_time: 15.95 + - u_vignette_edge_round: 7 + - u_vignette_size: 1.89 + - u_vignette_smoothness: 0.56 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - u_blue_offset: {r: 0, g: 0.002, b: 0, a: 0} + - u_green_offset: {r: 0, g: 0, b: 0, a: 0} + - u_red_offset: {r: 0, g: 0.002, b: 0, a: 0} m_BuildTextureStacks: [] diff --git a/Assets/Scripts/Visual.meta b/Assets/Scripts/Visual.meta deleted file mode 100644 index 1fc18fc..0000000 --- a/Assets/Scripts/Visual.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 1f823cbc83e54d88a90cd594398385d1 -timeCreated: 1666894558 \ No newline at end of file diff --git a/Assets/Settings/URP-HighFidelity-Renderer.asset b/Assets/Settings/URP-HighFidelity-Renderer.asset index 477e31b..21757e6 100644 --- a/Assets/Settings/URP-HighFidelity-Renderer.asset +++ b/Assets/Settings/URP-HighFidelity-Renderer.asset @@ -23,25 +23,6 @@ MonoBehaviour: DirectLightingStrength: 0.25 Radius: 0.25 SampleCount: 12 ---- !u!114 &-1742716298934962613 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d2d5de177d814a8d8c64638ad49b1b1d, type: 3} - m_Name: PixelPass - m_EditorClassIdentifier: - m_Active: 0 - settings: - Event: 300 - blitMaterial: {fileID: 2100000, guid: bc45e5f0151133446b26221ec8ea680c, type: 2} - blitMaterialPassIndex: 0 - destination: 0 - textureId: _BlitPassTexture --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -59,9 +40,8 @@ MonoBehaviour: type: 3} m_RendererFeatures: - {fileID: -1878332245247344467} - - {fileID: -1742716298934962613} - {fileID: 6059349672888060108} - m_RendererFeatureMap: adc0de57c6d2eee54bb6b269c2a0d0e7cc485f766c221754 + m_RendererFeatureMap: adc0de57c6d2eee5cc485f766c221754 m_UseNativeRenderPass: 0 postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} @@ -120,3 +100,4 @@ MonoBehaviour: blitMaterialPassIndex: 0 destination: 0 textureId: _BlitPassTexture + alwaysRender: 1 diff --git a/Assets/Scripts/Visual/Blit.cs b/Assets/Shaders/Blit.cs similarity index 95% rename from Assets/Scripts/Visual/Blit.cs rename to Assets/Shaders/Blit.cs index 30d0d6c..c18c1c7 100644 --- a/Assets/Scripts/Visual/Blit.cs +++ b/Assets/Shaders/Blit.cs @@ -82,6 +82,7 @@ namespace Shaders public int blitMaterialPassIndex = -1; public Target destination = Target.Color; public string textureId = "_BlitPassTexture"; + public bool alwaysRender = false; } public enum Target @@ -116,8 +117,11 @@ namespace Shaders return; } - blitPass.Setup(src, dest); - renderer.EnqueuePass(blitPass); + if (Application.isPlaying || settings.alwaysRender) + { + blitPass.Setup(src, dest); + renderer.EnqueuePass(blitPass); + } } } } \ No newline at end of file diff --git a/Assets/Scripts/Visual/Blit.cs.meta b/Assets/Shaders/Blit.cs.meta similarity index 100% rename from Assets/Scripts/Visual/Blit.cs.meta rename to Assets/Shaders/Blit.cs.meta diff --git a/Assets/Shaders/BlitShaderGUI.cs b/Assets/Shaders/BlitShaderGUI.cs new file mode 100644 index 0000000..10af14f --- /dev/null +++ b/Assets/Shaders/BlitShaderGUI.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace Shaders +{ + public class BlitShaderGUI : ShaderGUI + { + public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties) + { + // var propertiesList = properties.ToList() + // .Where(prop => prop.displayName != "Texture"); + // properties = propertiesList.ToArray(); + + base.OnGUI (materialEditor, properties); + } + } +} \ No newline at end of file diff --git a/Assets/Shaders/BlitShaderGUI.cs.meta b/Assets/Shaders/BlitShaderGUI.cs.meta new file mode 100644 index 0000000..73b1df4 --- /dev/null +++ b/Assets/Shaders/BlitShaderGUI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ea9e1aab61914fdc984d1ba78a132f7c +timeCreated: 1667020752 \ No newline at end of file diff --git a/Assets/Shaders/CRTShader.shader b/Assets/Shaders/CRTShader.shader index 23310f2..016437d 100644 --- a/Assets/Shaders/CRTShader.shader +++ b/Assets/Shaders/CRTShader.shader @@ -1,20 +1,30 @@ -Shader "CRTShader" + Shader "CRTShader" { Properties { - u_time("u_time",float) = 0.5 - u_bend("u_bend",float) = 0.5 - u_scanline_size_1("u_scanline_size_1",float) = 0.5 - u_scanline_speed_1("u_scanline_speed_1",float) = 0.5 - u_scanline_size_2("u_scanline_size_2",float) = 0.5 - u_scanline_speed_2("u_scanline_speed_2",float) = 0.5 - u_scanline_amount("u_scanline_amount",float) = 0.5 - u_vignette_size("u_vignette_size",float) = 0.5 - u_vignette_smoothness("u_vignette_smoothness",float) = 0.5 - u_vignette_edge_round("u_vignette_edge_round",float) = 0.5 - u_noise_size("u_noise_size",float) = 0.5 - u_noise_amount("u_noise_amount",float) = 0.5 + _MainTex("Texture", 2D) = "Transparent" {} + u_time("Time",float) = 0.5 + u_bend("Bend",range(0.5, 5.0)) = 0.5 + u_scanlin_transparence1("Scanline 1 Transparence",range(0, 1)) = 0.5 + u_scanline_size_1("Scanline Size 1",range(0, 750)) = 0.5 + u_scanline_speed_1("Scanline Speed 1",float) = 0.5 + u_scanlin_transparence2("Scanline 2 Transparence",range(0, 1)) = 0.5 + u_scanline_size_2("Scanline Size 2",range(0, 750)) = 0.5 + u_scanline_speed_2("Scanline Speed2",float) = 0.5 + u_scanline_amount("Scanline Amount",range(0, 1)) = 0.5 + u_vignette_size("Vignette Size",range(0, 10)) = 0.5 + u_vignette_smoothness("Vignette Smoothness",range(0, 2)) = 0.5 + u_vignette_edge_round("Vignette Edge Round",range(0, 100)) = 0.5 + u_noise_size("Noise Size",range(0, 500 )) = 0.5 + u_noise_amount("Noise Amount",range(0, 0.3)) = 0.5 + [ShowAsVector2] u_red_offset("Red Offset",Vector) = (.25, .5, .5, 0) + [ShowAsVector2] u_green_offset("Green Offset",Vector) = (.25, .5, .5, 0) + [ShowAsVector2] u_blue_offset("Blue Offset",Vector) = (.25, .5, .5, 0) } + + // The Unity Editor uses the class ExampleCustomEditor to configure the Inspector for this shader asset + CustomEditor "Shaders.BlitShaderGUI" + SubShader { // No culling or depth @@ -52,8 +62,10 @@ Shader "CRTShader" uniform float u_time; uniform float u_bend; + uniform float u_scanlin_transparence1; uniform float u_scanline_size_1; uniform float u_scanline_speed_1; + uniform float u_scanlin_transparence2; uniform float u_scanline_size_2; uniform float u_scanline_speed_2; uniform float u_scanline_amount; @@ -86,13 +98,14 @@ Shader "CRTShader" return smoothstep(0, smoothness, amount); } - float scanline(half2 uv, float lines, float speed) + float scanline(half2 uv, float lines, float speed, float transparence) { - return sin(uv.y * lines + u_time * speed); + return sin(uv.y * lines + u_time * speed) * transparence; } float random(half2 uv) { + return frac(sin(dot(uv, half2(15.1511, 42.5225))) * 12341.51611 * sin(u_time * 0.03)); } @@ -113,6 +126,7 @@ Shader "CRTShader" fixed4 frag(v2f i) : SV_Target { + u_time = _Time; half2 crt_uv = crt_coords(i.uv, u_bend); fixed4 col; col.r = tex2D(_MainTex, crt_uv + u_red_offset).r; @@ -120,8 +134,8 @@ Shader "CRTShader" col.b = tex2D(_MainTex, crt_uv + u_blue_offset).b; col.a = tex2D(_MainTex, crt_uv).a; - float s1 = scanline(i.uv, u_scanline_size_1, u_scanline_speed_1); - float s2 = scanline(i.uv, u_scanline_size_2, u_scanline_speed_2); + float s1 = scanline(i.uv, u_scanline_size_1, u_scanline_speed_1, u_scanlin_transparence1); + float s2 = scanline(i.uv, u_scanline_size_2, u_scanline_speed_2,u_scanlin_transparence2); col = lerp(col, fixed(s1 + s2), u_scanline_amount);