Vulkan fixes
This commit is contained in:
@@ -1,4 +1,9 @@
|
|||||||
|
|
||||||
|
#[set(everything)]
|
||||||
|
const constants: {
|
||||||
|
empty: float;
|
||||||
|
};
|
||||||
|
|
||||||
struct vert_in {
|
struct vert_in {
|
||||||
pos: float4;
|
pos: float4;
|
||||||
nor: float2;
|
nor: float2;
|
||||||
@@ -9,11 +14,6 @@ struct vert_out {
|
|||||||
pos: float4;
|
pos: float4;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[set(everything)]
|
|
||||||
const constants: {
|
|
||||||
empty: float;
|
|
||||||
};
|
|
||||||
|
|
||||||
fun dilate_map_vert(input: vert_in): vert_out {
|
fun dilate_map_vert(input: vert_in): vert_out {
|
||||||
var output: 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);
|
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
|
// Based on https://shaderbits.com/blog/uv-dilation by Ryan Brucks
|
||||||
var texel_size: float2 = float2(1.0, 1.0) / constants.tex_size;
|
var texel_size: float2 = float2(1.0, 1.0) / constants.tex_size;
|
||||||
var min_dist: float = 10000000.0;
|
var min_dist: float = 10000000.0;
|
||||||
var coord: uint2 = uint2(input.tex * constants.tex_size);
|
//var coord: uint2 = uint2(input.tex * constants.tex_size);
|
||||||
var mask: float = texdilate[coord].r;
|
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) {
|
if (mask > 0.0) {
|
||||||
discard;
|
discard;
|
||||||
}
|
}
|
||||||
|
|
||||||
var color: float4 = tex[coord];
|
var color: float4 = tex[coord];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////
|
||||||
|
/*
|
||||||
var i: int = 0;
|
var i: int = 0;
|
||||||
while (i < int(constants.dilate_radius)) {
|
while (i < int(constants.dilate_radius)) {
|
||||||
i += 1;
|
i += 1;
|
||||||
@@ -100,6 +110,12 @@ fun dilate_pass_frag(input: vert_out): float4 {
|
|||||||
j += 1;
|
j += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,6 +132,11 @@ fun layer_merge_frag(input: vert_out): float4 {
|
|||||||
lerp3(cola.rgb, cola.rgb + col0.rgb, str),
|
lerp3(cola.rgb, cola.rgb + col0.rgb, str),
|
||||||
max(col0.a, cola.a));
|
max(col0.a, cola.a));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////
|
||||||
|
|
||||||
|
/* TODO: SPIRV
|
||||||
|
|
||||||
if (constants.blending == 8) { // Overlay
|
if (constants.blending == 8) { // Overlay
|
||||||
var rr: float;
|
var rr: float;
|
||||||
if (cola.r < 0.5) {
|
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)))),
|
(cola.rgb + str * (float3(2.0, 2.0, 2.0) * (col0.rgb - float3(0.5, 0.5, 0.5)))),
|
||||||
max(col0.a, cola.a));
|
max(col0.a, cola.a));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TODO: SPIRV
|
|
||||||
|
|
||||||
if (constants.blending == 11) {
|
if (constants.blending == 11) {
|
||||||
return float4(
|
return float4(
|
||||||
lerp3(cola.rgb, abs3(cola.rgb - col0.rgb), str),
|
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);
|
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;
|
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 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));
|
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) {
|
// for (var i: int = 0; i < max_steps; i = i + 1) {
|
||||||
var i: int = 0;
|
var i: int = 0;
|
||||||
while (i < max_steps) {
|
while (i < int(max_steps)) {
|
||||||
hit_coord += dir;
|
hit_coord += dir;
|
||||||
var delta: float = get_delta_depth(view_ray, hit_coord);
|
var delta: float = get_delta_depth(view_ray, hit_coord);
|
||||||
if (delta > 0.0 && delta < 0.2) {
|
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 {
|
fun tangent(n: float3): float3 {
|
||||||
var t1: float3 = cross(n, float3(0, 0, 1));
|
var t1: float3 = cross(n, float3(0.0, 0.0, 1.0));
|
||||||
var t2: float3 = cross(n, float3(0, 1, 0));
|
var t2: float3 = cross(n, float3(0.0, 1.0, 0.0));
|
||||||
if (length(t1) > length(t2)) {
|
if (length(t1) > length(t2)) {
|
||||||
return normalize(t1);
|
return normalize(t1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user