36 lines
1.1 KiB
HLSL
36 lines
1.1 KiB
HLSL
#ifndef _NORMALS_2D_COMMON
|
|
#define _NORMALS_2D_COMMON
|
|
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/NormalsRenderingShared.hlsl"
|
|
|
|
TEXTURE2D(_MainTex);
|
|
SAMPLER(sampler_MainTex);
|
|
UNITY_TEXTURE_STREAMING_DEBUG_VARS_FOR_TEX(_MainTex);
|
|
|
|
TEXTURE2D(_NormalMap);
|
|
SAMPLER(sampler_NormalMap);
|
|
|
|
Varyings CommonNormalsVertex(Attributes input)
|
|
{
|
|
Varyings o = (Varyings) 0;
|
|
UNITY_SETUP_INSTANCE_ID(input);
|
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
|
|
|
o.positionCS = TransformObjectToHClip(input.positionOS);
|
|
o.uv = input.uv;
|
|
o.normalWS = TransformObjectToWorldDir(input.normal);
|
|
o.tangentWS = TransformObjectToWorldDir(input.tangent.xyz);
|
|
o.bitangentWS = cross(o.normalWS, o.tangentWS) * input.tangent.w;
|
|
return o;
|
|
}
|
|
|
|
half4 CommonNormalsFragment(Varyings input, half4 color)
|
|
{
|
|
const half4 mainTex = color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, input.uv);
|
|
const half3 normalTS = UnpackNormal(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, input.uv));
|
|
|
|
return NormalsRenderingShared(mainTex, normalTS, input.tangentWS.xyz, input.bitangentWS.xyz, input.normalWS.xyz);
|
|
}
|
|
|
|
#endif // _NORMALS_2D_COMMON
|