[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59945] trunk/blender: Film response curves implemented as a looks
Sergey Sharybin
sergey.vfx at gmail.com
Mon Sep 9 11:48:27 CEST 2013
Revision: 59945
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59945
Author: nazgul
Date: 2013-09-09 09:48:26 +0000 (Mon, 09 Sep 2013)
Log Message:
-----------
Film response curves implemented as a looks
This commit implement's OCIO's Looks idea which
is about applying some color correction on the
buffer before it get's affected by a display
transform.
This is mainly used to modify images in an
artistics way.
Currently we've got looks generated from film
response curves for all sorts of cameras.
Patch by both of me and Brecht.
Modified Paths:
--------------
trunk/blender/intern/opencolorio/fallback_impl.cc
trunk/blender/intern/opencolorio/ocio_capi.cc
trunk/blender/intern/opencolorio/ocio_capi.h
trunk/blender/intern/opencolorio/ocio_impl.cc
trunk/blender/intern/opencolorio/ocio_impl.h
trunk/blender/release/datafiles/colormanagement/config.ocio
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/imbuf/IMB_colormanagement.h
trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h
trunk/blender/source/blender/imbuf/intern/colormanagement.c
trunk/blender/source/blender/makesdna/DNA_color_types.h
trunk/blender/source/blender/makesrna/intern/rna_color.c
Added Paths:
-----------
trunk/blender/release/datafiles/colormanagement/luts/camera_response/
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_advantix_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_advantix_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_advantix_400.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfachrome_ct_precisa_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfachrome_ct_precisa_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfachrome_rsx2_050.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfachrome_rsx2_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfachrome_rsx2_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_400.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_ii_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_ii_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_futura_ii_400.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_hdc_100_plus.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_hdc_200_plus.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_hdc_400_plus.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_optima_ii_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_optima_ii_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_ultra_050.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_vista_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_vista_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_vista_400.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/agfa_agfacolor_vista_800.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/canon_optura_981111.slrr.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/canon_optura_981111.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/canon_optura_981113.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/canon_optura_981114.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/eastman_double_x_neg_12min.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/eastman_double_x_neg_4min.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/eastman_double_x_neg_5min.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/eastman_double_x_neg_6min.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/fujifilm_f-125.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/fujifilm_f-250.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/fujifilm_f-400.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/fujifilm_fci.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/fujifilm_fp2900z.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3151.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3152.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3153.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3154.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3155.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_dscs_3156.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_100_plus.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_320t.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_400x.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_64.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_64t.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_ektachrome_e100s.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_gold_100.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_gold_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kaf-2001.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kaf-3000.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kai-0311.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kai-0372.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kai-1010.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kodachrome_200.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kodachrome_25.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_kodachrome_64.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_max_zoom_800.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_100t.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_160nc.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_160vc.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_400nc.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_400vc.spi1d
trunk/blender/release/datafiles/colormanagement/luts/camera_response/kodak_portra_800.spi1d
Modified: trunk/blender/intern/opencolorio/fallback_impl.cc
===================================================================
--- trunk/blender/intern/opencolorio/fallback_impl.cc 2013-09-09 09:42:37 UTC (rev 59944)
+++ trunk/blender/intern/opencolorio/fallback_impl.cc 2013-09-09 09:48:26 UTC (rev 59945)
@@ -162,6 +162,30 @@
return "sRGB";
}
+int FallbackImpl::configGetNumLooks(OCIO_ConstConfigRcPtr * /*config*/)
+{
+ return 0;
+}
+
+const char *FallbackImpl::configGetLookNameByIndex(OCIO_ConstConfigRcPtr * /*config*/, int /*index*/)
+{
+ return "";
+}
+
+OCIO_ConstLookRcPtr *FallbackImpl::configGetLook(OCIO_ConstConfigRcPtr * /*config*/, const char * /*name*/)
+{
+ return NULL;
+}
+
+const char *FallbackImpl::lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
+{
+ return NULL;
+}
+
+void FallbackImpl::lookRelease(OCIO_ConstLookRcPtr * /*look*/)
+{
+}
+
int FallbackImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr * /*cs*/)
{
return 1;
@@ -326,6 +350,14 @@
{
}
+void FallbackImpl::displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr * /*dt*/, const char * /*looks*/)
+{
+}
+
+void FallbackImpl::displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr * /*dt*/, bool /*enabled*/)
+{
+}
+
void FallbackImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr * /*dt*/)
{
}
Modified: trunk/blender/intern/opencolorio/ocio_capi.cc
===================================================================
--- trunk/blender/intern/opencolorio/ocio_capi.cc 2013-09-09 09:42:37 UTC (rev 59944)
+++ trunk/blender/intern/opencolorio/ocio_capi.cc 2013-09-09 09:48:26 UTC (rev 59945)
@@ -132,6 +132,31 @@
return impl->configGetDisplayColorSpaceName(config, display, view);
}
+int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config)
+{
+ return impl->configGetNumLooks(config);
+}
+
+const char *OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
+{
+ return impl->configGetLookNameByIndex(config, index);
+}
+
+OCIO_ConstLookRcPtr *OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ return impl->configGetLook(config, name);
+}
+
+const char *OCIO_lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
+{
+ return impl->lookGetProcessSpace(look);
+}
+
+void OCIO_lookRelease(OCIO_ConstLookRcPtr *look)
+{
+ impl->lookRelease(look);
+}
+
int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
{
return impl->colorSpaceIsInvertible(cs);
@@ -232,6 +257,16 @@
impl->displayTransformSetLinearCC(dt, t);
}
+void OCIO_displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks)
+{
+ impl->displayTransformSetLooksOverride(dt, looks);
+}
+
+void OCIO_displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled)
+{
+ impl->displayTransformSetLooksOverrideEnabled(dt, enabled);
+}
+
void OCIO_displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
{
impl->displayTransformRelease(dt);
Modified: trunk/blender/intern/opencolorio/ocio_capi.h
===================================================================
--- trunk/blender/intern/opencolorio/ocio_capi.h 2013-09-09 09:42:37 UTC (rev 59944)
+++ trunk/blender/intern/opencolorio/ocio_capi.h 2013-09-09 09:48:26 UTC (rev 59945)
@@ -52,6 +52,7 @@
OCIO_DECLARE_HANDLE(OCIO_ConstTransformRcPtr);
OCIO_DECLARE_HANDLE(OCIO_ExponentTransformRcPtr);
OCIO_DECLARE_HANDLE(OCIO_MatrixTransformRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ConstLookRcPtr);
void OCIO_init(void);
void OCIO_exit(void);
@@ -83,6 +84,13 @@
const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
+int OCIO_configGetNumLooks(OCIO_ConstConfigRcPtr *config);
+const char *OCIO_configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
+OCIO_ConstLookRcPtr *OCIO_configGetLook(OCIO_ConstConfigRcPtr *config, const char *name);
+
+const char *OCIO_lookGetProcessSpace(OCIO_ConstLookRcPtr *look);
+void OCIO_lookRelease(OCIO_ConstLookRcPtr *look);
+
OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName);
OCIO_ConstProcessorRcPtr *OCIO_configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform);
@@ -104,6 +112,8 @@
void OCIO_displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name);
void OCIO_displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
void OCIO_displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+void OCIO_displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks);
+void OCIO_displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled);
void OCIO_displayTransformRelease(OCIO_DisplayTransformRcPtr *dt);
OCIO_PackedImageDesc *OCIO_createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
Modified: trunk/blender/intern/opencolorio/ocio_impl.cc
===================================================================
--- trunk/blender/intern/opencolorio/ocio_impl.cc 2013-09-09 09:42:37 UTC (rev 59944)
+++ trunk/blender/intern/opencolorio/ocio_impl.cc 2013-09-09 09:48:26 UTC (rev 59945)
@@ -282,6 +282,59 @@
return NULL;
}
+int OCIOImpl::configGetNumLooks(OCIO_ConstConfigRcPtr *config)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getNumLooks();
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return 0;
+}
+
+const char *OCIOImpl::configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getLookNameByIndex(index);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+OCIO_ConstLookRcPtr *OCIOImpl::configGetLook(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ ConstLookRcPtr *look = MEM_NEW(ConstLookRcPtr);
+
+ try {
+ *look = (*(ConstConfigRcPtr *) config)->getLook(name);
+
+ if (*look)
+ return (OCIO_ConstLookRcPtr *) look;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(look, ConstLookRcPtr);
+
+ return NULL;
+}
+
+const char *OCIOImpl::lookGetProcessSpace(OCIO_ConstLookRcPtr *look)
+{
+ return (*(ConstLookRcPtr *) look)->getProcessSpace();
+}
+
+void OCIOImpl::lookRelease(OCIO_ConstLookRcPtr *look)
+{
+ MEM_DELETE((ConstLookRcPtr *) look, ConstLookRcPtr);
+}
+
int OCIOImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs_)
{
ConstColorSpaceRcPtr *cs = (ConstColorSpaceRcPtr *) cs_;
@@ -481,6 +534,16 @@
(*(DisplayTransformRcPtr *) dt)->setLinearCC(*(ConstTransformRcPtr *) t);
}
+void OCIOImpl::displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks)
+{
+ (*(DisplayTransformRcPtr *) dt)->setLooksOverride(looks);
+}
+
+void OCIOImpl::displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled)
+{
+ (*(DisplayTransformRcPtr *) dt)->setLooksOverrideEnabled(enabled);
+}
+
void OCIOImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
{
MEM_DELETE((DisplayTransformRcPtr *) dt, DisplayTransformRcPtr);
Modified: trunk/blender/intern/opencolorio/ocio_impl.h
===================================================================
--- trunk/blender/intern/opencolorio/ocio_impl.h 2013-09-09 09:42:37 UTC (rev 59944)
+++ trunk/blender/intern/opencolorio/ocio_impl.h 2013-09-09 09:48:26 UTC (rev 59945)
@@ -58,6 +58,13 @@
virtual const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index) = 0;
virtual const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view) = 0;
+ virtual int configGetNumLooks(OCIO_ConstConfigRcPtr *config) = 0;
+ virtual const char *configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index) = 0;
+ virtual OCIO_ConstLookRcPtr *configGetLook(OCIO_ConstConfigRcPtr *config, const char *name) = 0;
+
+ virtual const char *lookGetProcessSpace(OCIO_ConstLookRcPtr *look) = 0;
+ virtual void lookRelease(OCIO_ConstLookRcPtr *look) = 0;
+
virtual OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName) = 0;
virtual OCIO_ConstProcessorRcPtr *configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform) = 0;
@@ -79,6 +86,8 @@
virtual void displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name) = 0;
virtual void displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) = 0;
virtual void displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) = 0;
+ virtual void displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks) = 0;
+ virtual void displayTransformSetLooksOverrideEnabled(OCIO_DisplayTransformRcPtr *dt, bool enabled) = 0;
virtual void displayTransformRelease(OCIO_DisplayTransformRcPtr *dt) = 0;
virtual OCIO_PackedImageDesc *createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
@@ -132,6 +141,13 @@
const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
+ int configGetNumLooks(OCIO_ConstConfigRcPtr *config);
+ const char *configGetLookNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
+ OCIO_ConstLookRcPtr *configGetLook(OCIO_ConstConfigRcPtr *config, const char *name);
+
+ const char *lookGetProcessSpace(OCIO_ConstLookRcPtr *look);
+ void lookRelease(OCIO_ConstLookRcPtr *look);
+
OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName);
OCIO_ConstProcessorRcPtr *configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform);
@@ -153,6 +169,8 @@
void displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name);
void displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
void displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+ void displayTransformSetLooksOverride(OCIO_DisplayTransformRcPtr *dt, const char *looks);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list