Shader fixes
This commit is contained in:
@@ -68,7 +68,7 @@ parser_material_custom_nodes_set(node_type, function(node, socket_name) {
|
||||
let my_out = "my_out";
|
||||
|
||||
node_shader_write_frag(kong,
|
||||
"float " + my_out + " = cos(sin(tex_coord.x * 200.0 * " + scale + ") + cos(tex_coord.y * 200.0 * " + scale + "));"
|
||||
"var " + my_out + ": float = cos(sin(tex_coord.x * 200.0 * " + scale + ") + cos(tex_coord.y * 200.0 * " + scale + "));"
|
||||
);
|
||||
|
||||
if (socket_name == "Color") {
|
||||
|
||||
@@ -74,7 +74,7 @@ function make_brush_run(kong: node_shader_t) {
|
||||
|
||||
node_shader_write_frag(kong, "var pa: float2 = bsp.xy - binp.xy;");
|
||||
node_shader_write_frag(kong, "var ba: float2 = binplast.xy - binp.xy;");
|
||||
node_shader_write_frag(kong, "float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);");
|
||||
node_shader_write_frag(kong, "var h: float = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0);");
|
||||
node_shader_write_frag(kong, "dist = length(pa - ba * h);");
|
||||
}
|
||||
|
||||
|
||||
@@ -438,11 +438,13 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
|
||||
node_shader_write_frag(kong, "output[1] = float4(float3(height, height, height), 1.0);");
|
||||
}
|
||||
else if (context_raw.viewport_mode == viewport_mode_t.EMISSION) {
|
||||
node_shader_write_frag(kong, "float emis = float(int(matid * 255.0)) % float(3) == 1 ? 1.0 : 0.0;");
|
||||
node_shader_write_frag(kong, "var matid_mod: float = float(int(matid * 255.0)) % float(3);");
|
||||
node_shader_write_frag(kong, "var emis: float = 0.0; if (matid_mod == 1.0) { emis = 1.0; }");
|
||||
node_shader_write_frag(kong, "output[1] = float4(float3(emis, emis, emis), 1.0);");
|
||||
}
|
||||
else if (context_raw.viewport_mode == viewport_mode_t.SUBSURFACE) {
|
||||
node_shader_write_frag(kong, "float subs = float(int(matid * 255.0)) % float(3) == 2 ? 1.0 : 0.0;");
|
||||
node_shader_write_frag(kong, "var matid_mod: float = float(int(matid * 255.0)) % float(3);");
|
||||
node_shader_write_frag(kong, "var subs: float = 0.0; if (matid_mod == 2.0) { subs = 1.0; }");
|
||||
node_shader_write_frag(kong, "output[1] = float4(float3(subs, subs, subs), 1.0);");
|
||||
}
|
||||
else if (context_raw.viewport_mode == viewport_mode_t.TEXCOORD) {
|
||||
|
||||
@@ -682,7 +682,7 @@ function parser_material_parse_vector(node: ui_node_t, socket: ui_node_socket_t)
|
||||
else if (node.type == "MIX_RGB") {
|
||||
let fac: string = parser_material_parse_value_input(node.inputs[0]);
|
||||
let fac_var: string = parser_material_node_name(node) + "_fac";
|
||||
parser_material_write(parser_material_kong, "float " + fac_var + " = " + fac + ";");
|
||||
parser_material_write(parser_material_kong, "var " + fac_var + ": float = " + fac + ";");
|
||||
let col1: string = parser_material_parse_vector_input(node.inputs[1]);
|
||||
let col2: string = parser_material_parse_vector_input(node.inputs[2]);
|
||||
let but: ui_node_button_t = node.buttons[0]; // blend_type
|
||||
@@ -1007,8 +1007,8 @@ function parser_material_parse_vector(node: ui_node_t, socket: ui_node_socket_t)
|
||||
let height: string = parser_material_parse_value_input(node.inputs[2]);
|
||||
let nor: string = parser_material_parse_vector_input(node.inputs[3]);
|
||||
let sample_bump_res: string = parser_material_store_var_name(node) + "_bump";
|
||||
parser_material_write(parser_material_kong, "float " + sample_bump_res + "_x = ddx(float(" + height + ")) * (" + strength + ") * 16.0;");
|
||||
parser_material_write(parser_material_kong, "float " + sample_bump_res + "_y = ddy(float(" + height + ")) * (" + strength + ") * 16.0;");
|
||||
parser_material_write(parser_material_kong, "var " + sample_bump_res + "_x: float = ddx(float(" + height + ")) * (" + strength + ") * 16.0;");
|
||||
parser_material_write(parser_material_kong, "var " + sample_bump_res + "_y: float = ddy(float(" + height + ")) * (" + strength + ") * 16.0;");
|
||||
return "(normalize(float3(" + sample_bump_res + "_x, " + sample_bump_res + "_y, 1.0) + " + nor + ") * float3(0.5, 0.5, 0.5) + float3(0.5, 0.5, 0.5))";
|
||||
}
|
||||
else if (node.type == "MAPPING") {
|
||||
|
||||
Reference in New Issue
Block a user