diff options
Diffstat (limited to '')
2 files changed, 209 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader b/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader new file mode 100644 index 00000000..a043e526 --- /dev/null +++ b/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader @@ -0,0 +1,200 @@ +Shader "Raliv/Orifice" +{ + Properties + { + _MainTex("MainTex", 2D) = "white" {} + _Color("Color", Color) = (1,1,1,0) + _Metallic("Metallic", 2D) = "black" {} + _Smoothness("Smoothness", Range( 0 , 1)) = 1 + _BumpMap("Normal Map", 2D) = "bump" {} + _Emission("Emission", 2D) = "black" {} + _EmissionPower("EmissionPower", Range( 0 , 3)) = 1 + _Occlusion("Occlusion", 2D) = "white" {} + _OrificeData("OrificeData", 2D) = "white" {} + _EntryOpenDuration("Entry Trigger Duration", Range( 0 , 1)) = 0.1 + _Shape1Depth("Shape 1 Trigger Depth", Range( 0 , 5)) = 0.1 + _Shape1Duration("Shape 1 Trigger Duration", Range( 0 , 1)) = 0.1 + _Shape2Depth("Shape 2 Trigger Depth", Range( 0 , 5)) = 0.2 + _Shape2Duration("Shape 2 Trigger Duration", Range( 0 , 1)) = 0.1 + _Shape3Depth("Shape 3 Trigger Depth", Range( 0 , 5)) = 0.3 + _Shape3Duration("Shape 3 Trigger Duration", Range( 0 , 1)) = 0.1 + _BlendshapePower("Blend Shape Power", Range(0,5)) = 1 + _BlendshapeBadScaleFix("Blend Shape Bad Scale Fix", Range(1,100)) = 1 + [Header(Advanced)]_OrificeChannel("OrificeChannel Please Use 0", Float) = 0 + [Header(Toon Shading (Check to activate))]_CellShadingSharpness("Cell Shading Sharpness", Range( 0 , 1)) = 0 + _ToonSpecularSize("ToonSpecularSize", Range( 0 , 1)) = 0 + _ToonSpecularIntensity("ToonSpecularIntensity", Range( 0 , 1)) = 0 + [Toggle(_TOONSHADING_ON)] _ToonShading("Toon Shading", Float) = 0 + [HideInInspector] _texcoord( "", 2D ) = "white" {} + [HideInInspector] __dirty( "", Int ) = 1 + } + + SubShader + { + Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" } + Cull Back + CGPROGRAM + #include "UnityPBSLighting.cginc" + #include "UnityShaderVariables.cginc" + #include "UnityCG.cginc" + #pragma target 3.0 + #pragma multi_compile __ _TOONSHADING_ON + #pragma surface surf StandardCustomLighting keepalpha noshadow vertex:vertexDataFunc + + struct appdata_full_custom + { + float4 vertex : POSITION; + float4 tangent : TANGENT; + float3 normal : NORMAL; + float4 texcoord : TEXCOORD0; + float4 texcoord1 : TEXCOORD1; + float4 texcoord2 : TEXCOORD2; + float4 texcoord3 : TEXCOORD3; + fixed4 color : COLOR; + UNITY_VERTEX_INPUT_INSTANCE_ID + uint vertexId : SV_VertexID; + }; + + struct Input + { + float2 uv_texcoord; + float3 worldNormal; + INTERNAL_DATA + float3 worldPos; + }; + + struct SurfaceOutputCustomLightingCustom + { + half3 Albedo; + half3 Normal; + half3 Emission; + half Metallic; + half Smoothness; + half Occlusion; + half Alpha; + Input SurfInput; + UnityGIInput GIData; + }; + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float4 _Color; + uniform sampler2D _BumpMap; + uniform float4 _BumpMap_ST; + uniform sampler2D _Emission; + uniform float4 _Emission_ST; + uniform float _EmissionPower; + uniform sampler2D _Metallic; + uniform float4 _Metallic_ST; + uniform float _Smoothness; + uniform sampler2D _Occlusion; + uniform float4 _Occlusion_ST; + uniform float _CellShadingSharpness; + uniform float _ToonSpecularSize; + uniform float _ToonSpecularIntensity; + + #define RALIV_ORIFICE; + + #include "../Plugins/RalivDPS_Defines.cginc" + #include "../Plugins/RalivDPS_Functions.cginc" + + + void vertexDataFunc( inout appdata_full_custom v, out Input o ) { + UNITY_INITIALIZE_OUTPUT( Input, o ); + float3 normal = normalize( v.normal ); + float3 tangent = normalize( v.tangent.xyz ); + float3 binormal = normalize(cross( normal , tangent )); + OrificeReshape(v.vertex, v.normal, v.tangent.xyz, v.vertexId); + } + + inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) + { + UnityGIInput data = s.GIData; + Input i = s.SurfInput; + half4 c = 0; + SurfaceOutputStandard s393 = (SurfaceOutputStandard) 0; + float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; + float4 tex2DNode145 = tex2D( _MainTex, uv_MainTex ); + float4 temp_output_146_0 = ( tex2DNode145 * _Color ); + s393.Albedo = temp_output_146_0.rgb; + float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; + float3 tex2DNode147 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); + s393.Normal = WorldNormalVector( i , tex2DNode147 ); + float2 uv_Emission = i.uv_texcoord * _Emission_ST.xy + _Emission_ST.zw; + float4 tex2DNode283 = tex2D( _Emission, uv_Emission ); + s393.Emission = ( tex2DNode283 * _EmissionPower ).rgb; + float2 uv_Metallic = i.uv_texcoord * _Metallic_ST.xy + _Metallic_ST.zw; + float4 tex2DNode148 = tex2D( _Metallic, uv_Metallic ); + s393.Metallic = tex2DNode148.r; + s393.Smoothness = ( tex2DNode148.a * _Smoothness ); + float2 uv_Occlusion = i.uv_texcoord * _Occlusion_ST.xy + _Occlusion_ST.zw; + s393.Occlusion = tex2D( _Occlusion, uv_Occlusion ).r; + + data.light = gi.light; + + UnityGI gi393 = gi; + #ifdef UNITY_PASS_FORWARDBASE + Unity_GlossyEnvironmentData g393 = UnityGlossyEnvironmentSetup( s393.Smoothness, data.worldViewDir, s393.Normal, float3(0,0,0)); + gi393 = UnityGlobalIllumination( data, s393.Occlusion, s393.Normal, g393 ); + #endif + + float3 surfResult393 = LightingStandard ( s393, viewDir, gi393 ).rgb; + surfResult393 += s393.Emission; + + #ifdef UNITY_PASS_FORWARDADD//393 + surfResult393 -= s393.Emission; + #endif//393 + #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc + float4 ase_lightColor = 0; + #else //aselc + float4 ase_lightColor = _LightColor0; + #endif //aselc + float3 newWorldNormal396 = (WorldNormalVector( i , tex2DNode147 )); + float3 ase_worldPos = i.worldPos; + #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld + float3 ase_worldlightDir = 0; + #else //aseld + float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); + #endif //aseld + float dotResult5_g1 = dot( newWorldNormal396 , ase_worldlightDir ); + float temp_output_402_0 = ( _CellShadingSharpness * 10.0 ); + UnityGI gi411 = gi; + float3 diffNorm411 = WorldNormalVector( i , tex2DNode147 ); + gi411 = UnityGI_Base( data, 1, diffNorm411 ); + float3 indirectDiffuse411 = gi411.indirect.diffuse + diffNorm411 * 0.0001; + float temp_output_470_0 = ( 1.0 - _ToonSpecularSize ); + float temp_output_457_0 = ( temp_output_470_0 * temp_output_470_0 ); + float3 normalizeResult446 = normalize( reflect( -ase_worldlightDir , newWorldNormal396 ) ); + float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); + float dotResult418 = dot( normalizeResult446 , ase_worldViewDir ); + float saferPower437 = max( dotResult418 , 0.0001 ); + float temp_output_437_0 = pow( saferPower437 , 20.0 ); + float smoothstepResult449 = smoothstep( temp_output_457_0 , ( temp_output_457_0 + ( ( 1.1 - temp_output_457_0 ) * 0.5 ) ) , temp_output_437_0); + #ifdef _TOONSHADING_ON + float4 staticSwitch436 = ( ( ase_lightColor * max( saturate( (-temp_output_402_0 + ((dotResult5_g1*0.5 + 0.5) - 0.0) * (( temp_output_402_0 + 1.0 ) - -temp_output_402_0) / (1.0 - 0.0)) ) , 0.1 ) * temp_output_146_0 ) + ( float4( indirectDiffuse411 , 0.0 ) * temp_output_146_0 ) + ( ase_lightColor * saturate( smoothstepResult449 ) * _ToonSpecularIntensity ) ); + #else + float4 staticSwitch436 = float4( surfResult393 , 0.0 ); + #endif + c.rgb = staticSwitch436.rgb; + c.a = 1; + return c; + } + + inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) + { + s.GIData = data; + } + + void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) + { + o.SurfInput = i; + o.Normal = float3(0,0,1); + float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; + float4 tex2DNode145 = tex2D( _MainTex, uv_MainTex ); + float4 temp_output_146_0 = ( tex2DNode145 * _Color ); + o.Albedo = temp_output_146_0.rgb; + } + + ENDCG + } +} diff --git a/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader.meta b/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader.meta new file mode 100644 index 00000000..619e5231 --- /dev/null +++ b/VRCSDK3AvatarsQuest/Assets/Resources/RalivDynamicPenetrationSystem/Includes/Orifice.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d685ee26b37f5214593b251787ab0076 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: |