[Rawstudio-commit] r3179 - in trunk: librawstudio plugins/lensfun src

Klaus Post klauspost at gmail.com
Fri Feb 12 22:39:02 CET 2010


Author: post
Date: 2010-02-12 22:39:02 +0100 (Fri, 12 Feb 2010)
New Revision: 3179

Modified:
   trunk/librawstudio/rs-settings.c
   trunk/librawstudio/rs-settings.h
   trunk/plugins/lensfun/lensfun.c
   trunk/src/application.c
   trunk/src/rs-batch.c
   trunk/src/rs-cache.c
   trunk/src/rs-preview-widget.c
   trunk/src/rs-save-dialog.c
   trunk/src/rs-toolbox.c
Log:
Lensfun: Adjust range to be -1.0 to 1.0 & make dark vignetting more sensitive. Rename internal parameter from vignetting_k2 to vignetting, since it no longer has any relation to the k2 parameter.

Modified: trunk/librawstudio/rs-settings.c
===================================================================
--- trunk/librawstudio/rs-settings.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/librawstudio/rs-settings.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -55,7 +55,7 @@
 	PROP_DENOISE_CHROMA,
 	PROP_TCA_KR,
 	PROP_TCA_KB,
-	PROP_VIGNETTING_K2,
+	PROP_VIGNETTING,
 	PROP_CHANNELMIXER_RED,
 	PROP_CHANNELMIXER_GREEN,
 	PROP_CHANNELMIXER_BLUE
@@ -125,9 +125,9 @@
 			-0.5, 0.5, 0.0, G_PARAM_READWRITE)
 	);
 	g_object_class_install_property(object_class,
-		PROP_VIGNETTING_K2, g_param_spec_float(
-			"vignetting_k2", _("Vignetting"), _("Vign"),
-			-1.5, 1.5, 0.0, G_PARAM_READWRITE)
+		PROP_VIGNETTING, g_param_spec_float(
+			"vignetting", _("Vignetting"), _("Vign"),
+			-1.0, 1.0, 0.0, G_PARAM_READWRITE)
 	);
 	g_object_class_install_property(object_class,
 		PROP_CHANNELMIXER_RED, g_param_spec_float(
@@ -192,7 +192,7 @@
 		CASE(DENOISE_CHROMA, denoise_chroma);
 		CASE(TCA_KR, tca_kr);
 		CASE(TCA_KB, tca_kb);
-		CASE(VIGNETTING_K2, vignetting_k2);
+		CASE(VIGNETTING, vignetting);
 		CASE(CHANNELMIXER_RED, channelmixer_red);
 		CASE(CHANNELMIXER_GREEN, channelmixer_green);
 		CASE(CHANNELMIXER_BLUE, channelmixer_blue);
@@ -229,7 +229,7 @@
 		CASE(DENOISE_CHROMA, denoise_chroma);
 		CASE(TCA_KR, tca_kr);
 		CASE(TCA_KB, tca_kb);
-		CASE(VIGNETTING_K2, vignetting_k2);
+		CASE(VIGNETTING, vignetting);
 		CASE(CHANNELMIXER_RED, channelmixer_red);
 		CASE(CHANNELMIXER_GREEN, channelmixer_green);
 		CASE(CHANNELMIXER_BLUE, channelmixer_blue);
@@ -293,8 +293,8 @@
 	if (mask & MASK_TCA_KB)
 		rs_object_class_property_reset(object, "tca_kb");
 
-	if (mask & MASK_VIGNETTING_K2)
-		rs_object_class_property_reset(object, "vignetting_k2");
+	if (mask & MASK_VIGNETTING)
+		rs_object_class_property_reset(object, "vignetting");
 
 	if (mask & MASK_CHANNELMIXER_RED)
 		rs_object_class_property_reset(object, "channelmixer_red");
@@ -396,7 +396,7 @@
 	SETTINGS_COPY(DENOISE_CHROMA, denoise_chroma);
 	SETTINGS_COPY(TCA_KR, tca_kr);
 	SETTINGS_COPY(TCA_KB, tca_kb);
-	SETTINGS_COPY(VIGNETTING_K2, vignetting_k2);
+	SETTINGS_COPY(VIGNETTING, vignetting);
 	SETTINGS_COPY(CHANNELMIXER_RED, channelmixer_red);
 	SETTINGS_COPY(CHANNELMIXER_GREEN, channelmixer_green);
 	SETTINGS_COPY(CHANNELMIXER_BLUE, channelmixer_blue);

Modified: trunk/librawstudio/rs-settings.h
===================================================================
--- trunk/librawstudio/rs-settings.h	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/librawstudio/rs-settings.h	2010-02-12 21:39:02 UTC (rev 3179)
@@ -51,8 +51,7 @@
 	MASK_CHANNELMIXER_GREEN = (1<<13),
 	MASK_CHANNELMIXER_BLUE = (1<<14),
 	MASK_CHANNELMIXER = MASK_CHANNELMIXER_RED | MASK_CHANNELMIXER_GREEN | MASK_CHANNELMIXER_BLUE,
-	MASK_VIGNETTING_K2  = (1<<15),
-	MASK_VIGNETTING     = MASK_VIGNETTING_K2,
+	MASK_VIGNETTING  = (1<<15),
 	MASK_ALL            = 0x00ffffff,
 } RSSettingsMask;
 
@@ -71,7 +70,7 @@
 	gfloat denoise_chroma;
 	gfloat tca_kr;
 	gfloat tca_kb;
-	gfloat vignetting_k2;
+	gfloat vignetting;
 	gfloat channelmixer_red;
 	gfloat channelmixer_green;
 	gfloat channelmixer_blue;

Modified: trunk/plugins/lensfun/lensfun.c
===================================================================
--- trunk/plugins/lensfun/lensfun.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/plugins/lensfun/lensfun.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -48,9 +48,7 @@
 	gfloat aperture;
 	gfloat tca_kr;
 	gfloat tca_kb;
-	gfloat vignetting_k1;
-	gfloat vignetting_k2;
-	gfloat vignetting_k3;
+	gfloat vignetting;
 	gboolean distortion_enabled;
 
 	lfLens *selected_lens;
@@ -76,9 +74,7 @@
 	PROP_APERTURE,
 	PROP_TCA_KR,
 	PROP_TCA_KB,
-	PROP_VIGNETTING_K1,
-	PROP_VIGNETTING_K2,
-	PROP_VIGNETTING_K3,
+	PROP_VIGNETTING,
 	PROP_DISTORTION_ENABLED,
 };
 
@@ -154,21 +150,11 @@
 			-1, 1, 0.0, G_PARAM_READWRITE)
 	);
 	g_object_class_install_property(object_class,
-		PROP_VIGNETTING_K1, g_param_spec_float(
-			"vignetting_k1", "vignetting_k1", "vignetting_k1",
-			-1, 2, 0.0, G_PARAM_READWRITE)
-	);
-	g_object_class_install_property(object_class,
-		PROP_VIGNETTING_K2, g_param_spec_float(
-			"vignetting_k2", "vignetting_k2", "vignetting_k2",
+		PROP_VIGNETTING, g_param_spec_float(
+			"vignetting", "vignetting", "vignetting",
 			-1.5, 1.5, 0.0, G_PARAM_READWRITE)
 	);
 	g_object_class_install_property(object_class,
-		PROP_VIGNETTING_K3, g_param_spec_float(
-			"vignetting_k3", "vignetting_k3", "vignetting_k3",
-			-1, 2, 0.0, G_PARAM_READWRITE)
-	);
-	g_object_class_install_property(object_class,
 		PROP_DISTORTION_ENABLED, g_param_spec_boolean(
 			"distortion_enabled", "distortion_enabled", "distortion_enabled",
 		   FALSE, G_PARAM_READWRITE)
@@ -190,9 +176,7 @@
 	lensfun->aperture = 5.6;
 	lensfun->tca_kr = 0.0;
 	lensfun->tca_kb = 0.0;
-	lensfun->vignetting_k1 = 0.0;
-	lensfun->vignetting_k2 = 0.0;
-	lensfun->vignetting_k3 = 0.0;
+	lensfun->vignetting = 0.0;
 	lensfun->distortion_enabled = FALSE;
 
 	/* Initialize Lensfun database */
@@ -234,15 +218,9 @@
 		case PROP_TCA_KB:
 			g_value_set_float(value, lensfun->tca_kb);
 			break;
-		case PROP_VIGNETTING_K1:
-			g_value_set_float(value, lensfun->vignetting_k1);
+		case PROP_VIGNETTING:
+			g_value_set_float(value, lensfun->vignetting);
 			break;
-		case PROP_VIGNETTING_K2:
-			g_value_set_float(value, lensfun->vignetting_k2);
-			break;
-		case PROP_VIGNETTING_K3:
-			g_value_set_float(value, lensfun->vignetting_k3);
-			break;
 		case PROP_DISTORTION_ENABLED:
 			g_value_set_boolean(value, lensfun->distortion_enabled);
 			break;
@@ -288,20 +266,10 @@
 			lensfun->tca_kb = g_value_get_float(value);
 			rs_filter_changed(RS_FILTER(lensfun), RS_FILTER_CHANGED_PIXELDATA);
 			break;
-		case PROP_VIGNETTING_K1:
-			lensfun->vignetting_k1 = g_value_get_float(value);
+		case PROP_VIGNETTING:
+			lensfun->vignetting = g_value_get_float(value);
 			rs_filter_changed(RS_FILTER(lensfun), RS_FILTER_CHANGED_PIXELDATA);
 			break;
-		case PROP_VIGNETTING_K2:
-			/* FIXME: only have one vignetting input */
-			lensfun->vignetting_k1 = g_value_get_float(value);
-			lensfun->vignetting_k2 = g_value_get_float(value);
-			rs_filter_changed(RS_FILTER(lensfun), RS_FILTER_CHANGED_PIXELDATA);
-			break;
-		case PROP_VIGNETTING_K3:
-			lensfun->vignetting_k3 = g_value_get_float(value);
-			rs_filter_changed(RS_FILTER(lensfun), RS_FILTER_CHANGED_PIXELDATA);
-			break;
 		case PROP_DISTORTION_ENABLED:
 			lensfun->DIRTY = TRUE;
 			lensfun->distortion_enabled = g_value_get_boolean(value);
@@ -475,9 +443,7 @@
 		{
 			g_debug("Lensfun: Lens not found or lens is disabled. Using neutral lense.");
 			
-			if (ABS(lensfun->tca_kr) + ABS(lensfun->tca_kb) +
-				ABS(lensfun->vignetting_k1) + ABS(lensfun->vignetting_k2) + ABS(lensfun->vignetting_k3)
-				< 0.001) 
+			if (ABS(lensfun->tca_kr) + ABS(lensfun->tca_kb) + ABS(lensfun->vignetting) < 0.001) 
 			{
 				rs_filter_response_set_image(response, input);
 				g_object_unref(input);
@@ -539,16 +505,19 @@
 		}
 
 		/* Set vignetting */
-		if (ABS(lensfun->vignetting_k1) > 0.01f || ABS(lensfun->vignetting_k2) > 0.01f)
+		if (ABS(lensfun->vignetting) > 0.01f)
 		{
 			lfLensCalibVignetting vignetting;
 			vignetting.Model = LF_VIGNETTING_MODEL_PA;
 			vignetting.Distance = 1.0;
 			vignetting.Focal = lensfun->focal;
 			vignetting.Aperture = lensfun->aperture;
-			vignetting.Terms[0] = -lensfun->vignetting_k1 * 0.5;
-			vignetting.Terms[1] = -lensfun->vignetting_k2 * 0.05;
-			vignetting.Terms[2] = -lensfun->vignetting_k3 * 0.015;
+			gfloat vign = -lensfun->vignetting * 1.5;
+			if (vign > 0.0f)
+				vign *= 4.0f;
+			vignetting.Terms[0] = vign * 0.5;
+			vignetting.Terms[1] = vign * 0.03;
+			vignetting.Terms[2] = vign * 0.005;
 			lf_lens_add_calib_vignetting((lfLens *) lensfun->selected_lens, &vignetting);
 		} else
 		{

Modified: trunk/src/application.c
===================================================================
--- trunk/src/application.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/application.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -91,7 +91,7 @@
 				"aperture", meta->aperture,
 				"tca_kr", rs->photo->settings[rs->current_setting]->tca_kr,
 				"tca_kb", rs->photo->settings[rs->current_setting]->tca_kb,
-				"vignetting_k2", rs->photo->settings[rs->current_setting]->vignetting_k2,
+				"vignetting", rs->photo->settings[rs->current_setting]->vignetting,
 				NULL);
 			g_object_unref(lens);
 		}
@@ -208,7 +208,7 @@
 			"aperture", meta->aperture,
 			"tca_kr", photo->settings[snapshot]->tca_kr,
 			"tca_kb", photo->settings[snapshot]->tca_kb,
-			"vignetting_k2", photo->settings[snapshot]->vignetting_k2,
+			"vignetting", photo->settings[snapshot]->vignetting,
 			NULL);
 		g_object_unref(lens);
 	}

Modified: trunk/src/rs-batch.c
===================================================================
--- trunk/src/rs-batch.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/rs-batch.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -552,7 +552,7 @@
 							"aperture", meta->aperture,
 							"tca_kr", photo->settings[setting_id]->tca_kr,
 							"tca_kb", photo->settings[setting_id]->tca_kb,
-							"vignetting_k2", photo->settings[setting_id]->vignetting_k2,
+							"vignetting", photo->settings[setting_id]->vignetting,
 							NULL);
 				g_object_unref(lens);
 			}

Modified: trunk/src/rs-cache.c
===================================================================
--- trunk/src/rs-cache.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/rs-cache.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -133,8 +133,8 @@
 		xmlTextWriterWriteFormatElement(writer, BAD_CAST "tca_kr", "%f", rss->tca_kr);
 	if (mask & MASK_TCA_KB)
 		xmlTextWriterWriteFormatElement(writer, BAD_CAST "tca_kb", "%f", rss->tca_kb);
-	if (mask & MASK_VIGNETTING_K2)
-		xmlTextWriterWriteFormatElement(writer, BAD_CAST "vignetting_k2", "%f", rss->vignetting_k2);
+	if (mask & MASK_VIGNETTING)
+		xmlTextWriterWriteFormatElement(writer, BAD_CAST "vignetting", "%f", rss->vignetting);
 	if (mask & MASK_CURVE && rss->curve_nknots > 0)
 	{
 		gint i;
@@ -247,11 +247,11 @@
 			rss->tca_kb =  rs_atof((gchar *) val);
 			xmlFree(val);
 		}
-		else if ((!xmlStrcmp(cur->name, BAD_CAST "vignetting_k2")))
+		else if ((!xmlStrcmp(cur->name, BAD_CAST "vignetting")))
 		{
-			mask |= MASK_VIGNETTING_K2;
+			mask |= MASK_VIGNETTING;
 			val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			rss->vignetting_k2 =  rs_atof((gchar *) val);
+			rss->vignetting =  rs_atof((gchar *) val);
 			xmlFree(val);
 		}
 		else if ((!xmlStrcmp(cur->name, BAD_CAST "curve")))

Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/rs-preview-widget.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -2241,15 +2241,15 @@
 			{
 				gfloat tca_kr = 0.0;
 				gfloat tca_kb = 0.0;
-				gfloat vignetting_k2 = 0.0;
+				gfloat vignetting = 0.0;
 				g_object_get(preview->photo->settings[preview->snapshot[view]], "tca_kr", &tca_kr, NULL);
 				g_object_get(preview->photo->settings[preview->snapshot[view]], "tca_kb", &tca_kb, NULL);
-				g_object_get(preview->photo->settings[preview->snapshot[view]], "vignetting_k2", &vignetting_k2, NULL);
+				g_object_get(preview->photo->settings[preview->snapshot[view]], "vignetting", &vignetting, NULL);
 
 				rs_filter_set_recursive(preview->filter_end[view],
 							"tca_kr", tca_kr,
 							"tca_kb", tca_kb,
-							"vignetting_k2", vignetting_k2,
+							"vignetting", vignetting,
 							NULL);
 			}
 		}

Modified: trunk/src/rs-save-dialog.c
===================================================================
--- trunk/src/rs-save-dialog.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/rs-save-dialog.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -281,7 +281,7 @@
 			"aperture", meta->aperture,
 			"tca_kr", dialog->photo->settings[dialog->snapshot]->tca_kr,
 			"tca_kb", dialog->photo->settings[dialog->snapshot]->tca_kb,
-			"vignetting_k2", dialog->photo->settings[dialog->snapshot]->vignetting_k2,
+			"vignetting", dialog->photo->settings[dialog->snapshot]->vignetting,
 			NULL);
 		g_object_unref(lens);
 	}

Modified: trunk/src/rs-toolbox.c
===================================================================
--- trunk/src/rs-toolbox.c	2010-02-12 21:22:00 UTC (rev 3178)
+++ trunk/src/rs-toolbox.c	2010-02-12 21:39:02 UTC (rev 3179)
@@ -63,9 +63,9 @@
 #define NCHANNELMIXER (3)
 
 const static BasicSettings lens[] = {
-	{ "tca_kr",         0.001 },
-	{ "tca_kb",         0.001 },
-	{ "vignetting_k2",  0.01 },
+	{ "tca_kr",         0.025 },
+	{ "tca_kb",         0.025 },
+	{ "vignetting",  0.025},
 };
 #define NLENS (3)
 




More information about the Rawstudio-commit mailing list