forked from BilalY/Rasagar
1.1 KiB
1.1 KiB
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;
}