# Branch Node ## Description Provides a dynamic branch to the shader. If input **Predicate** is true the return output will be equal to input **True**, otherwise it will be equal to input **False**. This is determined per vertex or per pixel depending on shader stage. Both sides of the branch will be calculated in the shader, even if one is never output. ## Ports | Name | Direction | Type | Binding | Description | |:------------ |:-------------|:-----|:---|:---| | Predicate | Input | Boolean | None | Determines which input to returned | | True | Input | Dynamic Vector | None | Returned if **Predicate** is true | | False | Input | Dynamic Vector | None | Returned if **Predicate** is false | | Out | Output | Boolean | None | Output value | ## Generated Code Example The following example code represents one possible outcome of this node. ``` void Unity_Branch_float4(float Predicate, float4 True, float4 False, out float4 Out) { Out = lerp(False, True, Predicate); } ```