Advanced search tips: use spaces to require multiple terms (AND), | for alternatives (OR), wrap phrases in quotes (="a b"), =term for exact match, 'term to include, !term to exclude, ^term to match prefix, !^term to exclude prefix, .ext$ to match suffix, and !.ext$ to exclude suffix.

shade.wgsl

Import path

Constants

INV_PI

#
const INV_PI: f32 = 0.31830988618

CREST_FOAM_WHITE_COLOR

#
const CREST_FOAM_WHITE_COLOR: vec4<f32> = vec4( 1.0, 0.99634784, 0.97199994, 0.6862745, )

CREST_FOAM_BUBBLE_COLOR

#
const CREST_FOAM_BUBBLE_COLOR: vec3<f32> = vec3(0.64, 0.83, 0.82)

CREST_FOAM_BUBBLE_PARALLAX

#
const CREST_FOAM_BUBBLE_PARALLAX: f32 = 0.14

CREST_FOAM_BUBBLE_COVERAGE

#
const CREST_FOAM_BUBBLE_COVERAGE: f32 = 1.68

CREST_FOAM_NORMAL_STRENGTH

#
const CREST_FOAM_NORMAL_STRENGTH: f32 = 3.5

CREST_FOAM_SPECULAR_FALLOFF

#
const CREST_FOAM_SPECULAR_FALLOFF: f32 = 293.0

CREST_FOAM_SPECULAR_BOOST

#
const CREST_FOAM_SPECULAR_BOOST: f32 = 0.15

FINE_FOAM_ROTATION

#
const FINE_FOAM_ROTATION: mat2x2<f32> = mat2x2( vec2(0.798636, 0.601815), vec2(-0.601815, 0.798636), )

FINE_FOAM_SCROLL_DIRECTION

#
const FINE_FOAM_SCROLL_DIRECTION: vec2<f32> = vec2(-0.819152, 0.573576)

FINE_FOAM_SCALE

#
const FINE_FOAM_SCALE: f32 = 0.55

CREST_FOAM_LINEAR_MEAN

#
const CREST_FOAM_LINEAR_MEAN: f32 = 0.426906

Functions

cubic_weights

#

GodotOceanWaves water.gdshader: cubic B-spline weights for the GPU Gems 2 four-bilinear-tap approximation to bicubic filtering.

fn cubic_weights (
value: f32
) -> vec4<f32>

sample_foam_bicubic

#
fn sample_foam_bicubic (
layer: i32
resolution: f32
) -> f32

sample_foam_cascade

#
fn sample_foam_cascade (
world_xz: vec2<f32>
layer: i32
) -> f32

sample_foam_density

#
fn sample_foam_density (
world_xz: vec2<f32>
lod: u32
alpha: f32
) -> f32

surface_foam_mask

#
fn surface_foam_mask (
advected_xz: vec2<f32>
lod: u32
alpha: f32
density: f32
sample_offset: vec2<f32>
) -> f32

river_streak_density

#

Add elongated, flow-aligned foam where fast water meets a bank.

fn river_streak_density (
world_xz: vec2<f32>
lod: u32
alpha: f32
) -> f32

foam_bubble_colour

#
fn foam_bubble_colour (
displaced_xz: vec2<f32>
undisplaced_xz: vec2<f32>
lod: u32
alpha: f32
density: f32
surface_normal: vec3<f32>
to_view: vec3<f32>
ambient_radiance: vec3<f32>
) -> vec3<f32>

local_foam_light

#
fn local_foam_light (
foam_normal: vec3<f32>
to_view: vec3<f32>
) -> vec3<f32>