2023-10-11 23:24:18 +05:30
# Godot-Shader-Lib
Visual shader node library for Godot engine.
2023-10-12 00:45:19 +05:30
Adds various extra nodes to use in built-in visual shader editor.
2023-10-12 23:06:13 +05:30
# Installation
2023-10-12 18:56:05 +05:30
Copy the contents of **_addons/ShaderLib_** into the same folder in your project. No activation needed. Custom visual shader nodes work the same way as standard visual shader nodes.
2023-10-12 23:06:13 +05:30
# Uninstallation
2023-10-12 00:45:19 +05:30
Delete the contents of **_addons/ShaderLib_** folder from your project. Make sure to delete it using the Godot editor instead of your default file system program.
2023-10-12 23:06:13 +05:30
# Nodes documentation
< details >
< summary > < h1 > Procedural nodes< / h1 > < / summary >
2023-10-12 22:26:05 +05:30
< details >
2023-10-13 01:01:40 +05:30
< summary > < h3 > Checker Board node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Generates a checkerboard of alternating colors between inputs < b > < i > color A< / i > < / b > and < b > < i > color B< / i > < / b > based on input UV.
< hr >
2023-10-13 01:01:40 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|color a|vec3|none|First checker color|
|color b|vec3|none|Second checker color|
|frequency|vec2|none|Scale of checkerboard per axis|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|output|vec3|None|Output checkerboard value|
___
< / details >
< details >
2023-10-12 23:11:15 +05:30
< summary > < h2 > Noise< / h2 > < / summary >
< details >
2023-10-13 00:52:51 +05:30
< summary > < h3 > Gradient Noise node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Generates a gradient, or Perlin, noise based on input UV. The resulting < b > < i > output< / i > < / b > values will be between -1 and 1.
< hr >
2023-10-13 00:52:51 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|scale|float|none|Noise scale|
2023-10-13 00:58:01 +05:30
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|output|float|None|Output noise value|
___
< / details >
< details >
< summary > < h3 > Simple Noise node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Generates a simple, or Value, noise based on input UV. The resulting < b > < i > output< / i > < / b > values will be between 0 and 1.
< hr >
2023-10-13 00:58:01 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|scale|float|none|Noise scale|
2023-10-13 00:52:51 +05:30
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|output|float|None|Output noise value|
___
< / details >
< details >
2023-10-12 23:06:13 +05:30
< summary > < h3 > Voronoi node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Generates a Voronoi or Worley noise based on input UV. Voronoi noise is generated by calculating distances between a pixel and a lattice of points. By offsetting these points by a pseudo-random number, controlled by < b > < i > angle offset< / i > < / b > , a cluster of cells can be generated.
< hr >
2023-10-12 19:54:09 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|cell density|float|none|Density of generated cells|
|angle offset|float|none|Offset values for points|
2023-10-12 23:06:13 +05:30
2023-10-12 19:54:09 +05:30
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|output|float|None|Output noise value|
|cells|float|None|Raw cell data|
2023-10-12 00:45:19 +05:30
___
2023-10-12 23:06:13 +05:30
< / details >
< / details >
2023-10-13 20:53:11 +05:30
< details >
< summary > < h2 > Shapes< / h2 > < / summary >
< details >
< summary > < h3 > Ellipse node< / h3 > < / summary >
Generates an ellipse shape based on input UV at the size specified by inputs < b > < i > width< / i > < / b > and < b > < i > height< / i > < b > . The generated shape can be offset or tiled by connecting a < b > < i > TilingAndOffset< / i > < / b > node. Note that in order to preserve the ability to offset the shape within the UV space the shape will not automatically repeat if tiled. To achieve a repeating dot effect first connect your < b > < i > TilingAndOffset< / i > < / b > output through a < b > < i > Fraction< / i > < / b > node.
< hr >
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|width|float|none|Ellipse width|
|height|float|none|Ellipse height|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|output|float|None|Output ellipse value|
___
< / details >
< / details >
2023-10-12 23:11:15 +05:30
< / details >
2023-10-12 23:06:13 +05:30
< details >
< summary > < h1 > UV nodes< / h1 > < / summary >
< details >
< summary > < h3 > Flipbook node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Creates a flipbook, or texture sheet animation, of the UVs supplied to input UV. The amount of tiles on the sheet are defined by the values of the inputs < b > < i > rows< / i > < / b > and < b > < i > columns< / i > < / b > .
2023-10-12 00:45:19 +05:30
This node can be used to create a texture animation functionality, commonly used for particle effects and sprites, by supplying Time to the input Tile and outputting to the UV input slot of a Texture Sampler.
2023-10-13 14:37:21 +05:30
< hr >
2023-10-12 00:45:19 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|rows|int|none|Amount of horizontal tiles in texture sheet|
|columns|int|none|Amount of vertical tiles in texture sheet|
|start frame|int|none|Start tile index texture sheet|
|end frame|int|none|End tile index texture sheet|
|anim speed|float|none|Animation speed|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< details >
< summary > < h3 > Radial Shear node< / h3 > < / summary >
2023-10-12 01:13:45 +05:30
Applies a radial shear warping effect similar to a wave to the value of input UV.
2023-10-13 14:37:21 +05:30
< hr >
2023-10-12 01:13:45 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|center|vec2|none|Center reference point|
|strength|float|none|Strength of the effect|
|offset|vec2|none|Individual channel offsets|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< details >
< summary > < h3 > Rotate node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Rotates value of input UV around a reference point defined by input < b > < i > center< / i > < / b > by the amount of input < b > < i > rotation< / i > < / b > .
< hr >
2023-10-12 18:40:21 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|center|vec2|none|Center reference point|
|rotation|float|none|Rotation amount in radians|
2023-10-13 14:37:21 +05:30
|use degrees|bool|none|Use degrees instead of radians for < b > < i > rotation< / i > < / b > amount|
2023-10-12 18:40:21 +05:30
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< details >
< summary > < h3 > Spherize node< / h3 > < / summary >
2023-10-12 18:55:43 +05:30
Applies a spherical warping effect similar to a fisheye camera lens to the value of input UV.
2023-10-13 14:37:21 +05:30
< hr >
2023-10-12 18:55:43 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|center|vec2|none|Center reference point|
|strength|float|none|Strength of the effect|
|offset|vec2|none|Individual channel offsets|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< details >
< summary > < h3 > Tiling and Offset node< / h3 > < / summary >
2023-10-13 14:37:21 +05:30
Tiles and offsets the value of input UV by the inputs < b > < i > tiling< / i > < / b > and < b > < i > offset< / i > < / b > respectively. This is commonly used for detail maps and scrolling textures over TIME.
< hr >
2023-10-12 19:11:02 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|tiling|vec2|none|Amount of tiling to apply per channel|
|offset|vec2|none|Amount of offset to apply per channel|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< details >
< summary > < h3 > Twirl node< / h3 > < / summary >
2023-10-12 19:29:10 +05:30
Applies a twirl warping effect similar to a black hole to the value of input UV.
2023-10-13 14:37:21 +05:30
< hr >
2023-10-12 19:29:10 +05:30
**Inputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|UV|Input UV value|
|center|vec2|none|Center reference point|
|strength|float|none|Strength of the effect|
|offset|vec2|none|Individual channel offsets|
**Outputs**
|Name|Type|Binding|Description|
|---|---|---|---|
|uv|vec2|None|Output UV value|
___
2023-10-12 23:06:13 +05:30
< / details >
< / details >