This project aims to help Godot developers writing custom written shaders by providing high-level functions which are often used.
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:
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.
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.
Click me to enlarge
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
greyscale
hsv_to_rgb
rgb_to_hsv
hsv_adjustment
psrdnoise3_with_gradient
psrdnoise3
psrdnoise2_with_gradient
psrdnoise2
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_panning
uv_scaling
uv_rotate
uv_polar_coord_*
uv_flipbook
uv_twirl
uv_grid_tiler
sawtooth_wave
sine_wave
sine_wave_angular
square_wave
triangle_wave
polygon
circle
square
square_stroke
square_rounded
swirl
line