ソースを参照

libobs: Remove unnecessary divides from Lanczos

jpark37 6 年 前
コミット
9f5d218e16
1 ファイル変更10 行追加8 行削除
  1. 10 8
      libobs/data/lanczos_scale.effect

+ 10 - 8
libobs/data/lanczos_scale.effect

@@ -112,14 +112,16 @@ float4 DrawLanczos(FragData f_in, bool undistort)
 	float3 coltap135 = weight3(f_rev_half.y + 0.5);
 
 	// Need normalization if divided value near zero
-	float rowsum = rowtap024.x + rowtap024.y + rowtap024.z;
-	rowsum += rowtap135.x + rowtap135.y + rowtap135.z;
-	rowtap024 = rowtap024 / rowsum;
-	rowtap135 = rowtap135 / rowsum;
-	float colsum = coltap024.x + coltap024.y + coltap024.z;
-	colsum += coltap135.x + coltap135.y + coltap135.z;
-	coltap024 = coltap024 / colsum;
-	coltap135 = coltap135 / colsum;
+	float rowsum = rowtap024.x + rowtap024.y + rowtap024.z +
+		rowtap135.x + rowtap135.y + rowtap135.z;
+	float rowsum_i = 1.0 / rowsum;
+	rowtap024 = rowtap024 * rowsum_i;
+	rowtap135 = rowtap135 * rowsum_i;
+	float colsum = coltap024.x + coltap024.y + coltap024.z +
+		coltap135.x + coltap135.y + coltap135.z;
+	float colsum_i = 1.0 / colsum;
+	coltap024 = coltap024 * colsum_i;
+	coltap135 = coltap135 * colsum_i;
 
 	float2 uv0 = (-2.5 - f) * stepxy + pos;
 	float2 uv1 = uv0 + stepxy;