Vulkan fixes
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
|
||||
#[set(everything)]
|
||||
const constants: {
|
||||
empty: float;
|
||||
};
|
||||
|
||||
struct vert_in {
|
||||
pos: float4;
|
||||
nor: float2;
|
||||
@@ -9,11 +14,6 @@ struct vert_out {
|
||||
pos: float4;
|
||||
}
|
||||
|
||||
#[set(everything)]
|
||||
const constants: {
|
||||
empty: float;
|
||||
};
|
||||
|
||||
fun dilate_map_vert(input: vert_in): vert_out {
|
||||
var output: vert_out;
|
||||
var tex_coord: float2 = float2(input.tex.x * 2.0 - 1.0, (1.0 - input.tex.y) * 2.0 - 1.0);
|
||||
|
||||
@@ -65,13 +65,23 @@ fun dilate_pass_frag(input: vert_out): float4 {
|
||||
// Based on https://shaderbits.com/blog/uv-dilation by Ryan Brucks
|
||||
var texel_size: float2 = float2(1.0, 1.0) / constants.tex_size;
|
||||
var min_dist: float = 10000000.0;
|
||||
var coord: uint2 = uint2(input.tex * constants.tex_size);
|
||||
var mask: float = texdilate[coord].r;
|
||||
//var coord: uint2 = uint2(input.tex * constants.tex_size);
|
||||
var coordf: float2 = float2(input.tex.x * constants.tex_size.x, input.tex.y * constants.tex_size.y);
|
||||
var coord: uint2 = uint2(uint(coordf.x), uint(coordf.y));
|
||||
//var mask: float = texdilate[coord].r;
|
||||
var mask4: float4 = texdilate[coord];
|
||||
var mask: float = mask4.r;
|
||||
if (mask > 0.0) {
|
||||
discard;
|
||||
}
|
||||
|
||||
var color: float4 = tex[coord];
|
||||
|
||||
|
||||
|
||||
|
||||
////
|
||||
/*
|
||||
var i: int = 0;
|
||||
while (i < int(constants.dilate_radius)) {
|
||||
i += 1;
|
||||
@@ -100,6 +110,12 @@ fun dilate_pass_frag(input: vert_out): float4 {
|
||||
j += 1;
|
||||
}
|
||||
}
|
||||
*/
|
||||
////
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
@@ -132,6 +132,11 @@ fun layer_merge_frag(input: vert_out): float4 {
|
||||
lerp3(cola.rgb, cola.rgb + col0.rgb, str),
|
||||
max(col0.a, cola.a));
|
||||
}
|
||||
|
||||
////
|
||||
|
||||
/* TODO: SPIRV
|
||||
|
||||
if (constants.blending == 8) { // Overlay
|
||||
var rr: float;
|
||||
if (cola.r < 0.5) {
|
||||
@@ -170,11 +175,6 @@ fun layer_merge_frag(input: vert_out): float4 {
|
||||
(cola.rgb + str * (float3(2.0, 2.0, 2.0) * (col0.rgb - float3(0.5, 0.5, 0.5)))),
|
||||
max(col0.a, cola.a));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* TODO: SPIRV
|
||||
|
||||
if (constants.blending == 11) {
|
||||
return float4(
|
||||
lerp3(cola.rgb, abs3(cola.rgb - col0.rgb), str),
|
||||
@@ -237,6 +237,8 @@ fun layer_merge_frag(input: vert_out): float4 {
|
||||
|
||||
*/
|
||||
|
||||
////
|
||||
|
||||
return float4(1.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
@@ -109,7 +109,7 @@ fun ssao_blur_pass_frag(input: vert_out): float {
|
||||
blur_weight_i = 0.008934;
|
||||
}
|
||||
|
||||
var posadd: float = i;
|
||||
var posadd: float = float(i);
|
||||
|
||||
var nor2: float3 = get_nor(sample_lod(gbuffer0, sampler_linear, input.tex + posadd * constants.dir_inv, 0.0).rg);
|
||||
var influence_factor: float = step(discard_threshold, dot(nor2, nor));
|
||||
|
||||
@@ -71,7 +71,7 @@ fun ray_cast(view_ray: float3, dir: float3, vpos: float3): float {
|
||||
|
||||
// for (var i: int = 0; i < max_steps; i = i + 1) {
|
||||
var i: int = 0;
|
||||
while (i < max_steps) {
|
||||
while (i < int(max_steps)) {
|
||||
hit_coord += dir;
|
||||
var delta: float = get_delta_depth(view_ray, hit_coord);
|
||||
if (delta > 0.0 && delta < 0.2) {
|
||||
@@ -88,8 +88,8 @@ fun ray_cast(view_ray: float3, dir: float3, vpos: float3): float {
|
||||
}
|
||||
|
||||
fun tangent(n: float3): float3 {
|
||||
var t1: float3 = cross(n, float3(0, 0, 1));
|
||||
var t2: float3 = cross(n, float3(0, 1, 0));
|
||||
var t1: float3 = cross(n, float3(0.0, 0.0, 1.0));
|
||||
var t2: float3 = cross(n, float3(0.0, 1.0, 0.0));
|
||||
if (length(t1) > length(t2)) {
|
||||
return normalize(t1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user