Shader Explorer
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.

presample_light_tiles.wgsl

Import path

Bindings

light_tile_samples

#
@group(1)
@binding(1)
var<storage, read_write> light_tile_samples: array<LightSample>

light_tile_resolved_samples

#
@group(1)
@binding(2)
var<storage, read_write> light_tile_resolved_samples: array<ResolvedLightSamplePacked>

view

#
@group(1)
@binding(12)
var<uniform> view: View

Structures

PushConstants

#
struct PushConstants {
frame_index: u32 ,
reset: u32 ,
}

ResolvedLightSamplePacked

#
struct ResolvedLightSamplePacked {
world_position_x: f32 ,
world_position_y: f32 ,
world_position_z: f32 ,
world_normal: u32 ,
radiance: u32 ,
inverse_pdf: f32 ,
}

Functions

presample_light_tiles

#
@compute
Runs custom parallel code on the GPU, not limited to graphics
@workgroup_size(1024, 1, 1)
Defines the size of a thread group. One to three numbers: width (x), height (y), and depth (z). Missing values default to 1
fn presample_light_tiles (
@builtin(workgroup_id)
workgroup_id: vec3<u32>
@builtin(local_invocation_index)
sample_index: u32
)

pack_resolved_light_sample

#
fn pack_resolved_light_sample ( ) -> ResolvedLightSamplePacked

unpack_resolved_light_sample

#
fn unpack_resolved_light_sample (
exposure: f32
) -> ResolvedLightSample