From eb84bb298d2b95aec7b2ae12cbf25ac64f25379a Mon Sep 17 00:00:00 2001 From: tylermurphy534 Date: Sun, 6 Nov 2022 15:12:42 -0500 Subject: move to self host --- .../Shaders/Includes/CGI_PoiRimLighting.cginc | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiRimLighting.cginc (limited to 'VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiRimLighting.cginc') diff --git a/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiRimLighting.cginc b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiRimLighting.cginc new file mode 100644 index 00000000..31692dec --- /dev/null +++ b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiRimLighting.cginc @@ -0,0 +1,53 @@ +#ifndef POI_RIM + #define POI_RIM + + float4 _RimLightColor; + float _RimLightingInvert; + float _RimWidth; + float _RimStrength; + float _RimSharpness; + float _RimLightColorBias; + float _ShadowMix; + float _ShadowMixThreshold; + float _ShadowMixWidthMod; + float _EnableRimLighting; + float _RimBrighten; + uint _RimLightNormal; + + POI_TEXTURE_NOSAMPLER(_RimTex); + POI_TEXTURE_NOSAMPLER(_RimMask); + POI_TEXTURE_NOSAMPLER(_RimWidthNoiseTexture); + + float _RimWidthNoiseStrength; + + float4 rimColor = float4(0, 0, 0, 0); + float rim = 0; + + void calculateRimLighting() + { + float rimNoise = POI2D_SAMPLER_PAN(_RimWidthNoiseTexture, _MainTex, poiMesh.uv[_RimWidthNoiseTextureUV], _RimWidthNoiseTexturePan); + rimNoise = (rimNoise - .5) * _RimWidthNoiseStrength; + + float viewDotNormal = abs(dot(poiCam.viewDir, poiMesh.normals[_RimLightNormal])); + UNITY_BRANCH + if (_RimLightingInvert) + { + viewDotNormal = 1 - abs(dot(poiCam.viewDir, poiMesh.normals[_RimLightNormal])); + } + _RimWidth -= rimNoise; + float rimMask = POI2D_SAMPLER_PAN(_RimMask, _MainTex, poiMesh.uv[_RimMaskUV], _RimMaskPan); + rimColor = POI2D_SAMPLER_PAN(_RimTex, _MainTex, poiMesh.uv[_RimTexUV], _RimTexPan) * _RimLightColor; + _RimWidth = lerp(_RimWidth, _RimWidth * lerp(0, 1, poiLight.lightMap - _ShadowMixThreshold) * _ShadowMixWidthMod, _ShadowMix); + rim = 1 - smoothstep(min(_RimSharpness, _RimWidth), _RimWidth, viewDotNormal); + rim *= _RimLightColor.a * rimColor.a * rimMask; + } + + void applyRimColor(inout float4 finalColor) + { + finalColor.rgb = lerp(finalColor.rgb, lerp(finalColor.rgb, rimColor, _RimLightColorBias) + lerp(finalColor.rgb, rimColor, _RimLightColorBias) * _RimBrighten, rim); + } + void ApplyRimEmission(inout float3 finalEmission) + { + finalEmission += rim * lerp(finalColor.rgb, rimColor, _RimLightColorBias) * _RimStrength; + } +#endif \ No newline at end of file -- cgit v1.2.3-freya