# Normal Blend Node ## Description Blends two normal maps defined by inputs **A** and **B** together, normalizing the result to create a valid normal map. ## Ports | Name | Direction | Type | Binding | Description | |:------------ |:-------------|:-----|:---|:---| | A | Input | Vector 3 | None | First input value | | B | Input | Vector 3 | None | Second input value | | Out | Output | Vector 3 | None | Output value | ## Controls | Name | Type | Options | Description | |:------------ |:-------------|:-----|:---| | Mode | Dropdown | Default, Reoriented | Selects the the method used for blending. | ## Generated Code Example The following example code represents one possible outcome of this node per **Mode**. **Default** ``` void Unity_NormalBlend_float(float3 A, float3 B, out float3 Out) { Out = normalize(float3(A.rg + B.rg, A.b * B.b)); } ``` **Reoriented** ``` void Unity_NormalBlend_Reoriented_float(float3 A, float3 B, out float3 Out) { float3 t = A.xyz + float3(0.0, 0.0, 1.0); float3 u = B.xyz * float3(-1.0, -1.0, 1.0); Out = (t / t.z) * dot(t, u) - u; } ```