diff options
| author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
|---|---|---|
| committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
| commit | eb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch) | |
| tree | efd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3Worlds/Assets/Bakery/examples/shaders | |
| download | unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2 unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip | |
move to self host
Diffstat (limited to 'VRCSDK3Worlds/Assets/Bakery/examples/shaders')
6 files changed, 285 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader new file mode 100644 index 00000000..14099e2b --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader @@ -0,0 +1,91 @@ +Shader "Bakery/Example shader with Alpha Meta Pass" +{ + Properties + { + _MainTex ("Albedo", 2D) = "white" { } + _BumpMap ("Normal map", 2D) = "bump" { } + [HideInInspector] BAKERY_META_ALPHA_ENABLE ("Enable Bakery alpha meta pass", Float) = 1.0 + } + SubShader + { + Tags {"RenderType"="Transparent"} + + Pass + { + CGPROGRAM + #pragma vertex vs + #pragma fragment ps + #include "UnityCG.cginc" + + sampler2D _MainTex, _BumpMap; + + struct pi + { + float4 Position : SV_POSITION; + float2 TexCoords : TEXCOORD0; + float2 TexCoords2 : TEXCOORD1; + }; + + void vs(in appdata_full IN, out pi OUT) + { + OUT.Position = UnityObjectToClipPos(IN.vertex); + OUT.TexCoords = IN.texcoord.xy; + OUT.TexCoords2 = IN.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + } + + float4 ps( in pi IN ) : COLOR + { + float4 tex = tex2D(_MainTex, IN.TexCoords); + float3 lm = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.TexCoords2)); + tex.rgb *= lm; + float2 alpha2 = cos(abs(frac(IN.TexCoords*10)*2-1)); + float alpha = alpha2.x * alpha2.y; + clip(alpha-0.5); + return tex; + } + ENDCG + } + + Pass + { + // Alpha map enabled Bakery-specific meta pass + + Name "META_BAKERY" + + Tags {"LightMode"="Meta"} + Cull Off + CGPROGRAM + + #include "UnityStandardMeta.cginc" + + // Include Bakery meta pass + #include "../../BakeryMetaPass.cginc" + + float4 frag_customMeta (v2f_bakeryMeta i): SV_Target + { + UnityMetaInput o; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o); + + // Output custom alpha to Bakery + if (unity_MetaFragmentControl.w) + { + // Calculate custom alpha + float2 alpha2 = cos(abs(frac(i.uv*10)*2-1)); + float alpha = alpha2.x * alpha2.y; + + // Output + return alpha; + } + + // Regular Unity meta pass + o.Albedo = tex2D(_MainTex, i.uv); + return UnityMetaFragment(o); + } + + // Must use vert_bakerymt vertex shader + #pragma vertex vert_bakerymt + #pragma fragment frag_customMeta + ENDCG + } + } +} diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader.meta b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader.meta new file mode 100644 index 00000000..0ff1ba1e --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Alpha_meta.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 62aa1251c95dfeb4ba08fd46a3a1d98f +timeCreated: 1601291564 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader new file mode 100644 index 00000000..cee42878 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader @@ -0,0 +1,83 @@ +Shader "Bakery/Example shader with Normal Meta Pass" +{ + Properties + { + _MainTex ("Albedo", 2D) = "white" { } + _BumpMap ("Normal map", 2D) = "bump" { } + } + SubShader + { + Pass + { + CGPROGRAM + #pragma vertex vs + #pragma fragment ps + #include "UnityCG.cginc" + + sampler2D _MainTex, _BumpMap; + + struct pi + { + float4 Position : SV_POSITION; + float2 TexCoords : TEXCOORD0; + float2 TexCoords2 : TEXCOORD1; + }; + + void vs(in appdata_full IN, out pi OUT) + { + OUT.Position = UnityObjectToClipPos(IN.vertex); + OUT.TexCoords = IN.texcoord.xy; + OUT.TexCoords2 = IN.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + } + + float4 ps( in pi IN ) : COLOR + { + float4 tex = tex2D(_MainTex, IN.TexCoords); + float3 lm = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.TexCoords2)); + tex.rgb *= lm; + return tex; + } + ENDCG + } + + Pass + { + // Normal-map enabled Bakery-specific meta pass + Name "META_BAKERY" + Tags {"LightMode"="Meta"} + Cull Off + CGPROGRAM + + #include"UnityStandardMeta.cginc" + + // Include Bakery meta pass + #include"Bakery/BakeryMetaPass.cginc" + + float4 frag_customMeta (v2f_bakeryMeta i): SV_Target + { + UnityMetaInput o; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o); + + // Output custom normal to use with Bakery's "Baked Normal Map" mode + if (unity_MetaFragmentControl.z) + { + // Calculate custom normal + float3 customNormalMap = UnpackNormal(tex2D(_BumpMap, pow(abs(i.uv), 1.5))); // example: UVs are procedurally distorted + float3 customWorldNormal = TransformNormalMapToWorld(i, customNormalMap); + + // Output + return float4(BakeryEncodeNormal(customWorldNormal),1); + } + + // Regular Unity meta pass + o.Albedo = tex2D(_MainTex, i.uv); + return UnityMetaFragment(o); + } + + // Must use vert_bakerymt vertex shader + #pragma vertex vert_bakerymt + #pragma fragment frag_customMeta + ENDCG + } + } +} diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader.meta b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader.meta new file mode 100644 index 00000000..01adcb51 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_meta.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 413ff0795eddafc4384d2495a551b7de +timeCreated: 1539530855 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader new file mode 100644 index 00000000..f15d4ec9 --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader @@ -0,0 +1,84 @@ +Shader "Bakery/Example terrain shader with Normal Meta Pass" +{ + Properties + { + _MainTex ("Albedo", 2D) = "white" { } + _BumpMap ("Normal map", 2D) = "bump" { } + } + SubShader + { + Pass + { + CGPROGRAM + #pragma vertex vs + #pragma fragment ps + #include "UnityCG.cginc" + + sampler2D _MainTex, _BumpMap; + + struct pi + { + float4 Position : SV_POSITION; + float2 TexCoords : TEXCOORD0; + float2 TexCoords2 : TEXCOORD1; + }; + + void vs(in appdata_full IN, out pi OUT) + { + OUT.Position = UnityObjectToClipPos(IN.vertex); + OUT.TexCoords = IN.texcoord.xy; + OUT.TexCoords2 = IN.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + } + + float4 ps( in pi IN ) : COLOR + { + float4 tex = tex2D(_MainTex, IN.TexCoords); + float3 lm = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.TexCoords2)); + tex.rgb *= lm; + return tex; + } + ENDCG + } + + Pass + { + // Normal-map enabled Bakery-specific meta pass + Name "META_BAKERY" + Tags {"LightMode"="Meta"} + Cull Off + CGPROGRAM + + #include"UnityStandardMeta.cginc" + + // Include Bakery meta pass + #define _TERRAIN_NORMAL_MAP // for terrains + #include"Bakery/BakeryMetaPass.cginc" + + float4 frag_customMeta (v2f_bakeryMeta i): SV_Target + { + UnityMetaInput o; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o); + + // Output custom normal to use with Bakery's "Baked Normal Map" mode + if (unity_MetaFragmentControl.z) + { + // Calculate custom normal + float3 customNormalMap = UnpackNormal(tex2D(_BumpMap, pow(abs(i.uv), 1.5))); // example: UVs are procedurally distorted + float3 customWorldNormal = TransformNormalMapToWorld(i, customNormalMap); + + // Output + return float4(BakeryEncodeNormal(customWorldNormal),1); + } + + // Regular Unity meta pass + o.Albedo = tex2D(_MainTex, i.uv); + return UnityMetaFragment(o); + } + + // Must use vert_bakerymt vertex shader + #pragma vertex vert_bakerymt + #pragma fragment frag_customMeta + ENDCG + } + } +} diff --git a/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader.meta b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader.meta new file mode 100644 index 00000000..d3bc526f --- /dev/null +++ b/VRCSDK3Worlds/Assets/Bakery/examples/shaders/Baked_Normal_Maps_terrain_meta.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c071342c6ed3a214cac24c80263f3079 +timeCreated: 1539530856 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: |