The Cache shader can be used to avoid re-evaluating costly parts of the shading network with diamond connections. As that part of the network won't be calculated twice for the same shading point it will speed up renders, especially those with volumes.
In order to use the cached result, the evaluations must share the same:
Clamp input between min and max.
Compare input1 and input2 with the following operators and return true or false:
- Equal (==)
- Not Equal (!=)
- Greater Than (>)
- Less Than (<)
- Greater Than or Equal (>=)
- Less Than or Equal (<=)
Allows the output from a shader in another network to be merged into the current network.
Wireframe and Standard from different vopnets combined together.
Return the length of the input vector, with three possible distance definitions:
Euclidian: The "ordinary" length of the vector:
Quadrance: Euclidian distance squared, which is cheaper to compute:
Manhattan: Measures distance following only axis-aligned directions, which is even cheaper to compute:
Evaluate any shading network connected to the eval[1-20] inputs. The passthrough input is evaluated first and is passed as-is to the output. This shader is useful to force the evaluation of parallel shading networks that are not part of the beauty pass, whose resulting value you need to store in an AOV for example.
See AOV Read/Write.
Remap input from the [input min, input max] range to the [ouput min, output max] range linearly. The result is not clamped unless smoothstep is on, and the result is interpolated smoothly and the result is clamped in the [output min, output max] range.
Convert the Input coordinates from one space to another:
- World: Absolute world coordinates.
- Object: Local coordinates.
- Camera: Defined such that +x is right, +y is up and looks down -z.
- Screen: Defined such that +x is right, +y is up and looks down +z.
- Tangent: Defined by a tangent reference frame that is built based on the input Tangent vector and the shading normal. If Tangent is 0, the shader attempts the following actions to build the frame:
- Look for vector user data named "tangent" and "bitangent".
- Use the UV derivatives.
- Build its own local frame.
Input is interpreted according to Type when transformed:
- Point: input is a position in space
- Vector: input is a direction, the translation part of the transformation is left out
- Normal: input is a normal, transformed by the inverse transpose of the transform to preserve its angle to the surface
The input channels can be shuffled (Order) and inverted (Invert X, Invert Y, Invert Z). Also, they can be remapped to the [-1, 1] range, for instance when input is a 8-bit map to be used as signed normal or vector displacement map.
The output vector is scaled by Scale can be set as the shading normal (Set Normal).
Evaluate and return inputindex as selected by the index parameter, ranging from 1 to 20. The non-selected inputs will not be evaluated.
Below is a list of Utility shaders available in HtoA.