diff options
author | Freya Murphy <freya@freyacat.org> | 2024-12-27 00:56:58 -0500 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-12-27 00:58:02 -0500 |
commit | 799e6680d40119dc9c2a9e0b320054a40324bebe (patch) | |
tree | dbcd308d59eb6e4f937a5547dd77d9f91d4fec20 /VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX | |
parent | move to self host (diff) | |
download | unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.gz unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.bz2 unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.zip |
VRCSDK3Avatars found!
Diffstat (limited to 'VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX')
-rw-r--r-- | VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader | 163 | ||||
-rw-r--r-- | VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader.meta | 8 |
2 files changed, 171 insertions, 0 deletions
diff --git a/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader new file mode 100644 index 00000000..d965068a --- /dev/null +++ b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader @@ -0,0 +1,163 @@ +Shader ".poiyomi/Patreon/EyeFx" +{ + Properties + { + [HideInInspector] shader_is_using_thry_editor("", Float)=0 + _MainTex ("Background", 2D) = "white" { } + + _GradientFront ("Gradient Front", 2D) = "black" { } + _GradientBack ("Gradient Back", 2D) = "black" { } + _LineworkMask ("Linework Mask", 2D) = "black" { } + _HighlightMask ("Highlight Mask", 2D) = "black" { } + _FrontTexture ("Front Texture", 2D) = "white" { } + _BackTexture ("Back Texture", 2D) = "white" { } + + _NoiseFront ("Noise Front Gradient", 2D) = "black" { } + _NoiseBack ("Noise Back Gradient", 2D) = "black" { } + + _FrontTexturePan ("Front Texture Pan", Vector) = (0, 0, 0, 0) + _BackTexturePan ("Back Texture Pan", Vector) = (0, 0, 0, 0) + _NoiseFrontPanSpeed ("Noise Front Pan Speed", Vector) = (0, 0, 0, 0) + _NoiseBackPanSpeed ("Noise Back Pan Speed", Vector) = (0, 0, 0, 0) + + [Space(20)] + _FrontGradientMod ("Front Grad Mod", Range(-1,1)) = 0 + _BackGradientMod ("Back Grad Mod", Range(-1,1)) = 0 + [Space(20)] + _GradientFrontColor ("Front Color", Color) = (1, 1, 1, 1) + _FrontEmission ("Front Emission", Float) = 0 + _GradientBackColor ("Back Color", Color) = (1, 1, 1, 1) + _BackEmission ("Back Emission", Float) = 0 + _Color ("BackgroundColor", Color) = (1, 1, 1, 1) + _BackgroundEmission ("Background Emission", Float) = 0 + _LineworkColor ("Linework Color", Color) = (1, 1, 1, 1) + _LineworkEmission ("Linework Emission", Float) = 0 + _HighlightColor ("Highlight Color", Color) = (1, 1, 1, 1) + _HighlightEmission ("Highlight Emission", Float) = 0 + [Space(20)] + + _BlendFront ("Front Soft-Hard", Range(0, 1)) = 1 + _BlendBack ("Back Soft-Hard", Range(0, 1)) = 1 + + [Enum(Unlit, 0, Lit, 1)] _Lit ("Lighting", Int) = 0 + } + + SubShader + { + LOD 100 + CGINCLUDE + #pragma target 5.0 + ENDCG + + Cull Back + ColorMask RGBA + ZWrite On + ZTest LEqual + Offset 0, 0 + + Pass + { + Tags { "LightMode" = "ForwardBase" } + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #pragma multi_compile_instancing + #include "UnityPBSLighting.cginc" + #include "UnityCG.cginc" + + + struct appdata + { + float4 vertex: POSITION; + float2 texcoord: TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 pos: SV_POSITION; + float2 uv: TEXCOORD0; + + UNITY_VERTEX_OUTPUT_STEREO + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + sampler2D _MainTex; float4 _MainTex_ST; + sampler2D _GradientFront; float4 _GradientFront_ST; + sampler2D _GradientBack; float4 _GradientBack_ST; + sampler2D _LineworkMask; float4 _LineworkMask_ST; + sampler2D _HighlightMask; float4 _HighlightMask_ST; + sampler2D _NoiseFront; float4 _NoiseFront_ST; + sampler2D _NoiseBack; float4 _NoiseBack_ST; + sampler2D _FrontTexture; float4 _FrontTexture_ST; + sampler2D _BackTexture; float4 _BackTexture_ST; + float4 _FrontTexturePan; + float4 _BackTexturePan; + int _Lit; + // Colors + float4 _Color; + float4 _GradientFrontColor, _GradientBackColor, _LineworkColor, _HighlightColor; + float _BackgroundEmission, _FrontEmission, _BackEmission, _LineworkEmission, _HighlightEmission; + float _FrontGradientMod; + float _BackGradientMod; + // Blending + float _BlendBack, _BlendFront; + // Motion + float4 _NoiseFrontPanSpeed, _NoiseBackPanSpeed; + + v2f vert(appdata v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = float4(v.texcoord.xy, 0, 0); + return o; + } + + fixed4 frag(v2f i): SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + _FrontGradientMod = 1 - _FrontGradientMod; + _BackGradientMod = 1 - _BackGradientMod; + float4 background = tex2D(_MainTex, TRANSFORM_TEX(i.uv, _MainTex)); + float gradientFront = tex2D(_GradientFront, TRANSFORM_TEX(i.uv, _GradientFront)); + float gradientBack = tex2D(_GradientBack, TRANSFORM_TEX(i.uv, _GradientBack)); + float lineworkMask = tex2D(_LineworkMask, TRANSFORM_TEX(i.uv, _LineworkMask)); + float highlightMask = tex2D(_HighlightMask, TRANSFORM_TEX(i.uv, _HighlightMask)); + float4 frontTexture = tex2D(_FrontTexture, TRANSFORM_TEX(i.uv, _FrontTexture) + _FrontTexturePan * _Time.y); + float4 backTexture = tex2D(_BackTexture, TRANSFORM_TEX(i.uv, _BackTexture) + _BackTexturePan * _Time.y); + float noiseFront = tex2D(_NoiseFront, TRANSFORM_TEX(i.uv, _NoiseFront) + _Time.y * _NoiseFrontPanSpeed); + float noiseBack = tex2D(_NoiseBack, TRANSFORM_TEX(i.uv, _NoiseBack) + _Time.y * _NoiseBackPanSpeed); + + float frontAlpha = gradientFront - (gradientFront * lerp(lerp(_FrontGradientMod - noiseFront, 0, gradientFront), (1 - step(_FrontGradientMod - gradientFront, noiseFront)), _BlendFront)); + float backAlpha = gradientBack - (gradientBack * lerp(lerp(_BackGradientMod - noiseBack, 0, gradientBack), (1 - step(_BackGradientMod - gradientBack, noiseBack)), _BlendBack)); + + + // Ambient Lighting + float3 poiLighting = clamp(ShadeSH9(float4(0, 0, 0, 1)) + _LightColor0.rgb, 0, _LightColor0.a); + + fixed4 finalColor = float4(background.rgb * _Color, 1); + finalColor = lerp(finalColor, _GradientBackColor * backTexture, backAlpha); + finalColor = lerp(finalColor, _GradientFrontColor * frontTexture, frontAlpha); + finalColor = lerp(finalColor, _LineworkColor, lineworkMask); + finalColor = lerp(finalColor, _HighlightColor, highlightMask); + + finalColor.rgb *= lerp(1, poiLighting, _Lit); + + fixed4 emissionColor = float4(background.rgb * _Color * _BackgroundEmission, 1); + emissionColor = lerp(emissionColor, _GradientBackColor * backTexture * _BackEmission, backAlpha); + emissionColor = lerp(emissionColor, _GradientFrontColor * frontTexture * _FrontEmission, frontAlpha); + emissionColor = lerp(emissionColor, _LineworkColor * _LineworkEmission, lineworkMask); + emissionColor = lerp(emissionColor, _HighlightColor * _HighlightEmission, highlightMask); + + return finalColor + emissionColor; + } + ENDCG + + } + } +}
\ No newline at end of file diff --git a/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader.meta b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader.meta new file mode 100644 index 00000000..fce28c28 --- /dev/null +++ b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/EyeFX/PoiyomiEyeFX.shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06e7a0cea07dc88429001d0cb84a92ca +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: |