瀏覽代碼

Fix mesh context attachments

luboslenco 3 月之前
父節點
當前提交
9017e159e1
共有 4 個文件被更改,包括 9 次插入8 次删除
  1. 二進制
      base/assets/Scene.arm
  2. 3 2
      base/shaders/mesh_posnor.kong
  3. 3 2
      base/shaders/mesh_posnortex.kong
  4. 3 4
      base/sources/ts/render_path_base.ts

二進制
base/assets/Scene.arm


+ 3 - 2
base/shaders/mesh_posnor.kong

@@ -62,7 +62,7 @@ fun pack_f32_i16(f: float, i: uint): float {
 	return 0.062504762 * f + 0.062519999 * float(i);
 }
 
-fun mesh_posnor_frag(input: vert_out): float4[2] {
+fun mesh_posnor_frag(input: vert_out): float4[3] {
 	var basecol: float3 = float3(0.8, 0.8, 0.8);
 	var roughness: float = 0.25;
 	var metallic: float = 0.0;
@@ -78,9 +78,10 @@ fun mesh_posnor_frag(input: vert_out): float4[2] {
 	}
 	// var matid: uint = 0;
 	var matid: uint = uint(0.0);
-	var color: float4[2];
+	var color: float4[3];
 	color[0] = float4(n.xy, roughness, pack_f32_i16(metallic, matid));
 	color[1] = float4(basecol, occlusion);
+	color[2] = float4(0.0, 0.0, 0.0, 0.0);
 	return color;
 }
 

+ 3 - 2
base/shaders/mesh_posnortex.kong

@@ -66,7 +66,7 @@ fun pack_f32_i16(f: float, i: uint): float {
 	return 0.062504762 * f + 0.062519999 * float(i);
 }
 
-fun mesh_posnortex_frag(input: vert_out): float4[2] {
+fun mesh_posnortex_frag(input: vert_out): float4[3] {
 	var n: float3 = normalize(input.wnormal);
 	var basecol: float3 = float3(0.2, 0.2, 0.2) + input.tex.x * 0.0000001; // keep tex_coord
 	var roughness: float = 0.4;
@@ -84,9 +84,10 @@ fun mesh_posnortex_frag(input: vert_out): float4[2] {
 
 	// var matid: uint = 0;
 	var matid: uint = uint(0.0);
-	var color: float4[2];
+	var color: float4[3];
 	color[0] = float4(n.xy, roughness, pack_f32_i16(metallic, matid));
 	color[1] = float4(basecol, occlusion);
+	color[2] = float4(0.0, 0.0, 0.0, 0.0);
 	return color;
 }
 

+ 3 - 4
base/sources/ts/render_path_base.ts

@@ -351,8 +351,7 @@ function render_path_base_draw_taa(bufa: string, bufb: string) {
 
 function render_path_base_draw_gbuffer() {
 	render_path_set_target("gbuffer0", null, clear_flag_t.DEPTH, 0, 1.0); // Only clear gbuffer0
-	// let additional: string[] = ["gbuffer1", "gbuffer2"];
-	let additional: string[] = ["gbuffer1"];
+	let additional: string[] = ["gbuffer1", "gbuffer2"];
 	render_path_set_target("gbuffer0", additional);
 	render_path_paint_bind_layers();
 	render_path_draw_meshes("mesh");
@@ -363,7 +362,7 @@ function render_path_base_draw_gbuffer() {
 			let ping: string = i % 2 == 1 ? "_copy" : "";
 			let pong: string = i % 2 == 1 ? "" : "_copy";
 			if (i == make_mesh_layer_pass_count - 1) {
-				// render_path_set_target("gbuffer2" + ping, null, clear_flag_t.COLOR, 0xff000000);
+				render_path_set_target("gbuffer2" + ping, null, clear_flag_t.COLOR, 0xff000000);
 			}
 			let g1ping: string = "gbuffer1" + ping;
 			let g2ping: string = "gbuffer2" + ping;
@@ -371,7 +370,7 @@ function render_path_base_draw_gbuffer() {
 			render_path_set_target("gbuffer0" + ping, additional);
 			render_path_bind_target("gbuffer0" + pong, "gbuffer0");
 			render_path_bind_target("gbuffer1" + pong, "gbuffer1");
-			// render_path_bind_target("gbuffer2" + pong, "gbuffer2");
+			render_path_bind_target("gbuffer2" + pong, "gbuffer2");
 			render_path_paint_bind_layers();
 			render_path_draw_meshes("mesh" + i);
 			render_path_paint_unbind_layers();