diff --git a/Runtime/Shaders/Avatar/Avatar_CelShading/Avatar_CelShading_DepthNormalsPass.hlsl b/Runtime/Shaders/Avatar/Avatar_CelShading/Avatar_CelShading_DepthNormalsPass.hlsl index 5a739ec..640badb 100644 --- a/Runtime/Shaders/Avatar/Avatar_CelShading/Avatar_CelShading_DepthNormalsPass.hlsl +++ b/Runtime/Shaders/Avatar/Avatar_CelShading/Avatar_CelShading_DepthNormalsPass.hlsl @@ -48,7 +48,7 @@ Varyings DepthNormalsVertex(Attributes input) VertexNormalInputs normalInput = GetVertexNormalInputs(_GlobalAvatarBuffer[_lastAvatarVertCount + _lastWearableVertCount + input.index].normal.xyz, _GlobalAvatarBuffer[_lastAvatarVertCount + _lastWearableVertCount + input.index].tangent.xyzw); output.normalWS.xyz = NormalizeNormalPerVertex(normalInput.normalWS); - output.normalWS.w = -(mul(UNITY_MATRIX_V, mul(unity_ObjectToWorld, float4(input.positionOS.xyz, 1.0))).z * _ProjectionParams.w); + output.normalWS.w = -(mul(UNITY_MATRIX_V, mul(GetObjectToWorldMatrix(), float4(input.positionOS.xyz, 1.0))).z * _ProjectionParams.w); return output; } diff --git a/Runtime/Shaders/Avatar/DCL_Toon/DCL_Toon.shader b/Runtime/Shaders/Avatar/DCL_Toon/DCL_Toon.shader index 92a7c2e..07641be 100644 --- a/Runtime/Shaders/Avatar/DCL_Toon/DCL_Toon.shader +++ b/Runtime/Shaders/Avatar/DCL_Toon/DCL_Toon.shader @@ -372,6 +372,12 @@ Shader "DCL/DCL_Toon" #ifdef UNIVERSAL_PIPELINE_CORE_INCLUDED #include "../DCL_AvatarDither.hlsl" #include "DCL_ToonInput.hlsl" + #define UNIVERSAL_LIT_INPUT_INCLUDED + #ifndef UNIVERSAL_SURFACE_TYPE_TRANSPARENT_INCLUDED + #define UNIVERSAL_SURFACE_TYPE_TRANSPARENT_INCLUDED + inline bool IsSurfaceTypeTransparent() { return _Surface > 0; } + inline bool IsSurfaceTypeOpaque() { return !IsSurfaceTypeTransparent(); } + #endif #include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl" #include "DCL_ToonHead.hlsl" #include "DCL_ToonBody.hlsl" diff --git a/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonHighlight.hlsl b/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonHighlight.hlsl index 8e20c2c..a1a24dd 100644 --- a/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonHighlight.hlsl +++ b/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonHighlight.hlsl @@ -40,7 +40,7 @@ VertexOutput vert_highlight (VertexInput v) UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - float4 objPos = mul ( unity_ObjectToWorld, float4(0,0,0,1) ); + float4 objPos = mul(GetObjectToWorldMatrix(), float4(0, 0, 0, 1)); float4 vVert; float3 vNormal; @@ -59,10 +59,10 @@ VertexOutput vert_highlight (VertexInput v) vNormal = _GlobalAvatarBuffer[lastAvatarVertCount + lastWearableVertCount + v.index].normal.xyz; normalDir = UnityObjectToWorldNormal(vNormal); skinnedTangent = _GlobalAvatarBuffer[lastAvatarVertCount + lastWearableVertCount + v.index].tangent; - tangentDir = normalize( mul( unity_ObjectToWorld, float4( skinnedTangent.xyz, 0.0 ) ).xyz ); + tangentDir = normalize( mul( GetObjectToWorldMatrix(), float4( skinnedTangent.xyz, 0.0 ) ).xyz ); bitangentDir = normalize(cross(normalDir, tangentDir) * skinnedTangent.w); - float4 clipPosition = mul(UNITY_MATRIX_VP, mul(unity_ObjectToWorld, float4(vVert.xyz, 1.0))); + float4 clipPosition = mul(UNITY_MATRIX_VP, mul(GetObjectToWorldMatrix(), float4(vVert.xyz, 1.0))); float3 clipNormal = mul((float3x3) UNITY_MATRIX_VP, mul((float3x3) UNITY_MATRIX_M, vNormal)); float2 offset = normalize(clipNormal.xy) / _ScreenParams.xy * Set_Outline_Width * clipPosition.w * 2.0f; @@ -75,7 +75,7 @@ VertexOutput vert_highlight (VertexInput v) vNormal = v.normal; vTangent = v.tangent; normalDir = UnityObjectToWorldNormal(vNormal); - tangentDir = normalize( mul( unity_ObjectToWorld, float4( vTangent.xyz, 0.0 ) ).xyz ); + tangentDir = normalize( mul( GetObjectToWorldMatrix(), float4( vTangent.xyz, 0.0 ) ).xyz ); bitangentDir = normalize(cross(normalDir, tangentDir) * vTangent.w); float2 offset = normalize(normalDir.xy) / _ScreenParams.xy * Set_Outline_Width * vVert.w * 2.0f; diff --git a/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonOutline.hlsl b/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonOutline.hlsl index 957ef8b..e95f7a9 100644 --- a/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonOutline.hlsl +++ b/Runtime/Shaders/Avatar/DCL_Toon/DCL_ToonOutline.hlsl @@ -32,6 +32,7 @@ struct VertexOutput float4 positionCS : TEXCOORD4; float3 positionWS : TEXCOORD5; + UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; @@ -40,10 +41,11 @@ VertexOutput vert (VertexInput v) VertexOutput o = (VertexOutput)0; UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.uv0 = v.texcoord0; - float4 objPos = mul ( unity_ObjectToWorld, float4(0,0,0,1) ); + float4 objPos = mul(GetObjectToWorldMatrix(), float4(0, 0, 0, 1)); float2 Set_UV0 = o.uv0; float4 _Outline_Sampler_var = float4(1,1,1,1);//tex2Dlod(_Outline_Sampler,float4(TRANSFORM_TEX(Set_UV0, _Outline_Sampler),0.0,0)); //v.2.0.4.3 baked Normal Texture for Outline @@ -51,11 +53,11 @@ VertexOutput vert (VertexInput v) #ifdef _DCL_COMPUTE_SKINNING o.normalDir = UnityObjectToWorldNormal(_GlobalAvatarBuffer[_lastAvatarVertCount + _lastWearableVertCount + v.index].normal.xyz); float4 skinnedTangent = _GlobalAvatarBuffer[_lastAvatarVertCount + _lastWearableVertCount + v.index].tangent; - o.tangentDir = normalize( mul( unity_ObjectToWorld, float4( skinnedTangent.xyz, 0.0 ) ).xyz ); + o.tangentDir = normalize( mul( GetObjectToWorldMatrix(), float4( skinnedTangent.xyz, 0.0 ) ).xyz ); o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * skinnedTangent.w); #else o.normalDir = UnityObjectToWorldNormal(v.normal); - o.tangentDir = normalize( mul( unity_ObjectToWorld, float4( v.tangent.xyz, 0.0 ) ).xyz ); + o.tangentDir = normalize( mul( GetObjectToWorldMatrix(), float4( v.tangent.xyz, 0.0 ) ).xyz ); o.bitangentDir = normalize(cross(o.normalDir, o.tangentDir) * v.tangent.w); #endif @@ -122,7 +124,7 @@ float4 frag(VertexOutput i) : SV_Target // return float4(1.0f, 1.0f, 1.0f, 1.0f); // but nothing should be drawn except Z value as colormask is set to 0 // } //_Color = _BaseColor; - float4 objPos = mul ( unity_ObjectToWorld, float4(0,0,0,1) ); + float4 objPos = mul(GetObjectToWorldMatrix(), float4(0, 0, 0, 1)); //v.2.0.9 float3 envLightSource_GradientEquator = unity_AmbientEquator.rgb >0.05 ? unity_AmbientEquator.rgb : half3(0.05,0.05,0.05); float3 envLightSource_SkyboxIntensity = max(ShadeSH9(half4(0.0,0.0,0.0,1.0)),ShadeSH9(half4(0.0,-1.0,0.0,1.0))).rgb; diff --git a/Runtime/Shaders/Scene/URP/LitInput.hlsl b/Runtime/Shaders/Scene/URP/LitInput.hlsl index db0831e..94c994f 100644 --- a/Runtime/Shaders/Scene/URP/LitInput.hlsl +++ b/Runtime/Shaders/Scene/URP/LitInput.hlsl @@ -61,20 +61,20 @@ UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata) UNITY_DOTS_INSTANCED_PROP(float , _Surface) UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata) -#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__BaseColor) -#define _SpecColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__SpecColor) -#define _EmissionColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__EmissionColor) -#define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Cutoff) -#define _Smoothness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Smoothness) -#define _Metallic UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Metallic) -#define _BumpScale UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__BumpScale) -#define _Parallax UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Parallax) -#define _OcclusionStrength UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__OcclusionStrength) -#define _ClearCoatMask UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__ClearCoatMask) -#define _ClearCoatSmoothness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__ClearCoatSmoothness) -#define _DetailAlbedoMapScale UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__DetailAlbedoMapScale) -#define _DetailNormalMapScale UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__DetailNormalMapScale) -#define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Surface) +#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, _BaseColor) +#define _SpecColor UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, _SpecColor) +#define _EmissionColor UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, _EmissionColor) +#define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Cutoff) +#define _Smoothness UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Smoothness) +#define _Metallic UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Metallic) +#define _BumpScale UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _BumpScale) +#define _Parallax UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Parallax) +#define _OcclusionStrength UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _OcclusionStrength) +#define _ClearCoatMask UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _ClearCoatMask) +#define _ClearCoatSmoothness UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _ClearCoatSmoothness) +#define _DetailAlbedoMapScale UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _DetailAlbedoMapScale) +#define _DetailNormalMapScale UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _DetailNormalMapScale) +#define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Surface) #endif TEXTURE2D(_AlphaTexture); SAMPLER(sampler_AlphaTexture); diff --git a/Runtime/Shaders/Scene/URP/UnlitInput.hlsl b/Runtime/Shaders/Scene/URP/UnlitInput.hlsl index 41a2991..78618d6 100644 --- a/Runtime/Shaders/Scene/URP/UnlitInput.hlsl +++ b/Runtime/Shaders/Scene/URP/UnlitInput.hlsl @@ -17,9 +17,9 @@ UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata) UNITY_DOTS_INSTANCED_PROP(float , _Surface) UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata) -#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__BaseColor) -#define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Cutoff) -#define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Surface) +#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, _BaseColor) +#define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Cutoff) +#define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP(float, _Surface) #endif #endif