Wave texture diagonal direction is not practical.
Internet is filled with questions and discussions how to align Wave texture to an axis. Users often adds Mapping node and counter-rotate input vector to achieve this. Obviously this is unintuitive, inconvenient and have some performance impact.
In case of Rings type users sometimes zero-out one coordinate component with Separate/Combine nodes. This way texture aligns to an axis but it also makes pattern effectively 2D.
Make texture align to an axis by default. Allow users to choose different axes, including old diagonal one.
This patch adds easy to use direction modes.
Bands and Rings types work differently and need separate properties - Bands Direction and Rings Direction.
- In Bands type we align wave across X, Y, Z or Diagonal axis. This use respective coordinate component or adds them together for diagonal direction as previously.
- In Rings type we align wave along X, Y, Z axes or Spherical distance. This works by making corresponding coordinate components infinite, before evaluating vector length and adding 3D noise. Spherical option computes length on original vector like before.
- Both properties are set to X by default. Old materials are handled in versioning code.
My patch also adds Phase Offset input. As name suggest it offsets wave pattern along it's direction. This feature can be used for:
- Additional distortion, possibly with texture of different properties than built-in noise.
- Adding knots to wood materials, that often base upon this node.
Test-build for users can be downloaded here: https://www.dropbox.com/s/0zfqkpn80m8mk4a/blender_wave_directions.zip?dl=0