user: Give a detailed overview of Examples: syntax, arguments, return values, common patterns.

assistant: The coordinates provided by the *Segment Coordinates* output can be used to tile textures in a radially symmetric manner,
which is demonstrated by radially tiling a heart texture in the following examples.

|  |  |
| --- | --- |
| ../../../../_images/render_shader-nodes_radial_tiling_example_segments-5_0-heart.png   Sides: 5.0. | ../../../../_images/render_shader-nodes_radial_tiling_example_segments-6_5-heart.png   Sides: 6.5. |

[image reference removed]

Node tree for the shader above.

With an increasing number of segments the relative width of each segment decreases, eventually causing the textures to overlap and clip,
as seen on the example with *Sides* set to 6.5. Apart from that, the non-integer *Sides* value in that example
results in even more significant clipping due to the irregular segment that is smaller than the regular segments.
To avoid this clipping, the *Segment Width* output can be used to scale the textures according to the relative width of each segment.

|  |  |
| --- | --- |
| ../../../../_images/render_shader-nodes_radial_tiling_example_segments-5_0-heart-scaled.png   Sides: 5.0. | ../../../../_images/render_shader-nodes_radial_tiling_example_segments-6_5-heart-scaled.png   Sides: 6.5. |

[image reference removed]

Node tree for the shader above. The value 0.725 is an arbitrarily chosen texture scaling value and can be tweaked to change the size of the textures.

By default the segment coordinate systems are rotated to have their Y-axes intersect with the origin.
The *Segment Rotation* output can be used to align the rotation of the segment coordinate systems along a global direction instead.

|  |  |
| --- | --- |
| ../../../../_images/render_shader-nodes_radial_tiling_example_segments-5_0-heart-scaled-rotated.png   Sides: 5.0. | ../../../../_images/render_shader-nodes_radial_tiling_example_segments-6_5-heart-scaled-rotated.png   Sides: 6.5. |

[image reference removed]

Node tree for the shader above. The value -1.571 is an arbitrarily chosen texture rotation value and can be tweaked to change the rotation of the textures.

When working with textures that span the entire UV space there is always the issue of visible seams along segment borders even if the original texture is seamless.
The *Normalize* option eliminates these visible seams by ensuring that the X-coordinates always only cover the entire 0 to range 1.
This also introduces a zoom effect, which depending on whether or not it’s desirable may need to be mitigated using additional nodes.

|  |  |
| --- | --- |
| ../../../../_images/render_shader-nodes_radial_tiling_example_normalize-disabled-pavement.png   Normalize: Disabled. | ../../../../_images/render_shader-nodes_radial_tiling_example_normalize-enabled-pavement.png   Normalize: Enabled. |

For some textures it may be useful to create a more rounded appearance in the vicinity of segment borders,
which can be done by setting the roundness of the segment coordinate systems using the *Roundness* input.

|  |  |  |  |
| --- | --- | --- | --- |
| ../../../../_images/render_shader-nodes_radial_tiling_example_roundness-0_0-pavement.png   Roundness: 0.0. | ../../../../_images/render_shader-nodes_radial_tiling_example_roundness-0_25-pavement.png   Roundness: 0.25. | ../../../../_images/render_shader-nodes_radial_tiling_example_roundness-0_5-pavement.png   Roundness: 0.5. | ../../../../_images/render_shader-nodes_radial_tiling_example_roundness-1_0-pavement.png   Roundness: 1.0. |