shade.wgsl
Import path
Constants
INV_PI
#CREST_FOAM_WHITE_COLOR
#CREST_FOAM_BUBBLE_COLOR
#CREST_FOAM_BUBBLE_PARALLAX
#CREST_FOAM_BUBBLE_COVERAGE
#CREST_FOAM_NORMAL_STRENGTH
#CREST_FOAM_SPECULAR_FALLOFF
#CREST_FOAM_SPECULAR_BOOST
#FINE_FOAM_ROTATION
#
const
FINE_FOAM_ROTATION:
mat2x2<f32>
=
mat2x2(
vec2(0.798636, 0.601815),
vec2(-0.601815, 0.798636),
)
FINE_FOAM_SCROLL_DIRECTION
#FINE_FOAM_SCALE
#CREST_FOAM_LINEAR_MEAN
#Functions
cubic_weights
#sample_foam_bicubic
#sample_foam_cascade
#sample_foam_density
#surface_foam_mask
#river_streak_density
#Add elongated, flow-aligned foam where fast water meets a bank.
foam_bubble_colour
#local_foam_light
#
fn
local_foam_light
(
sample:
LocalLightSample
,
foam_normal:
vec3<f32>
,
to_view:
vec3<f32>
)
->
vec3<f32>
GodotOceanWaves
water.gdshader: cubic B-spline weights for the GPU Gems 2 four-bilinear-tap approximation to bicubic filtering.