====== Weave ======
This shader renders a simple weave made out of threads, can be used for carbon fiber, cloth, or similar.
Since the threads are rendered along the U and V coordinates, it requires a Projection.
This node is based on the [[https://github.com/ADN-DevTech/3dsMax-OSL-Shaders/blob/master/3ds%20Max%20Shipping%20Shaders/Weave.osl|3dsMax Weave OSL shader]]. \\ Developed by Zap Andersson, Copyright 2018 Autodesk Inc, All rights reserved. Licensed under [[https://github.com/ADN-DevTech/3dsMax-OSL-Shaders/blob/master/LICENSE.txt|Apache 2.0 license]].
===== Inputs =====
==== Projection ====
Connect a Projection node to define the texture projection used for the Weave. If it's not connected, the default UV Map will be used if has been defined.
The other inputs correspond to the controls exposed in the panel.
===== Outputs =====
{{ :tools:pasted:20191125-114938.png}}
==== Colour ====
Returns the final output colour of the threads on top of the background colour.
==== ID ====
Returns a random ID for each thread
==== Opacity ====
Returns the opacity of the threads. If **Opacity Fade** is set to 0%, this is essentially a mask for the threads. If it set to 100%, it includes the effects of the Round Shadow and the Weave Shadow settings.
==== Displacement ====
Returns the displacement due to the threads.
For now, there is no bump or normal output since the original shader doesn't compute it.
===== Parameters =====
All of the parameters may be animated or overridden by node inputs, with the exception of the Random Seed, due to performance reasons.
==== Background Colour ====
Since the shader renders threads on top of a background, this allows you to define the background colour.
==== Scale ====
The spacing and scale of the threads. The smaller the scale, the more there are.
==== Width ====
The width of the threads as a percentage to the next thread.
==== U Colour / V Colour ====
The colour of the threads along U and V.
==== Roundness / Weave ====
=== Roundness ===
{{:tools:weaveroundness.png?nolink&600|}}
This tints the fibres to add pseudo-shading to make them look round.
This works in conjunction with Round Shadow, both need to be higher than 0% for en effect to be seen.
Round Shadow defines the strength of the shading, the Roundness how much of the fibre is covered.
=== Roundness Displacement ===
Adds this much displacement due to Roundness to the Displacement output.
=== Round Shadow ===
{{:tools:weaveroundshadow.png?nolink&600|}}
Adds a fake, ambient occlusion style shadow to the Roundness shading.
=== Weave Displacement ===
Adds this much displacement due to the weaving to the Displacement output.
=== Weave Shadow ===
{{:tools:weaveshadow.png?nolink&600|}}
Adds a fake, ambient occlusion style shadow of the top fibres to the ones underneath it.
==== Frizz / Bendyness ====
=== Frizz ===
{{:tools:weavefrizz.png?nolink&600|}}
This changes the width of individual fibres along their length.
=== Frizz Displacement ===
Controls how much of the Frizz is added to the final Displacement.
=== Frizz Scale ===
This controls the the frequency of the change in width.
=== Bendyness ===
{{:tools:weavebendyness.png?nolink&600|}}
This randomizes the width of the fibres.
=== Bendyness Scale===
Controls the frequency of the Bendyness.
==== Opacity Fade ====
Controls if the Opacity Output will just return the opacity for the threads or the opacity of the threads modified by the Round Shadow and Weave Shadow effects.
==== Random Seed ====
This is used as the base for the noise function used to randomise some of the settings, such as Frizz and Bendyness. A different seed will retain the same general style but with different distributions.