https://github.com/paddy-exe/shaderfunction-extras
An addon with a lot of helpful functions for Godot 4.0 to use in custom written shaders
https://github.com/paddy-exe/shaderfunction-extras
Last synced: 3 months ago
JSON representation
An addon with a lot of helpful functions for Godot 4.0 to use in custom written shaders
- Host: GitHub
- URL: https://github.com/paddy-exe/shaderfunction-extras
- Owner: paddy-exe
- License: mit
- Created: 2023-03-08T22:40:41.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-18T23:38:58.000Z (about 2 years ago)
- Last Synced: 2025-01-14T22:51:34.308Z (11 months ago)
- Homepage:
- Size: 44.9 KB
- Stars: 106
- Watchers: 6
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# ShaderFunction-Extras

This project aims to help Godot developers writing custom written shaders by providing high-level functions which are often used.
## :tada: Using the addon
Download the source (releases and AssetLib version are still WIP) and put the `ShaderFunction-Extras` inside
your `addons` folder. If you don't have one, create it or put the whole addons folder inside your project directory.
After that, you can include the include files you need in your shader like this:

## 🔢 Versioning
This repository is only meant for projects created with Godot 4.0 and upwards. However, if you are using Godot 3.x and want to
use specific functions, you can copy and paste it inside your shader code still.
## ℹ️ Contributing
All these shader functions are based on publicly available shader functions (open-source licensed with permissive licenses such as MIT). If you want to contribute a function, create an issue starting with `Proposal: ...` describing the shader function and why you think it should be included in here. We can then discuss on how this function and its parameters should be called (for clarity of the users). After that you are open to create a PR (Pull Request) with the dicussed details of the proposal.
## Provided Functions
Click me to enlarge
### Color
#### Blend Modes
* `blend_normal`
* `blend_dissolve`
* `blend_multiply`
* `blend_screen`
* `blend_overlay`
* `blend_hard_light`
* `blend_soft_light`
* `blend_burn`
* `blend_dodge`
* `blend_lighten`
* `blend_darken`
* `blend_difference`
* `blend_additive`
* `blend_addsub`
* `blend_linear_light`
* `blend_vivid_light`
* `blend_pin_light`
* `blend_hard_mix`
* `blend_exclusion`
#### Color Adjustment
* `greyscale`
* `hsv_to_rgb`
* `rgb_to_hsv`
* `hsv_adjustment`
### Noise
* `psrdnoise3_with_gradient`
* `psrdnoise3`
* `psrdnoise2_with_gradient`
* `psrdnoise2`
### Utility
* `depth_camera_*`
* `depth_vertex_*`
* `linear_scene_depth_*`
* `distance_fade`
* `proximity_camera_fade_*`
* `proximity_vertex_fade_*`
* `world_position_from_depth_*`
* `screen_normal_world_space`
* `rotation_matrix_by_axis`
* `rotate_by_axis`
* `random_range`
* `remap`
* `fresnel`
* `fresnel_glow`
* `smooth_clamp`
* `soft_clamp`
* `saturate`
* `vertex_billboard`
### UV
* `uv_panning`
* `uv_scaling`
* `uv_rotate`
* `uv_polar_coord_*`
* `uv_flipbook`
* `uv_twirl`
* `uv_grid_tiler`
### Wave
* `sawtooth_wave`
* `sine_wave`
* `sine_wave_angular`
* `square_wave`
* `triangle_wave`
### Shapes
* `polygon`
* `circle`
* `square`
* `square_stroke`
* `square_rounded`
* `swirl`
* `line`