Browse Source

Raytrace fixes

luboslenco 8 months ago
parent
commit
083126f0a6
2 changed files with 13 additions and 14 deletions
  1. 6 1
      base/sources/render_path_base.ts
  2. 7 13
      base/sources/render_path_raytrace.ts

+ 6 - 1
base/sources/render_path_base.ts

@@ -97,7 +97,12 @@ function render_path_base_begin() {
 	}
 
 	// Match projection matrix jitter
-	let skip_taa: bool = context_raw.split_view || ((context_raw.tool == workspace_tool_t.CLONE || context_raw.tool == workspace_tool_t.BLUR || context_raw.tool == workspace_tool_t.SMUDGE) && context_raw.pdirty > 0);
+	let skip_taa: bool =
+		context_raw.split_view ||
+		context_raw.viewport_mode == viewport_mode_t.PATH_TRACE ||
+		((context_raw.tool == workspace_tool_t.CLONE ||
+			context_raw.tool == workspace_tool_t.BLUR ||
+			context_raw.tool == workspace_tool_t.SMUDGE) && context_raw.pdirty > 0);
 	scene_camera.frame = skip_taa ? 0 : render_path_base_taa_frame;
 	camera_object_proj_jitter(scene_camera);
 	camera_object_build_mat(scene_camera);

+ 7 - 13
base/sources/render_path_raytrace.ts

@@ -188,24 +188,18 @@ function render_path_raytrace_build_data(bake: bool = false) {
 	let mo: mesh_object_t = scene_meshes[0];
 	///end
 
+	///if is_forge
 	render_path_raytrace_transform = mo.base.transform.world_unpack;
+	///else
+	render_path_raytrace_transform = mat4_identity();
+	///end
 
 	if (!bake) {
-		let md: mesh_data_t = mo.data;
-		if (md.scale_pos != 1.0) {
-			render_path_raytrace_transform = mat4_scale(
-				render_path_raytrace_transform, vec4_create(md.scale_pos, md.scale_pos, md.scale_pos)
-			);
-		}
-
+		let sc: f32 = mo.base.transform.scale.x * mo.data.scale_pos;
 		if (mo.base.parent != null) {
-			let f: f32 = mo.base.parent.transform.scale.x;
-			if (f != 1.0) {
-				render_path_raytrace_transform = mat4_scale(
-					render_path_raytrace_transform, vec4_create(f, f, f)
-				);
-			}
+			sc *= mo.base.parent.transform.scale.x;
 		}
+		render_path_raytrace_transform = mat4_scale(render_path_raytrace_transform, vec4_create(sc, sc, sc));
 	}
 
 	render_path_raytrace_vb = mo.data._.vertex_buffer;