kong test

This commit is contained in:
luboslenco
2025-04-06 20:54:56 +02:00
parent 5c6966341f
commit 6a539d161d
7 changed files with 244 additions and 24 deletions
-9
View File
@@ -87,15 +87,6 @@ function node_shader_add_constant(raw: node_shader_t, s: string, link: string =
if (utype == "float4x4") utype = "mat4";
////
// if (ar[0] == "float" && string_index_of(ar[1], "[") >= 0) {
// ar[0] = "floats";
// ar[1] = string_split(ar[1], "[")[0];
// }
// else if (ar[0] == "vec4" && string_index_of(ar[1], "[") >= 0) {
// ar[0] = "floats";
// ar[1] = string_split(ar[1], "[")[0];
// }
array_push(raw.constants, s);
node_shader_context_add_constant(raw.context, utype, uname, link);
}
+4 -2
View File
@@ -655,11 +655,12 @@ function parser_material_parse_vector(node: ui_node_t, socket: ui_node_socket_t)
let steps: string = "int(" + strength + " * 10 + 1)";
let tex_name: string = "texblur_" + parser_material_node_name(node);
node_shader_add_texture(parser_material_kong, "" + tex_name, "_" + tex_name);
node_shader_add_constant(parser_material_kong, "" + tex_name + "_size: float2", "_size(" + tex_name + ")");
let store: string = parser_material_store_var_name(node);
parser_material_write(parser_material_kong, "var " + store + "_res: float3 = float3(0.0, 0.0, 0.0);");
parser_material_write(parser_material_kong, "for (var i: int = -" + steps + "; i <= " + steps + "; i += 1) {");
parser_material_write(parser_material_kong, "for (var j: int = -" + steps + "; j <= " + steps + "; j += 1) {");
parser_material_write(parser_material_kong, store + "_res += sample(" + tex_name + ", " + tex_name + "_sampler, tex_coord + float2(i, j) / float2(textureSize(" + tex_name + ", 0))).rgb;");
parser_material_write(parser_material_kong, store + "_res += sample(" + tex_name + ", " + tex_name + "_sampler, tex_coord + float2(i, j) / constants." + tex_name + "_size).rgb;");
parser_material_write(parser_material_kong, "}");
parser_material_write(parser_material_kong, "}");
parser_material_write(parser_material_kong, store + "_res /= (" + steps + " * 2 + 1) * (" + steps + " * 2 + 1);");
@@ -1881,7 +1882,8 @@ function parser_material_texture_store(node: ui_node_t, tex: bind_tex_t, tex_nam
let tex_store: string = parser_material_store_var_name(node);
if (parser_material_sample_keep_aspect) {
parser_material_write(parser_material_kong, "var " + tex_store + "_size: float2 = float2(textureSize(" + tex_name + ", 0));");
node_shader_add_constant(parser_material_kong, tex_name + "_size: float2", "_size(" + tex_name + ")");
parser_material_write(parser_material_kong, "var " + tex_store + "_size: float2 = constants." + tex_name + "_size;");
parser_material_write(parser_material_kong, "var " + tex_store + "_ax: float = " + tex_store + "_size.x / " + tex_store + "_size.y;");
parser_material_write(parser_material_kong, "var " + tex_store + "_ay: float = " + tex_store + "_size.y / " + tex_store + "_size.x;");
parser_material_write(parser_material_kong, "var " + tex_store + "_uv: float2 = ((" + uv_name + ".xy / " + parser_material_sample_uv_scale + " - float2(0.5, 0.5)) * float2(max(" + tex_store + "_ay, 1.0), max(" + tex_store + "_ax, 1.0))) + float2(0.5, 0.5);");