Unity Web Shader IDE
Full source <URP>/Shaders/2D/Include/Normals2DCommon.hlsl HLSL 36 lines 10 symbols 1 includes Hide source Show source
Normals2DCommon.hlsl <URP>/Shaders/2D/Include/Normals2DCommon.hlsl
Language
HLSL
Lines
36
Symbols
10
Includes
1
Open IDE root

<URP>/Shaders/2D/Include/Normals2DCommon.hlsl full source

#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