Added new stocking scope to shader gui;
Added new stocking surface feature; Added unity 6.3 support; Fixed the issue that ssr weight does not blend ibl and ssr properly; Fixed the issue that material recive ssr regardless of specular ambient mode;
This commit is contained in:
@@ -12,7 +12,6 @@ float3 UtsGetShadowNormal(UtsBSDFData bsdfData)
|
||||
|
||||
float3 SampleSDFTexture(float3 L, float2 uv, out float angle)
|
||||
{
|
||||
// TODO: Move sdf sample result to UtsBSDFData to avoid sampleing in a loop
|
||||
float2 right_uv = float2(1 - uv.x, uv.y);
|
||||
float3 left_SDFTex = SAMPLE_TEXTURE2D(_SDFShadingMap, sampler_SDFShadingMap, uv).rgb;
|
||||
float3 right_SDFTex = SAMPLE_TEXTURE2D(_SDFShadingMap, sampler_SDFShadingMap, right_uv).rgb;
|
||||
@@ -27,7 +26,7 @@ float3 SampleSDFTexture(float3 L, float2 uv, out float angle)
|
||||
return isRightSide ? right_SDFTex : left_SDFTex;
|
||||
}
|
||||
|
||||
float GetHairShadow(PositionInputs posInput, float3 L)
|
||||
float GetHairShadow(PositionInputs posInput, float3 L, float N)
|
||||
{
|
||||
float shadow = 1.0;
|
||||
|
||||
@@ -37,16 +36,21 @@ float GetHairShadow(PositionInputs posInput, float3 L)
|
||||
if (hairShadowOpacity > 0.0)
|
||||
{
|
||||
float3 viewLightDir = TransformWorldToViewDir(L);
|
||||
float3 viewOffsetPos = TransformWorldToView(posInput.positionWS) + viewLightDir * _HairShadowDistance * 0.01;
|
||||
float distance = _HairShadowDistance + max(0.0, posInput.linearDepth * _HairShadowDistanceScaleFactor);
|
||||
float3 viewOffsetPos = TransformWorldToView(posInput.positionWS) + viewLightDir * distance * 0.01;
|
||||
float4 clipPos = mul(UNITY_MATRIX_P, float4(viewOffsetPos, 1.0));
|
||||
float2 samplingPointSS = clipPos.xy / clipPos.w;
|
||||
samplingPointSS = samplingPointSS * 0.5 + 0.5;
|
||||
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
samplingPointSS.y = 1.0 - samplingPointSS.y;
|
||||
#endif
|
||||
|
||||
|
||||
float NdotL = saturate(dot(N, L));
|
||||
float slopeBias = (1.0 - NdotL) * _HairShadowDepthBias;
|
||||
|
||||
float2 scaledUVs = samplingPointSS * _RTHandleScale.xy; // We have to including the scaling factor for our shadow map since we are not going to allocate new texture if the rendering resolution changed.
|
||||
float hairShadow = SAMPLE_TEXTURE2D_SHADOW(_HairShadowTex, s_linear_clamp_compare_sampler, float3(scaledUVs, posInput.deviceDepth + _HairShadowDepthBias)).r;
|
||||
float hairShadow = SAMPLE_TEXTURE2D_SHADOW(_HairShadowTex, s_linear_clamp_compare_sampler, float3(scaledUVs, posInput.deviceDepth + slopeBias)).r;
|
||||
shadow = lerp(1.0 - hairShadowOpacity, 1.0, hairShadow);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user