2022-02-11 17:40:24 +00:00
|
|
|
layout(push_constant, std430) uniform Params {
|
2021-07-29 07:43:17 +00:00
|
|
|
ivec2 size;
|
|
|
|
float z_far;
|
|
|
|
float z_near;
|
|
|
|
|
|
|
|
bool orthogonal;
|
|
|
|
float blur_size;
|
|
|
|
float blur_scale;
|
|
|
|
int blur_steps;
|
|
|
|
|
|
|
|
bool blur_near_active;
|
|
|
|
float blur_near_begin;
|
|
|
|
float blur_near_end;
|
|
|
|
bool blur_far_active;
|
|
|
|
|
|
|
|
float blur_far_begin;
|
|
|
|
float blur_far_end;
|
|
|
|
bool second_pass;
|
|
|
|
bool half_size;
|
|
|
|
|
|
|
|
bool use_jitter;
|
|
|
|
float jitter_seed;
|
|
|
|
uint pad[2];
|
|
|
|
}
|
|
|
|
params;
|
|
|
|
|
|
|
|
//used to work around downsampling filter
|
|
|
|
#define DEPTH_GAP 0.0
|
|
|
|
|
|
|
|
const float GOLDEN_ANGLE = 2.39996323;
|
|
|
|
|
|
|
|
//note: uniform pdf rand [0;1[
|
|
|
|
float hash12n(vec2 p) {
|
|
|
|
p = fract(p * vec2(5.3987, 5.4421));
|
|
|
|
p += dot(p.yx, p.xy + vec2(21.5351, 14.3137));
|
|
|
|
return fract(p.x * p.y * 95.4307);
|
|
|
|
}
|