1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef SPRITE_NORMALS_PASS_URP_INCLUDED
- #define SPRITE_NORMALS_PASS_URP_INCLUDED
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl"
- #include "../Include/SpineCoreShaders/ShaderShared.cginc"
- #include "../Include/SpineCoreShaders/SpriteLighting.cginc"
- struct Varyings
- {
- float4 positionCS : SV_POSITION;
- float4 color : COLOR;
- float2 uv : TEXCOORD0;
- float3 normalWS : TEXCOORD1;
- float3 tangentWS : TEXCOORD2;
- float3 bitangentWS : TEXCOORD3;
- };
- SAMPLER(sampler_BumpMap);
- float4 _BumpMap_ST;
- Varyings NormalsRenderingVertex(VertexInput attributes)
- {
- Varyings o = (Varyings)0;
- o.positionCS = calculateLocalPos(attributes.vertex);
- o.uv = attributes.texcoord.xy;
- o.color = attributes.color;
- o.normalWS = TransformObjectToWorldDir(float3(0, 0, -1));
- float3 positionWS = TransformObjectToWorld(attributes.vertex.xyz);
- float backFaceSign = 1;
- #if defined(FIXED_NORMALS_BACKFACE_RENDERING)
- backFaceSign = calculateBackfacingSign(positionWS.xyz);
- #endif
- half3 normalWS = calculateSpriteWorldNormal(attributes, -backFaceSign);
- o.normalWS.xyz = normalWS;
- #if defined(_NORMALMAP)
- o.tangentWS.xyz = calculateWorldTangent(attributes.tangent);
- o.bitangentWS.xyz = calculateSpriteWorldBinormal(attributes, o.normalWS.xyz, o.tangentWS.xyz, backFaceSign);
- #endif
- return o;
- }
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl"
- half4 NormalsRenderingFragment(Varyings i) : SV_Target
- {
- half4 mainTex = i.color * tex2D(_MainTex, i.uv);
- #if defined(_NORMALMAP)
- half3 normalTS = normalize(UnpackScaleNormal(tex2D(_BumpMap, i.uv.xy), _BumpScale));
- return NormalsRenderingShared(mainTex, normalTS, i.tangentWS.xyz, i.bitangentWS.xyz, i.normalWS.xyz);
- #else
- half3 normalTS = half3(0, 0, 1);
- half3 tangentWS = half3(0, 0, 0);
- half3 bitangentWS = half3(0, 0, 0);
- half3 normalWS = i.normalWS.xyz;
- return NormalsRenderingShared(mainTex, normalTS, tangentWS, bitangentWS, normalWS);
- #endif
- }
- #endif
|