Skip to content

Commit

Permalink
Upgrade hassle-rs to 0.10 (#76)
Browse files Browse the repository at this point in the history
* Upgrade hassle-rs to 0.10

* readme

* fmt
  • Loading branch information
h3r2tic authored Mar 10, 2023
1 parent 62a6435 commit d3b6ac2
Show file tree
Hide file tree
Showing 57 changed files with 207 additions and 208 deletions.
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ Operating systems:

### (Some) Linux dependencies

* `libtinfo5`
* `uuid-dev`
* In case the bundled `libdxcompiler.so` doesn't work: <https://github.com/microsoft/DirectXShaderCompiler#downloads>

Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/inc/bilinear.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ float4 get_bilinear_custom_weights(Bilinear f, float4 custom_weights) {

float4 apply_bilinear_custom_weights(float4 s00, float4 s10, float4 s01, float4 s11, float4 w, bool normalize = true) {
float4 r = s00 * w.x + s10 * w.y + s01 * w.z + s11 * w.w;
return r * (normalize ? rcp(dot(w, 1.0)) : 1.0);
return r * select(normalize, rcp(dot(w, 1.0)), 1.0);
}
6 changes: 3 additions & 3 deletions assets/shaders/inc/brdf.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ struct DiffuseBrdf {

BrdfValue evaluate(float3 _wo, float3 wi) {
BrdfValue res;
res.pdf = wi.z > 0.0 ? M_FRAC_1_PI : 0.0;
res.value_over_pdf = wi.z > 0.0 ? albedo : 0.0.xxx;
res.pdf = select(wi.z > 0.0, M_FRAC_1_PI, 0.0);
res.value_over_pdf = select(wi.z > 0.0, albedo, 0.0.xxx);
res.value = res.value_over_pdf * res.pdf;
res.transmission_fraction = 0.0;
return res;
Expand Down Expand Up @@ -189,7 +189,7 @@ struct SpecularBrdf {
float3 Vh = normalize(float3(alpha_x * wo.x, alpha_y * wo.y, wo.z));

// Construct orthonormal basis (Vh,T1,T2).
float3 T1 = (Vh.z < 0.9999f) ? normalize(cross(float3(0, 0, 1), Vh)) : float3(1, 0, 0); // TODO: fp32 precision
float3 T1 = select((Vh.z < 0.9999f), normalize(cross(float3(0, 0, 1), Vh)), float3(1, 0, 0)); // TODO: fp32 precision
float3 T2 = cross(Vh, T1);

// Parameterization of the projected area of the hemisphere.
Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/inc/color/bezold_brucke.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ float bb_xy_white_offset_to_lut_coord(float2 offset) {
return frac((atan2(offset.y, offset.x) / M_PI) * 0.5);
#elif BB_LUT_LUT_MAPPING == BB_LUT_LUT_MAPPING_QUAD
offset /= max(abs(offset.x), abs(offset.y));
float sgn = (offset.x + offset.y) > 0.0 ? 1.0 : -1.0;
float sgn = select((offset.x + offset.y) > 0.0, 1.0, -1.0);
// NOTE: needs a `frac` if the sampler's U wrap mode is not REPEAT.
return sgn * (0.125 * (offset.x - offset.y) + 0.25);
#elif BB_LUT_LUT_MAPPING == BB_LUT_LUT_MAPPING_ROTATED_QUAD
const float angle = BB_LUT_LUT_MAPPING_ROTATED_QUAD_ANGLE;
offset = mul(float2x2(cos(angle), sin(angle), -sin(angle), cos(angle)), offset);
offset /= max(abs(offset.x), abs(offset.y));
float sgn = (offset.x + offset.y) > 0.0 ? 1.0 : -1.0;
float sgn = select((offset.x + offset.y) > 0.0, 1.0, -1.0);
// NOTE: needs a `frac` if the sampler's U wrap mode is not REPEAT.
return sgn * (0.125 * (offset.x - offset.y) + 0.25);
#endif
Expand All @@ -38,14 +38,14 @@ float2 bb_lut_coord_to_xy_white_offset(float coord) {
const float theta = coord * M_PI * 2.0;
return float2(cos(theta), sin(theta));
#elif BB_LUT_LUT_MAPPING == BB_LUT_LUT_MAPPING_QUAD
float side = (coord < 0.5 ? 1.0 : -1.0);
float side = select(coord < 0.5, 1.0, -1.0);
float t = frac(coord * 2);
return side * normalize(
lerp(float2(-1, 1), float2(1, -1), t)
+ lerp(float2(0, 0), float2(1, 1), 1 - abs(t - 0.5) * 2)
);
#elif BB_LUT_LUT_MAPPING == BB_LUT_LUT_MAPPING_ROTATED_QUAD
float side = (coord < 0.5 ? 1.0 : -1.0);
float side = select(coord < 0.5, 1.0, -1.0);
float t = frac(coord * 2);
float2 offset = side * normalize(lerp(float2(-1, 1), float2(1, -1), t) + lerp(float2(0, 0), float2(1, 1), 1 - abs(t - 0.5) * 2));
const float angle = BB_LUT_LUT_MAPPING_ROTATED_QUAD_ANGLE;
Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/inc/color/ipt.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ float3 XYZ_to_IPT(float3 xyz) {
xyz
);

lms.x = lms.x >= 0.0 ? pow(lms.x, 0.43) : -pow(-lms.x, 0.43);
lms.y = lms.y >= 0.0 ? pow(lms.y, 0.43) : -pow(-lms.y, 0.43);
lms.z = lms.z >= 0.0 ? pow(lms.z, 0.43) : -pow(-lms.z, 0.43);
lms.x = select(lms.x >= 0.0, pow(lms.x, 0.43), -pow(-lms.x, 0.43));
lms.y = select(lms.y >= 0.0, pow(lms.y, 0.43), -pow(-lms.y, 0.43));
lms.z = select(lms.z >= 0.0, pow(lms.z, 0.43), -pow(-lms.z, 0.43));

return mul(
float3x3(
Expand All @@ -33,9 +33,9 @@ float3 IPT_to_XYZ(float3 ipt) {
ipt
);

lms.x = lms.x >= 0.0 ? pow(lms.x, 1.0 / 0.43) : -pow(-lms.x, 1.0 / 0.43);
lms.y = lms.y >= 0.0 ? pow(lms.y, 1.0 / 0.43) : -pow(-lms.y, 1.0 / 0.43);
lms.z = lms.z >= 0.0 ? pow(lms.z, 1.0 / 0.43) : -pow(-lms.z, 1.0 / 0.43);
lms.x = select(lms.x >= 0.0, pow(lms.x, 1.0 / 0.43), -pow(-lms.x, 1.0 / 0.43));
lms.y = select(lms.y >= 0.0, pow(lms.y, 1.0 / 0.43), -pow(-lms.y, 1.0 / 0.43));
lms.z = select(lms.z >= 0.0, pow(lms.z, 1.0 / 0.43), -pow(-lms.z, 1.0 / 0.43));

return mul(
float3x3(
Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/inc/color/lab.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ float3 XYZ_to_LAB(float3 xyz)

xyz /= D65_XYZ;
xyz = float3(
xyz.x > 0.008856 ? pow(abs(xyz.x), 1.0 / 3.0) : xyz.x * 7.787 + 16.0 / 116.0,
xyz.y > 0.008856 ? pow(abs(xyz.y), 1.0 / 3.0) : xyz.y * 7.787 + 16.0 / 116.0,
xyz.z > 0.008856 ? pow(abs(xyz.z), 1.0 / 3.0) : xyz.z * 7.787 + 16.0 / 116.0
select(xyz.x > 0.008856, pow(abs(xyz.x), 1.0 / 3.0), xyz.x * 7.787 + 16.0 / 116.0),
select(xyz.y > 0.008856, pow(abs(xyz.y), 1.0 / 3.0), xyz.y * 7.787 + 16.0 / 116.0),
select(xyz.z > 0.008856, pow(abs(xyz.z), 1.0 / 3.0), xyz.z * 7.787 + 16.0 / 116.0)
);

float l = 116.0 * xyz.y - 16.0;
Expand All @@ -46,9 +46,9 @@ float3 LABToXYZ(float3 lab)

float3 xyz = fxyz * fxyz * fxyz;
return D65_XYZ * float3(
fxyz.x > 0.206893 ? xyz.x : (116.0 * fxyz.x - 16.0) / 903.3,
fxyz.y > 0.206893 ? xyz.y : (116.0 * fxyz.y - 16.0) / 903.3,
fxyz.z > 0.206893 ? xyz.z : (116.0 * fxyz.z - 16.0) / 903.3
select(fxyz.x > 0.206893, xyz.x, (116.0 * fxyz.x - 16.0) / 903.3),
select(fxyz.y > 0.206893, xyz.y, (116.0 * fxyz.y - 16.0) / 903.3),
select(fxyz.z > 0.206893, xyz.z, (116.0 * fxyz.z - 16.0) / 903.3)
);
}

Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/inc/color/luv.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
#define NOTORIOUS6_LUV_HLSL

float luminance_to_LUV_L(float Y){
return Y <= 0.0088564516790356308 ? Y * 903.2962962962963 : 116.0 * pow(max(0.0, Y), 1.0 / 3.0) - 16.0;
return select(Y <= 0.0088564516790356308, Y * 903.2962962962963, 116.0 * pow(max(0.0, Y), 1.0 / 3.0) - 16.0);
}

float LUV_L_to_luminance(float L) {
return L <= 8.0 ? L / 903.2962962962963 : pow((L + 16.0) / 116.0, 3.0);
return select(L <= 8.0, L / 903.2962962962963, pow((L + 16.0) / 116.0, 3.0));
}

float2 CIE_xyY_xy_to_LUV_uv(float2 xy) {
Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/inc/color/srgb.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ float3 XYZ_to_sRGB(float3 color) {
}

float sRGB_OETF(float a) {
return .0031308f >= a ? 12.92f * a : 1.055f * pow(a, .4166666666666667f) - .055f;
return select(.0031308f >= a, 12.92f * a, 1.055f * pow(a, .4166666666666667f) - .055f);
}

float3 sRGB_OETF(float3 a) {
return float3(sRGB_OETF(a.r), sRGB_OETF(a.g), sRGB_OETF(a.b));
}

float sRGB_EOTF(float a) {
return .04045f < a ? pow((a + .055f) / 1.055f, 2.4f) : a / 12.92f;
return select(.04045f < a, pow((a + .055f) / 1.055f, 2.4f), a / 12.92f);
}

float3 sRGB_EOTF(float3 a) {
Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/inc/math.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ float3 uniform_sample_cone(float2 urand, float cos_theta_max) {
// FullSimplify[Lerp[a,(b(c (1 - e)) + d e) /(c + e - c e), 1-(1-c)(1-e)]] == FullSimplify[Lerp[Lerp[a, b, c], d, e]]
float4 prelerp(float4 b, float4 c) {
float denom = b.a + c.a * (1.0 - b.a);
return denom > 1e-5 ? float4(
return select(denom > 1e-5, float4(
(b.rgb * (b.a * (1.0 - c.a)) + c.rgb * c.a) / denom,
1.0 - (1.0 - b.a) * (1.0 - c.a)
) : 0.0.xxxx;
), 0.0.xxxx);
}

float inverse_depth_relative_diff(float primary_depth, float secondary_depth) {
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/inc/pack_unpack.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ float3 octa_decode(float2 f) {
// https://twitter.com/Stubbesaurus/status/937994790553227264
float3 n = float3( f.x, f.y, 1.0 - abs( f.x ) - abs( f.y ) );
float t = clamp(-n.z, 0.0, 1.0);
//n.xy += n.xy >= 0.0 ? -t : t;
//n.xy += select(n.xy >= 0.0, -t, t);
n.xy -= (step(0.0, n.xy) * 2 - 1) * t;
return normalize(n);
}
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/inc/reservoir.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ struct Reservoir1spp {
) {
payload = sample_payload;
w_sum = p_q * weight;
M = weight != 0 ? 1 : 0;
M = select(weight != 0, 1, 0);
W = weight;

stream_state.p_q_sel = p_q;
Expand Down
4 changes: 2 additions & 2 deletions assets/shaders/ircache/ircache_draw_debug.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ float3 tricolor_ramp(float3 a, float3 b, float3 c, float x) {
cw /= ws;
#else
const float lobe = pow(smoothstep(1, 0, 2 * abs(x - 0.5)), 2.5254);
float aw = x < 0.5 ? 1 - lobe : 0;
float aw = select(x < 0.5, 1 - lobe, 0);
float bw = lobe;
float cw = x > 0.5 ? 1 - lobe : 0;
float cw = select(x > 0.5, 1 - lobe, 0);
#endif

return aw * a + bw * b + cw * c;
Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/ircache/ircache_grid.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ IrcacheCoord ws_pos_to_ircache_coord(float3 pos, float3 normal, float3 jitter) {
const float3 center = frame_constants.ircache_grid_center.xyz;

const uint reserved_cells =
IRCACHE_USE_NORMAL_BASED_CELL_OFFSET
select(IRCACHE_USE_NORMAL_BASED_CELL_OFFSET
// Make sure we can actually offset towards the edge of a cascade.
? 1
, 1
// Business as usual
: 0;
, 0);

float3 cell_offset = 0;

Expand All @@ -63,9 +63,9 @@ IrcacheCoord ws_pos_to_ircache_coord(float3 pos, float3 normal, float3 jitter) {
const int3 cascade_origin = frame_constants.ircache_cascades[cascade].origin.xyz;

cell_offset +=
IRCACHE_USE_NORMAL_BASED_CELL_OFFSET
? normal * cell_diameter * 0.5
: 0.0.xxx;
select(IRCACHE_USE_NORMAL_BASED_CELL_OFFSET
, normal * cell_diameter * 0.5
, 0.0.xxx);

const int3 coord = floor((pos + cell_offset) / cell_diameter) - cascade_origin;

Expand Down
6 changes: 3 additions & 3 deletions assets/shaders/ircache/ircache_trace_common.inc.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ IrcacheTraceResult ircache_trace(Vertex entry, DiffuseBrdf brdf, SampleParams sa
}

const float3 brdf_value = brdf.evaluate_directional_light(wo, wi);
const float3 light_radiance = is_shadowed ? 0.0 : SUN_COLOR;
const float3 light_radiance = select(is_shadowed, 0.0, SUN_COLOR);
irradiance_sum += throughput * brdf_value * light_radiance * max(0.0, wi.z);

if (USE_EMISSIVE) {
Expand Down Expand Up @@ -171,8 +171,8 @@ IrcacheTraceResult ircache_trace(Vertex entry, DiffuseBrdf brdf, SampleParams sa
));

irradiance_sum +=
is_shadowed ? 0 :
throughput * triangle_light.radiance() * brdf.evaluate(wo, wi) / light_sample.pdf.value * to_psa_metric / light_selection_pmf;
select(is_shadowed, 0,
throughput * triangle_light.radiance() * brdf.evaluate(wo, wi) / light_sample.pdf.value * to_psa_metric / light_selection_pmf);
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions assets/shaders/ircache/ircache_validate.rgen.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ void main() {
IrcacheTraceResult prev_traced = ircache_trace(prev_entry, brdf, SampleParams::from_raw(r.payload), life);

const float prev_self_lighting_limiter =
USE_SELF_LIGHTING_LIMITER
? lerp(0.5, 1, smoothstep(-0.1, 0, dot(prev_traced.direction, prev_entry.normal)))
: 1.0;
select(USE_SELF_LIGHTING_LIMITER
, lerp(0.5, 1, smoothstep(-0.1, 0, dot(prev_traced.direction, prev_entry.normal)))
, 1.0);

const float3 a = prev_traced.incident_radiance * prev_self_lighting_limiter;
const float3 b = prev_value_and_count.rgb;
Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/ircache/lookup.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,13 @@ IrcacheLookupMaybeAllocate IrcacheLookupParams::lookup_maybe_allocate(inout uint
bool allocated_by_us = false;
bool just_allocated = false;

const float3 jitter = stochastic_interpolation
? (float3(
const float3 jitter = select(stochastic_interpolation
, (float3(
uint_to_u01_float(hash1_mut(rng)),
uint_to_u01_float(hash1_mut(rng)),
uint_to_u01_float(hash1_mut(rng))
) - 0.5)
: 0.0.xxx;
, 0.0.xxx);

#ifndef IRCACHE_LOOKUP_DONT_KEEP_ALIVE
if (!IRCACHE_FREEZE) {
Expand All @@ -93,9 +93,9 @@ IrcacheLookupMaybeAllocate IrcacheLookupParams::lookup_maybe_allocate(inout uint

const int3 scroll_offset = frame_constants.ircache_cascades[rcoord.cascade].voxels_scrolled_this_frame.xyz;
const int3 was_just_scrolled_in =
scroll_offset > 0
? (int3(rcoord.coord) + scroll_offset >= IRCACHE_CASCADE_SIZE)
: (int3(rcoord.coord) < -scroll_offset);
select(scroll_offset > 0
, (int3(rcoord.coord) + scroll_offset >= IRCACHE_CASCADE_SIZE)
, (int3(rcoord.coord) < -scroll_offset));

// When a voxel is just scrolled in to a cascade, allocating it via indirect rays
// has a good chance of creating leaks. Delay the allocation for one frame
Expand Down
6 changes: 3 additions & 3 deletions assets/shaders/ircache/scroll_cascades.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ void main(uint3 dispatch_thread_id: SV_DispatchThreadID) {
const uint dst_cell_idx = IrcacheCoord::from_coord_cascade(dst_vx, cascade).cell_idx();

const int3 scroll_by =
IRCACHE_FREEZE
? (0).xxx
: frame_constants.ircache_cascades[cascade].voxels_scrolled_this_frame.xyz;
select(IRCACHE_FREEZE
, (0).xxx
, frame_constants.ircache_cascades[cascade].voxels_scrolled_this_frame.xyz);

if (!all(uint3(dst_vx - scroll_by) < IRCACHE_CASCADE_SIZE)) {
// If this entry is about to get overwritten, deallocate it.
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/ircache/sum_up_irradiance.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ void main(uint dispatch_idx: SV_DispatchThreadID) {
dir
);

valid_samples += contrib.w > 0 ? 1.0 : 0.0;
valid_samples += select(contrib.w > 0, 1.0, 0.0);
}

contribution_sum.scale(1.0 / max(1.0, valid_samples));
Expand Down
12 changes: 6 additions & 6 deletions assets/shaders/ircache/trace_irradiance.rgen.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ void main() {
// Allocate fewer samples for further bounces
#if 0
const uint sample_count_divisor =
rank <= 1
? 1
: 4;
select(rank <= 1
, 1
, 4);
#else
const uint sample_count_divisor = 1;
#endif
Expand All @@ -93,9 +93,9 @@ void main() {
IrcacheTraceResult traced = ircache_trace(entry, brdf, sample_params, life);

const float self_lighting_limiter =
USE_SELF_LIGHTING_LIMITER
? lerp(0.5, 1, smoothstep(-0.1, 0, dot(traced.direction, entry.normal)))
: 1.0;
select(USE_SELF_LIGHTING_LIMITER
, lerp(0.5, 1, smoothstep(-0.1, 0, dot(traced.direction, entry.normal)))
, 1.0);

const float3 new_value = traced.incident_radiance * self_lighting_limiter;
const float new_lum = sRGB_to_luminance(new_value);
Expand Down
2 changes: 1 addition & 1 deletion assets/shaders/lighting/sample_lights.rgen.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void main() {
dist_to_light - 1e-4
));

out0_tex[px] = float4(is_shadowed ? 0 : triangle_light.radiance(), 1);
out0_tex[px] = float4(select(is_shadowed, 0, triangle_light.radiance(), 1));
out1_tex[px] = float4(
view_ray_context.ray_hit_vs() + direction_world_to_view(to_light_ws),
light_sample.pdf.value * light_choice_pmf
Expand Down
8 changes: 4 additions & 4 deletions assets/shaders/lighting/spatial_reuse_lights.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ void main(uint2 px : SV_DispatchThreadID) {

// Index used to calculate a sample set disjoint for all four pixels in the quad
// Offsetting by frame index reduces small structured artifacts
const uint px_idx_in_quad = (((px.x & 1) | (px.y & 1) * 2) + (SHUFFLE_SUBPIXELS ? 1 : 0) * frame_constants.frame_index) & 3;
const uint px_idx_in_quad = (((px.x & 1) | (px.y & 1) * 2) + select(SHUFFLE_SUBPIXELS, 1, 0) * frame_constants.frame_index) & 3;

const uint sample_count = BORROW_SAMPLES ? 8 : 1;
const uint sample_count = select(BORROW_SAMPLES, 8, 1);
const uint filter_idx = 3;

float4 contrib_accum = 0.0;
Expand Down Expand Up @@ -129,7 +129,7 @@ void main(uint2 px : SV_DispatchThreadID) {
// be rejected by the bias, thus skewing sample counting.
//if (wi.z > 0 && dot(center_to_hit_vs, normal_vs) * 0.2 / length(center_to_hit_vs) < dot(surface_offset, normal_vs) / length(surface_offset)) {
if (wi.z > 0 && wi.z * 0.2 < fraction_of_normal_direction_as_offset) {
rejection_bias *= sample_i == 0 ? 1 : 0;
rejection_bias *= select(sample_i == 0, 1, 0);
}
#endif
}
Expand All @@ -146,7 +146,7 @@ void main(uint2 px : SV_DispatchThreadID) {

// Note: should indeed be step(0, wi.z) since the cosine factor is part
// of the measure conversion from area to projected solid angle.
const float3 contrib_rgb = packed0.rgb * spec.value * energy_preservation_mult * step(0.0, wi.z) * (neighbor_sampling_pdf > 0 ? (1 / neighbor_sampling_pdf) : 0);
const float3 contrib_rgb = packed0.rgb * spec.value * energy_preservation_mult * step(0.0, wi.z) * select(neighbor_sampling_pdf > 0, (1 / neighbor_sampling_pdf), 0);
const float contrib_wt = rejection_bias;

contrib_accum += float4(contrib_rgb, 1) * contrib_wt;
Expand Down
Loading

0 comments on commit d3b6ac2

Please sign in to comment.