2
0
luboslenco 3 сар өмнө
parent
commit
6f88ba099e

+ 1 - 1
armorlab/sources/make_mesh.ts

@@ -193,7 +193,7 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
 	node_shader_write_frag(kong, "n /= (abs(n.x) + abs(n.y) + abs(n.z));");
 	// node_shader_write_frag(kong, "n.xy = n.z >= 0.0 ? n.xy : octahedron_wrap(n.xy);");
 	node_shader_write_frag(kong, "if (n.z < 0.0) { n.xy = octahedron_wrap(n.xy); }");
-	node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(int(matid * 255.0) % float(3))));");
+	node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(float(int(matid * 255.0)) % float(3))));");
 	node_shader_write_frag(kong, "output[2] = float4(0.0, 0.0, input.tex_coord.xy);");
 
 	parser_material_finalize(con_mesh);

+ 1 - 1
armorpaint/sources/make_mesh.ts

@@ -484,7 +484,7 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
 		node_shader_write_frag(kong, "n = n / (abs(n.x) + abs(n.y) + abs(n.z));");
 		// node_shader_write_frag(kong, "n.xy = n.z >= 0.0 ? n.xy : octahedron_wrap(n.xy);");
 		node_shader_write_frag(kong, "if (n.z < 0.0) { n.xy = octahedron_wrap(n.xy); }");
-		node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(int(matid * 255.0) % float(3))));");
+		node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(float(int(matid * 255.0)) % float(3))));");
 	}
 
 	node_shader_write_frag(kong, "output[2] = float4(0.0, 0.0, input.tex_coord.xy);");

+ 5 - 3
armorpaint/sources/make_paint.ts

@@ -97,7 +97,7 @@ function make_paint_run(data: material_t, matcon: material_context_t): node_shad
 	node_shader_add_out(kong, "ndc: float4");
 	node_shader_write_attrib_vert(kong, "output.ndc = constants.WVP * float4(input.pos.xyz, 1.0);");
 
-	node_shader_write_attrib_frag(kong, "var sp: float3 = float3((input.ndc.xyz / input.ndc.w) * 0.5 + 0.5);");
+	node_shader_write_attrib_frag(kong, "var sp: float3 = (input.ndc.xyz / input.ndc.w) * 0.5 + 0.5;");
 	node_shader_write_attrib_frag(kong, "sp.y = 1.0 - sp.y;");
 	node_shader_write_attrib_frag(kong, "sp.z -= 0.0001;"); // small bias
 
@@ -367,14 +367,16 @@ function make_paint_run(data: material_t, matcon: material_context_t): node_shad
 	if (context_raw.material.paint_emis && make_material_emis_used) {
 		node_shader_write_frag(kong, "if (emis > 0.0) {");
 		node_shader_write_frag(kong, "	matid += 1.0 / 255.0;");
-		node_shader_write_frag(kong, "	if (str == 0.0) { discard; }");
+		// node_shader_write_frag(kong, "	if (str == 0.0) { discard; }");
 		node_shader_write_frag(kong, "}");
+		node_shader_write_frag(kong, "	if (emis > 0.0 && str == 0.0) { discard; }");
 	}
 	else if (context_raw.material.paint_subs && make_material_subs_used) {
 		node_shader_write_frag(kong, "if (subs > 0.0) {");
 		node_shader_write_frag(kong, "    matid += 2.0 / 255.0;");
-		node_shader_write_frag(kong, "	if (str == 0.0) { discard; }");
+		// node_shader_write_frag(kong, "	if (str == 0.0) { discard; }");
 		node_shader_write_frag(kong, "}");
+		node_shader_write_frag(kong, "	if (subs > 0.0 && str == 0.0) { discard; }");
 	}
 
 	let is_mask: bool = slot_layer_is_mask(context_raw.layer);

+ 1 - 1
armorsculpt/sources/make_mesh.ts

@@ -315,7 +315,7 @@ function make_mesh_run(data: material_t, layer_pass: i32 = 0): node_shader_conte
 		node_shader_write_frag(kong, "n /= (abs(n.x) + abs(n.y) + abs(n.z));");
 		// node_shader_write_frag(kong, "n.xy = n.z >= 0.0 ? n.xy : octahedron_wrap(n.xy);");
 		node_shader_write_frag(kong, "if (n.z < 0.0) { n.xy = octahedron_wrap(n.xy); }");
-		node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(int(matid * 255.0) % float(3))));");
+		node_shader_write_frag(kong, "output[0] = float4(n.xy, roughness, pack_f32_i16(metallic, uint(float(int(matid * 255.0)) % float(3))));");
 	}
 
 	node_shader_write_frag(kong, "output[2] = float4(0.0, 0.0, input.tex_coord.xy);");

+ 0 - 4
base/sources/ts/node_shader.ts

@@ -238,9 +238,5 @@ function node_shader_get(raw: node_shader_t): string {
 	s += "\tfragment = kong_frag;\n";
 	s += "}\n";
 
-	////
-	iron_log(s);
-	////
-
 	return s;
 }