Fix gbuffer pack

This commit is contained in:
luboslenco
2025-09-27 14:46:10 +02:00
parent b9af24c0c3
commit 7d8f8f82db
5 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -266,8 +266,8 @@ fun deferred_light_frag(input: vert_out): float4 {
envl.rgb = envl.rgb * albedo;
// Indirect specular
// var env_brdf: float2 = senvmap_brdf[uint2(roughness * 256.0, (1.0 - dotnv) * 256.0)].xy;
var env_brdf: float4 = senvmap_brdf[uint2(uint(roughness * 256.0), uint((1.0 - dotnv) * 256.0))];
// var env_brdf: float2 = senvmap_brdf[uint2(roughness * 255.0, (1.0 - dotnv) * 255.0)].xy;
var env_brdf: float4 = senvmap_brdf[uint2(uint(roughness * 255.0), uint((1.0 - dotnv) * 255.0))];
//envl.rgb += prefiltered_color * (f0 * env_brdf.x + env_brdf.y) * 1.5;
envl.rgb = envl.rgb + (prefiltered_color * (f0 * env_brdf.x + env_brdf.y) * 1.5);
+1 -1
View File
@@ -59,7 +59,7 @@ fun pack_f32_i16(f: float, i: uint): float {
// const t1: float = ((prec / maxi) - 1.0) / prec_minus_one;
// const t2: float = (prec / maxi) / prec_minus_one;
// return t1 * f + t2 * float(i);
return 0.062504762 * f + 0.062519999 * float(i);
return 0.062504762 * min(f, 0.9999) + 0.062519999 * float(i);
}
fun mesh_posnor_frag(input: vert_out): float4[3] {
+1 -1
View File
@@ -63,7 +63,7 @@ fun pack_f32_i16(f: float, i: uint): float {
// const t1: float = ((prec / maxi) - 1.0) / prec_minus_one;
// const t2: float = (prec / maxi) / prec_minus_one;
// return t1 * f + t2 * float(i);
return 0.062504762 * f + 0.062519999 * float(i);
return 0.062504762 * min(f, 0.9999) + 0.062519999 * float(i);
}
fun mesh_posnortex_frag(input: vert_out): float4[3] {
+2 -2
View File
@@ -388,8 +388,8 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
node_shader_write_frag(kong, "var f0: float3 = lerp3(float3(0.04, 0.04, 0.04), basecol, metallic);");
kong.frag_vvec = true;
node_shader_write_frag(kong, "var dotnv: float = max(0.0, dot(n, vvec));");
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 256.0)].xy;");
node_shader_write_frag(kong, "var brdf_coord: float2 = float2(roughness, 1.0 - dotnv) * 256.0;");
// node_shader_write_frag(kong, "var env_brdf: float2 = senvmap_brdf[uint2(float2(roughness, 1.0 - dotnv) * 255.0)].xy;");
node_shader_write_frag(kong, "var brdf_coord: float2 = float2(roughness, 1.0 - dotnv) * 255.0;");
node_shader_write_frag(kong, "var env_brdf: float4 = senvmap_brdf[uint2(uint(brdf_coord.x), uint(brdf_coord.y))];");
// node_shader_add_constant(kong, "envmap_num_mipmaps: int", "_envmap_num_mipmaps");
node_shader_add_constant(kong, "envmap_data: float4", "_envmap_data"); // angle, sin(angle), cos(angle), strength
+1 -1
View File
@@ -284,7 +284,7 @@ fun octahedron_wrap(v: float2): float2 { \
let str_pack_float_int16: string = "\
fun pack_f32_i16(f: float, i: uint): float { \
return 0.062504762 * f + 0.062519999 * float(i); \
return 0.062504762 * min(f, 0.9999) + 0.062519999 * float(i); \
} \
";