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.

types.wgsl

Import path

Structures

SurfaceVertexOutput

#
struct SurfaceVertexOutput {
@builtin(position)
position: vec4<f32> ,
@location(0)
world_position: vec4<f32> ,
@location(1)
world_normal: vec3<f32> ,
@location(2)
undisplaced_xz: vec2<f32> ,
@location(3)
sample_data: vec3<f32> ,
@location(4)
base_world_position: vec3<f32> ,
}

CameraDepthPath

#
struct CameraDepthPath {
path_length: f32 ,
screen_uv: vec2<f32> ,
scene_z: f32 ,
has_background: bool ,
}

CameraDepthDebug

#
struct CameraDepthDebug {
path_length: f32 ,
screen_uv: vec2<f32> ,
refracted_uv: vec2<f32> ,
refracted_sample_valid: bool ,
has_background: bool ,
}

NearSurface

#
struct NearSurface {
normal: vec3<f32> ,
lighting_normal: vec3<f32> ,
lighting_distance: f32 ,
lighting_normal_strength: f32 ,
filtered_detail_variance: f32 ,
}

PrimaryLightState

#
struct PrimaryLightState {
view_z: f32 ,
point_start: u32 ,
spot_start: u32 ,
light_end: u32 ,
shadow: f32 ,
color: vec3<f32> ,
radiance: vec3<f32> ,
}

MediumState

#
struct MediumState {
deep_body_albedo: vec3<f32> ,
diffuse_irradiance: vec3<f32> ,
water_depth: f32 ,
foam_density: f32 ,
}

FoamState

#
struct FoamState {
visible_density: f32 ,
white_density: f32 ,
white_mask: f32 ,
depth_path: CameraDepthPath ,
has_depth_path: bool ,
}

TransmissionState

#
struct TransmissionState {
body: vec3<f32> ,
output: vec4<f32> ,
handled: bool ,
}

BodyLightingState

#
struct BodyLightingState {
body: vec3<f32> ,
foam_ambient: vec3<f32> ,
fresnel: f32 ,
foam_roughness: f32 ,
environment_roughness: f32 ,
sun_roughness: f32 ,
}

LocalLightingState

#
struct LocalLightingState {
body: vec3<f32> ,
reflected: vec3<f32> ,
foam_radiance: vec3<f32> ,
foam_normal: vec3<f32> ,
}