Browse Source

Fix Particles2D animation regression from #23702

JFonS 6 years ago
parent
commit
1267f92740
1 changed files with 3 additions and 1 deletions
  1. 3 1
      scene/2d/canvas_item.cpp

+ 3 - 1
scene/2d/canvas_item.cpp

@@ -123,6 +123,8 @@ void CanvasItemMaterial::_update_shader() {
 		code += "\tfloat h_frames = float(particles_anim_h_frames);\n";
 		code += "\tfloat h_frames = float(particles_anim_h_frames);\n";
 		code += "\tfloat v_frames = float(particles_anim_v_frames);\n";
 		code += "\tfloat v_frames = float(particles_anim_v_frames);\n";
 
 
+		code += "\tVERTEX.xy /= vec2(h_frames, v_frames);\n";
+
 		code += "\tint total_frames = particles_anim_h_frames * particles_anim_v_frames;\n";
 		code += "\tint total_frames = particles_anim_h_frames * particles_anim_v_frames;\n";
 		code += "\tint frame = int(float(total_frames) * INSTANCE_CUSTOM.z);\n";
 		code += "\tint frame = int(float(total_frames) * INSTANCE_CUSTOM.z);\n";
 		code += "\tif (particles_anim_loop) {\n";
 		code += "\tif (particles_anim_loop) {\n";
@@ -134,7 +136,7 @@ void CanvasItemMaterial::_update_shader() {
 		code += "\tfloat frame_w = 1.0 / h_frames;\n";
 		code += "\tfloat frame_w = 1.0 / h_frames;\n";
 		code += "\tfloat frame_h = 1.0 / v_frames;\n";
 		code += "\tfloat frame_h = 1.0 / v_frames;\n";
 		code += "\tUV.x = UV.x * frame_w + frame_w * float(frame % particles_anim_h_frames);\n";
 		code += "\tUV.x = UV.x * frame_w + frame_w * float(frame % particles_anim_h_frames);\n";
-		code += "\tUV.y = UV.y * frame_h + frame_h * float(frame / particles_anim_v_frames);\n";
+		code += "\tUV.y = UV.y * frame_h + frame_h * float(frame / particles_anim_h_frames);\n";
 
 
 		code += "}\n";
 		code += "}\n";
 	}
 	}