Utility nodes
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
In the Shader Designer, utility nodes represent common, useful shader calculations that don't fit neatly into the other categories. Some utility nodes perform simple operations such as appending vectors together or choosing results conditionally, and others perform complex operations such as computing lighting contributions according to popular lighting models.
Utility node reference
Node | Details | Properties |
---|---|---|
Append Vector | Creates a vector by appending the specified inputs together. Input: Vector : float , float2 , or float3 The values to append to. Value to Append : float The value to append. Output: Output : float2 , float3 , or float4 depending on the type of input Vector The new vector. |
None |
Fresnel | Computes the Fresnel fall-off based on the specified surface normal. The Fresnel fall-off value expresses how closely the surface normal of the current pixel coincides with the view vector. When the vectors are aligned, the result of the function is 0; the result increases as the vectors become less similar, and reaches its maximum when the vectors are orthogonal. You can use this to make an effect more or less apparent based on the relationship between the orientation of the current pixel and the camera. Input: Surface Normal : float3 The surface normal of the current pixel, defined in the current pixel's tangent space. You can use this to perturb the apparent surface normal, as in normal mapping. Output: Output : float The reflectivity of the current pixel. |
Exponent The exponent that's used to calculate the Fresnel fall-off. |
If | Conditionally chooses one of three potential results per component. The condition is defined by the relationship between two other specified inputs. For each component of the result, the corresponding component of one of the three potential results is chosen, based on the relationship between the corresponding components of the first two inputs. Input: X : float , float2 , float3 , or float4 The left-hand side value to compare. Y : same type as input X The right-hand side value to compare. X > Y : same type as input X The values that are chosen when X is greater than Y .X = Y : same type as input X The values that are chosen when X is equal to Y .X < Y : same type as input X The values that are chosen when X is less than Y .Output: Output : float3 The chosen result, per component. |
None |
Lambert | Computes the color of the current pixel according to the Lambert lighting model, by using the specified surface normal. This color is the sum of ambient color and diffuse lighting contributions under direct lighting. Ambient color approximates the total contribution of indirect lighting, but looks flat and dull without the help of additional lighting. Diffuse lighting helps add shape and depth to an object. Input: Surface Normal : float3 The surface normal of the current pixel, defined in the current pixel's tangent space. You can use this to perturb the apparent surface normal, as in normal mapping. Diffuse Color : float3 The diffuse color of the current pixel, typically the Point Color. If no input is provided, the default value is white. Output: Output : float3 The diffuse color of the current pixel. |
None |
Mask Vector | Masks components of the specified vector. You can use this to remove specific color channels from a color value, or to prevent specific components from having an effect on subsequent calculations. Input: Vector : float4 The vector to mask. Output: Output : float4 The masked vector. |
Red / X False to mask out the red (x) component; otherwise, True. Green / Y False to mask out the green (y) component; otherwise, True. Blue / Z False to mask out the blue (z) component; otherwise, True. Alpha / W False to mask out the alpha (w) component; otherwise, True. |
Reflection Vector | Computes the reflection vector for the current pixel in tangent space, based on the camera position. You can use this to calculate reflections, cubemap coordinates, and specular lighting contributions Input: Tangent Space Surface Normal : float3 The surface normal of the current pixel, defined in the current pixel's tangent space. You can use this to perturb the apparent surface normal, as in normal mapping. Output: Output : float3 The reflection vector. |
None |
Specular | Computes the specular lighting contribution according to the Phong lighting model, by using the specified surface normal. Specular lighting gives a shiny, reflective appearance to an object, for example, water, plastic, or metals. Input: Surface Normal : float3 The surface normal of the current pixel, defined in the current pixel's tangent space. You can use this to perturb the apparent surface normal, as in normal mapping. Output: Output : float3 The color contribution of specular highlights. |
None |