## Topics for v2.x

## Topics for v1.x

## Shader functions

The shader port in Plane9 have a few predefined functions and defines

**Defines**

Name | Description |
---|---|

PI | The value of pi 3.14159265358979323846 |

PI2 | Two times the value of pi 6.283185307179586232 |

**Functions**

Name | Description |
---|---|

float3 _hsv2rgb(float3 HSV) | Converts a HSV value to a RGB value |

float3 _hsv2rgb(float h, float s, float v) | Converts a HSV value to a RGB value |

float _perm(float pos) | Permutation value. Basically a random value but uses the values defined by perlin |

float _perm(float2 pos) | Permutation value. Basically a random value but uses the values defined by perlin |

float _noisefast(float p) | Fast perlin noise from a 1d point. This is a perlin noise approximation and it does have artifacats if used on its own. It is however fast |

float _noisefast(float2 p) | Fast perlin noise from a 2d point. This is a perlin noise approximation and it does have artifacats if used on its own. It is however fast |

float _noisefast(float3 p) | Fast perlin noise from a 3d point. This is a perlin noise approximation and it does have artifacats if used on its own. It is however fast |

float3 _noisegradientfast(float p, float d) | Gradient of a fast noise 1d value |

float3 _noisegradientfast(float2 p, float d) | Gradient of a fast noise 2d value |

float3 _noisegradientfast(float3 p, float d) | Gradient of a fast noise 3d value |

float _fbmfast(float p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Fractal sum of a 1d point |

float _fbmfast(float2 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Fractal sum of a 2d point |

float _fbmfast(float3 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Fractal sum of a 3d point |

float _turbulencefast(float p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Tubulence for a 1d point |

float _turbulencefast(float2 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Tubulence for a 2d point |

float _turbulencefast(float3 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Tubulence for a 3d point |

float _ridgedmffast(float p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Ridged multifractal of a 1d point |

float _ridgedmffast(float2 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5) | Ridged multifractal of a 2d point |

float _ridgedmffast(float3 p, int octaves, float lacunarity = 2.13628142, float gain = 0.5, float offset = 1.0) | Ridged multifractal of a 3d point |

void _voronoi(float2 position, out float f1, out float2 pos1, out float f2, out float2 pos2, float jitter = 0.9, int type = 0) | Worly Noise / Voronoi. f1/pos1 is the distance and poistion of the closest point. f2/pos2 is the distance to the next closest point. 0=Normal,1=Manhattan Distance, 2=Chebyshev distance |

void _voronoi(float3 position, out float f1, out float3 pos1, out float f2, out float3 pos2, float jitter = 0.9, int type = 0) | Worly Noise / Voronoi. f1/pos1 is the distance and poistion of the closest point. f2/pos2 is the distance to the next closest point. 0=Normal,1=Manhattan Distance, 2=Chebyshev distance |

In the above functions the arguments are as follows

Name | Description |
---|---|

Octaves | The number of octaves of noise to sum together. Higher value creates more details but is slower |

Lacunarity | For each octave of noise the frequency of the noise is increased by this amount. Prefereably avoid integer values since it reduces aliasing artifcats |

Gain | For each octave of noise the gain is increase by this amount |