sampling.wgsl
Import path
Constants
Structures
struct
GenerateRandomLightSampleResult
{
}
Functions
fn
sample_ggx_vndf
(
wi_tangent:
vec3<f32>
,
roughness:
f32
,
rng:
ptr<function, u32>
)
->
vec3<f32>
fn
sample_random_light
(
ray_origin:
vec3<f32>
,
origin_world_normal:
vec3<f32>
,
rng:
ptr<function, u32>
)
->
LightContribution
fn
resolve_light_sample
(
light_sample:
LightSample
,
light_source:
LightSource
)
->
ResolvedLightSample
fn
calculate_resolved_light_contribution
(
resolved_light_sample:
ResolvedLightSample
,
ray_origin:
vec3<f32>
,
origin_world_normal:
vec3<f32>
)
->
LightContribution
fn
resolve_and_calculate_light_contribution
(
light_sample:
LightSample
,
ray_origin:
vec3<f32>
,
origin_world_normal:
vec3<f32>
)
->
LightContributionNoPdf
https://gpuopen.com/download/Bounded_VNDF_Sampling_for_Smith-GGX_Reflections.pdf (Listing 1) Result is invalid when output.z <= 0.0, and must be discarded